u-boot/arch/arm/mach-tegra
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
..
tegra20 ARM: tegra: add peripheral clock init table 2016-09-27 09:11:02 -07:00
tegra30 ARM: tegra: add peripheral clock init table 2016-09-27 09:11:02 -07:00
tegra114 ARM: tegra: add peripheral clock init table 2016-09-27 09:11:02 -07:00
tegra124 ARM: tegra: add peripheral clock init table 2016-09-27 09:11:02 -07:00
tegra186 ARM: tegra: pick up actual memory size 2016-07-21 09:31:30 -07:00
tegra210 ARM: tegra: add peripheral clock init table 2016-09-27 09:11:02 -07:00
ap.c bug.h: move BUILD_BUG_* defines to include/linux/bug.h 2016-01-25 10:39:59 -05:00
arm64-mmu.c armv8: mmu: Add support of non-identical mapping 2016-07-15 09:01:43 -07:00
board.c dm: tegra: Provide serial platform data for SPL 2015-12-05 18:22:38 -05:00
board2.c mmc: tegra: Add DM_MMC support to Tegra MMC driver 2016-09-27 09:11:01 -07:00
board186.c mmc: tegra: Add DM_MMC support to Tegra MMC driver 2016-09-27 09:11:01 -07:00
cache.c Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
clock.c ARM: tegra: add peripheral clock init table 2016-09-27 09:11:02 -07:00
cmd_enterrcm.c ARM: tegra: collect SoC sources into mach-tegra 2015-02-21 08:23:51 -05:00
cpu.c Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
cpu.h ARM: tegra: reduce CSITE clock from 204M to 136M 2016-08-15 10:26:14 -07:00
dt-setup.c ARM: tegra: move ft_system_setup() 2016-08-15 10:26:13 -07:00
emc.c ARM: tegra: move NVIDIA common files to arch/arm/mach-tegra 2015-05-13 09:46:19 -07:00
emc.h ARM: tegra: move NVIDIA common files to arch/arm/mach-tegra 2015-05-13 09:46:19 -07:00
gpu.c ARM: tegra: enable GPU node by compatible value 2016-05-04 13:31:03 -07:00
ivc.c ARM: tegra: add IVC protocol implementation 2016-07-21 09:31:30 -07:00
Kconfig mmc: tegra: Add DM_MMC support to Tegra MMC driver 2016-09-27 09:11:01 -07:00
lowlevel_init.S ARM: Tegra210: Add support to common Tegra source/config files 2015-07-28 10:30:20 -07:00
Makefile ARM: tegra: move ft_system_setup() 2016-08-15 10:26:13 -07:00
pinmux-common.c ARM: tegra: Build warning fixes for 64-bit 2015-07-27 15:54:18 -07:00
powergate.c tegra: Introduce SRAM repair on tegra124 2015-06-09 09:56:14 -07:00
psci.S ARM: PSCI: Switch to per-CPU target PC storage in secure data section 2016-07-15 15:54:58 +02:00
spl.c ARM: tegra: collect SoC sources into mach-tegra 2015-02-21 08:23:51 -05:00
sys_info.c ARM: tegra: collect SoC sources into mach-tegra 2015-02-21 08:23:51 -05:00
xusb-padctl-common.c ARM: tegra: create common XUSB padctl driver file 2015-11-12 09:21:06 -07:00
xusb-padctl-common.h ARM: tegra: add lane tables to Tegra210 XUSB padctl 2015-11-12 09:21:07 -07:00
xusb-padctl-dummy.c ARM: tegra: rename dummy XUSB padctl implementation 2015-11-12 09:21:06 -07:00