u-boot-brain/arch/arm
Stephen Warren 6dbcc962e4 ARM: tegra: add peripheral clock init table
Currently, Tegra peripheral drivers control two aspects of their HW module
clock(s):

1) The clock enable/rate for the peripheral clock itself.

2) The system-level clock tree setup, i.e. the clock parent.

Aspect 1 is reasonable, but aspect 2 is a system-level decision, not
something that an individual peripheral driver should in general know
about or influence. Such system-level knowledge ties the driver to a
specific SoC implementation, even when they use generic APIs for clock
manipulation, since they must have SoC-specific knowledge such as parent
clock IDs. Limited exceptions exist, such as where peripheral HW is
expected to dynamically switch between clock sources at run-time, such
as CPU clock scaling or display clock conflict management in a multi-head
scenario.

This patch enhances the Tegra core code to perform system-level clock
tree setup, in a similar fashion to the Linux kernel Tegra clock driver.
This will allow future patches to simplify peripheral drivers by removing
the clock parent setup logic.

This change is required prior to converting peripheral drivers to use the
standard clock APIs, since:

1) The clock uclass doesn't currently support a set_parent() operation.
Adding one is possible, but not necessary at the moment.

2) The clock APIs retrieve all clock IDs from device tree, and the DT
bindings for almost all peripherals only includes information about the
relevant peripheral clocks, and not any potential parent clocks.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
2016-09-27 09:11:02 -07:00
..
cpu Merge git://git.denx.de/u-boot-fsl-qoriq 2016-09-26 17:10:56 -04:00
dts ARM: tegra: pull Tegra210 SoC DT from Linux v4.7 2016-09-27 09:11:02 -07:00
imx-common treewide: replace #include <asm-generic/errno.h> with <linux/errno.h> 2016-09-23 22:25:27 -04:00
include ARM: tegra: add peripheral clock init table 2016-09-27 09:11:02 -07:00
lib arm: cache: always flush cache line size for page table 2016-08-26 17:04:56 -04:00
mach-at91 treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
mach-bcm283x bcm2835_gpio: Implement GPIOF_FUNC 2016-09-06 13:18:18 -04:00
mach-davinci common: Pass the boot device into spl_boot_mode() 2016-06-26 20:17:22 +02:00
mach-exynos Convert CONFIG_SPL_LIBGENERIC_SUPPORT to Kconfig 2016-09-16 17:27:12 -04:00
mach-highbank ARM: highbank: move SoC sources to mach-highbank 2015-02-21 08:23:51 -05:00
mach-integrator integrator: switch to DM serial port 2015-08-12 20:47:49 -04:00
mach-keystone treewide: replace #include <asm-generic/errno.h> with <linux/errno.h> 2016-09-23 22:25:27 -04:00
mach-kirkwood ARM: Move SYS_CACHELINE_SIZE over to Kconfig 2016-08-26 17:04:46 -04:00
mach-meson armv8: mmu: Add support of non-identical mapping 2016-07-15 09:01:43 -07:00
mach-mvebu arm: mvebu: add DB-88F6820-AMC board 2016-09-24 10:07:48 +02:00
mach-orion5x Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
mach-rmobile treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
mach-rockchip rockchip: rk3288: skip lowlevel_init process 2016-09-22 07:57:02 -06:00
mach-s5pc1xx arm: s5pc1xx: move SoC to mach-s5pc1xx 2015-11-30 17:17:01 +09:00
mach-snapdragon drivers/sysreset: group sysreset drivers 2016-08-12 09:22:17 -04:00
mach-socfpga treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
mach-stm32 Revert "stm32: Change USART port to USART6 for stm32f746 discovery board" 2016-07-21 15:38:13 -04:00
mach-sunxi sunxi: musb: Power off OTG port VBUS when disabled 2016-09-17 14:37:40 +02:00
mach-tegra ARM: tegra: add peripheral clock init table 2016-09-27 09:11:02 -07:00
mach-uniphier ARM: uniphier: add PLL init code for LD11 SoC 2016-09-23 01:00:23 +09:00
mach-versatile arm: Remove versatileab board 2015-09-11 15:01:25 -04:00
mach-zynq arch, board: squash lines for immediate return 2016-09-23 17:53:53 -04:00
thumb1/include/asm/proc-armv arm: support Thumb-1 with CONFIG_SYS_THUMB_BUILD 2015-11-10 15:03:48 +01:00
config.mk ARM: Add secure section for initialized data 2016-07-15 15:54:58 +02:00
Kconfig Merge git://git.denx.de/u-boot-fsl-qoriq 2016-09-26 17:10:56 -04:00
Kconfig.debug arm: debug: add Kconfig entries for lowlevel debug 2014-10-26 22:23:12 +01:00
Makefile Merge branch 'rmobile' of git://git.denx.de/u-boot-sh 2016-08-20 16:40:34 -04:00