[U-Boot] [PATCH v3 53/54] dm: Add a clock uclass

Simon Glass sjg at chromium.org
Sat Jul 18 01:58:20 CEST 2015


On 23 June 2015 at 15:39, Simon Glass <sjg at chromium.org> wrote:
> Clocks are an important feature of platforms and have become increasing
> complex with time. Most modern SoCs have multiple PLLs and dozens of clock
> dividers which distribute clocks to on-chip peripherals.
>
> Some SoC implementations have a clock API which is private to that SoC family,
> e.g. Tegra and Exynos. This is useful but it would be better to have a
> common API that can be understood and used throughout U-Boot.
>
> Add a simple clock API as a starting point. It supports querying and setting
> the rate of a clock. Each clock is a device. To reduce memory and processing
> overhead the concept of peripheral clocks is provided. These do not need to
> be explicit devices - it is possible to write a driver that can adjust the
> I2C clock (for example) without an explicit I2C clock device. This can
> dramatically reduce the number of devices (and associated overhead) in a
> complex SoC.
>
> Clocks are referenced by a number, and it is expected that SoCs will define
> that numbering themselves via an enum.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
>  drivers/Kconfig          |  2 ++
>  drivers/Makefile         |  1 +
>  drivers/clk/Kconfig      | 19 ++++++++++++
>  drivers/clk/Makefile     |  8 +++++
>  drivers/clk/clk-uclass.c | 58 +++++++++++++++++++++++++++++++++++
>  include/clk.h            | 80 ++++++++++++++++++++++++++++++++++++++++++++++++
>  include/dm/uclass-id.h   |  1 +
>  scripts/Makefile.spl     |  1 +
>  8 files changed, 170 insertions(+)
>  create mode 100644 drivers/clk/Kconfig
>  create mode 100644 drivers/clk/Makefile
>  create mode 100644 drivers/clk/clk-uclass.c

Applied to u-boot-dm.


More information about the U-Boot mailing list