From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752438AbeADMu4 (ORCPT + 1 other); Thu, 4 Jan 2018 07:50:56 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:41545 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752271AbeADMuy (ORCPT ); Thu, 4 Jan 2018 07:50:54 -0500 X-Google-Smtp-Source: ACJfBovWtSxe8Is9jxREY50Q5L/G8mhm17M5019pwt+FGtN51pmHX5/Sqt/kk6uGZ+II927n8zCrAg== From: Daniel Lezcano To: daniel.lezcano@linaro.org, tglx@linutronix.de Cc: linux-kernel@vger.kernel.org, benjamin.gaignard@linaro.org Subject: [PATCH 00/12] clocksource/drivers/stm32: Consolidate the timer Date: Thu, 4 Jan 2018 13:50:16 +0100 Message-Id: <1515070228-10481-1-git-send-email-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: This series fixes an issue in the stm32 driver and adds the clocksource. Previous discussion for the stm32 changes ended up in no consensus because of the 16bits and 32bits timers. The proposed change were removing the 16bits timers or wasn't providing the changes in a sane way. This series fixes a bug when several timers are enabled in the DT. Now, the DT can enable any timer 16bits or 32bits and the time framework will choose the one with the best rating. So 16bits timer removal is no longer needed. The fix is written in a way it can picked up for stable@. When the driver is dealing with a 16bits timer, it computes and sets the prescaler to a value as the timer was running at 10MHz. It is a good trade off between wrapping interval and resolution. The oneshot mode is implemented and the periodic mode of the timer is replaced by the register comparison, that allows to have a free running wheel for the clocksource. After setting the scene by encaspulating the code, the clocksource is added and again it relies on the time framework to choose the right one. On this platform, the armv7_systick clocksource is better than the 16bits timers, so if only 16bits are used, only the clockevents will be used, the clocksource will be the armv7_systick. In addition the timer delay is added, it saves 90ms of boot time. A couple of trivial changes are done in timer-of in order to make the stm32 code nicer and more self-contained. Benjamin Gaignard (4): clocksource/drivers/stm32: Convert the driver to timer-of clocksource/drivers/stm32: Compute a prescaler value with a targeted rate clocksource/drivers/stm32: Add the oneshot mode clocksource/drivers/stm32: Add the clocksource Daniel Lezcano (8): clocksource/drivers/timer-of: Store the device node pointer clocksource/drivers/timer-of: Don't request the resource by name clocksource/drivers/stm32: Fix kernel panic with multiple timers clocksource/drivers/stm32: Use the node name as timer name clocksource/drivers/stm32: Encapsulate the timer width sorting out function clocksource/drivers/stm32: Encapsulate more the clockevent code clocksource/drivers/stm32: Add the timer delay clocksource/drivers/stm32: Start the timer's counter sooner drivers/clocksource/Kconfig | 1 + drivers/clocksource/timer-of.c | 11 +- drivers/clocksource/timer-of.h | 1 + drivers/clocksource/timer-stm32.c | 358 ++++++++++++++++++++++++++------------ 4 files changed, 260 insertions(+), 111 deletions(-) -- 2.7.4