[U-Boot] [PATCH v5 1/3] dm: implement a Timer uclass

Simon Glass
2015-10-08T17:14:46Z

Hi Thomas,

On 8 October 2015 at 02:03, Thomas Chou <thomas@wytron.com.tw> wrote:
> Implement a Timer uclass to work with lib/time.c.
>
> Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> ---
> v2
> fix coding style.
> v3
> add description to Kconfig as Simon suggested.
> move timer.c code to lib/time.c.
> add dm_timer dev to global data.
> remove timer_init().
> change API name get_clock.
> v4
> add comment about timer hardware.
> v5
> revert to get_rate and use uclass priv to store the clock_rate.
> split gd->dm_timer renewal to anohter patch.
>
> drivers/Kconfig | 2 ++
> drivers/Makefile | 1 +
> drivers/timer/Kconfig | 12 +++++++++
> drivers/timer/Makefile | 7 ++++++
> drivers/timer/timer-uclass.c | 42 +++++++++++++++++++++++++++++++
> include/asm-generic/global_data.h | 3 +++
> include/dm/uclass-id.h | 1 +
> include/timer.h | 52 +++++++++++++++++++++++++++++++++++++++
> lib/time.c | 49 ++++++++++++++++++++++++++++++++++++
> 9 files changed, 169 insertions(+)
> create mode 100644 drivers/timer/Kconfig
> create mode 100644 drivers/timer/Makefile
> create mode 100644 drivers/timer/timer-uclass.c
> create mode 100644 include/timer.h

Acked-by: Simon Glass <sjg@chromium.org>

Please see one last thing below.

>
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 63c92c5..f9496f7 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -56,6 +56,8 @@ source "drivers/spi/Kconfig"
>
> source "drivers/thermal/Kconfig"
>
> +source "drivers/timer/Kconfig"
> +
> source "drivers/tpm/Kconfig"
>
> source "drivers/usb/Kconfig"
> diff --git a/drivers/Makefile b/drivers/Makefile
> index 9d0a595..692da78 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -48,6 +48,7 @@ obj-y += pcmcia/
> obj-y += dfu/
> obj-y += rtc/
> obj-y += sound/
> +obj-y += timer/
> obj-y += tpm/
> obj-y += twserial/
> obj-y += video/
> diff --git a/drivers/timer/Kconfig b/drivers/timer/Kconfig
> new file mode 100644
> index 0000000..54a4c40
> --- /dev/null
> +++ b/drivers/timer/Kconfig
> @@ -0,0 +1,12 @@
> +menu "Timer Support"
> +
> +config DM_TIMER

One more little nit - this should be just 'TIMER'? All of the DM_...
options will eventually be removed. They indicate that driver model is
being used for a function. In your case, there is no legacy version so
you can just omit the DM_.

> + bool "Enable Driver Model for Timer drivers"
> + depends on DM
> + help
> + Enable driver model for Timer access. It uses the same API as
> + lib/time.c. But now implemented by the uclass. The first timer
> + will be used. The timer is usually a 32 bits free-running up
> + counter. There may be no real tick, and no timer interrupt.
> +
> +endmenu

Regards,
Simon