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@chromium.org>
30 lines
634 B
Makefile
30 lines
634 B
Makefile
obj-$(CONFIG_CLK) += clk/
|
|
obj-$(CONFIG_DM) += core/
|
|
obj-$(CONFIG_DM_DEMO) += demo/
|
|
obj-$(CONFIG_BIOSEMU) += bios_emulator/
|
|
obj-y += block/
|
|
obj-$(CONFIG_BOOTCOUNT_LIMIT) += bootcount/
|
|
obj-$(CONFIG_CPU) += cpu/
|
|
obj-y += crypto/
|
|
obj-$(CONFIG_FPGA) += fpga/
|
|
obj-y += hwmon/
|
|
obj-$(CONFIG_LED) += led/
|
|
obj-y += misc/
|
|
obj-y += pcmcia/
|
|
obj-y += dfu/
|
|
obj-$(CONFIG_RAM) += ram/
|
|
obj-y += rtc/
|
|
obj-y += sound/
|
|
obj-y += tpm/
|
|
obj-y += twserial/
|
|
obj-y += video/
|
|
obj-y += watchdog/
|
|
obj-$(CONFIG_QE) += qe/
|
|
obj-$(CONFIG_U_QE) += qe/
|
|
obj-y += memory/
|
|
obj-y += pwm/
|
|
obj-y += input/
|
|
# SOC specific infrastructure drivers.
|
|
obj-y += soc/
|
|
obj-y += thermal/
|