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>
72 lines
1.3 KiB
Plaintext
72 lines
1.3 KiB
Plaintext
menu "Device Drivers"
|
|
|
|
source "drivers/clk/Kconfig"
|
|
|
|
source "drivers/core/Kconfig"
|
|
|
|
source "drivers/cpu/Kconfig"
|
|
|
|
source "drivers/demo/Kconfig"
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
source "drivers/mtd/Kconfig"
|
|
|
|
source "drivers/block/Kconfig"
|
|
|
|
source "drivers/misc/Kconfig"
|
|
|
|
source "drivers/net/Kconfig"
|
|
|
|
source "drivers/input/Kconfig"
|
|
|
|
source "drivers/led/Kconfig"
|
|
|
|
source "drivers/serial/Kconfig"
|
|
|
|
source "drivers/tpm/Kconfig"
|
|
|
|
source "drivers/i2c/Kconfig"
|
|
|
|
source "drivers/spi/Kconfig"
|
|
|
|
source "drivers/gpio/Kconfig"
|
|
|
|
source "drivers/power/Kconfig"
|
|
|
|
source "drivers/ram/Kconfig"
|
|
|
|
source "drivers/hwmon/Kconfig"
|
|
|
|
source "drivers/watchdog/Kconfig"
|
|
|
|
source "drivers/video/Kconfig"
|
|
|
|
source "drivers/sound/Kconfig"
|
|
|
|
source "drivers/usb/Kconfig"
|
|
|
|
source "drivers/dfu/Kconfig"
|
|
|
|
source "drivers/mmc/Kconfig"
|
|
|
|
source "drivers/rtc/Kconfig"
|
|
|
|
source "drivers/dma/Kconfig"
|
|
|
|
source "drivers/crypto/Kconfig"
|
|
|
|
source "drivers/thermal/Kconfig"
|
|
|
|
endmenu
|
|
|
|
config PHYS_TO_BUS
|
|
bool "Custom physical to bus address mapping"
|
|
help
|
|
Some SoCs use a different address map for CPU physical addresses and
|
|
peripheral DMA master accesses. If yours does, select this option in
|
|
your platform's Kconfig, and implement the appropriate mapping
|
|
functions in your platform's support code.
|