- 16 7月, 2015 1 次提交
-
-
由 Mikko Perttunen 提交于
This patch allows SoC-specific CAR initialization routines to register their own reset_assert and reset_deassert callbacks with the common Tegra CAR code. If defined, the common code will call these callbacks when a reset control with number >= num_periph_banks * 32 is attempted to be asserted or deasserted respectively. Numbers greater than or equal to num_periph_banks * 32 are used to avoid clashes with low numbers that are automatically mapped to standard CAR reset lines. Each SoC with these special resets should specify the defined reset control numbers in a device tree header file. Signed-off-by: NMikko Perttunen <mikko.perttunen@kapsi.fi> Acked-by: NMichael Turquette <mturquette@linaro.org> Signed-off-by: NThierry Reding <treding@nvidia.com>
-
- 10 4月, 2015 2 次提交
-
-
由 Thierry Reding 提交于
Tegra210 has an extra bank of peripheral clock registers. Add it to the generic peripheral clock code. Cc: Peter De Schrijver <pdeschrijver@nvidia.com> Cc: Prashant Gaikwad <pgaikwad@nvidia.com> Reviewed-by: NPaul Walmsley <paul@pwsan.com> Signed-off-by: NThierry Reding <treding@nvidia.com>
-
由 Thierry Reding 提交于
The number of resets controls is 32 times the number of peripheral register banks rather than 32 times the number of clocks. This reduces (drastically) the number of reset controls registered from 10080 (315 clocks * 32) to 224 (6 peripheral register banks * 32). This also fixes a potential crash because trying to use any of the excess reset controls (224-10079) would have caused accesses beyond the array bounds of the peripheral register banks definition array. Cc: Peter De Schrijver <pdeschrijver@nvidia.com> Cc: Prashant Gaikwad <pgaikwad@nvidia.com> Fixes: 6d5b988e ("clk: tegra: implement a reset driver") Cc: stable@vger.kernel.org # 3.14+ Signed-off-by: NThierry Reding <treding@nvidia.com>
-
- 02 2月, 2015 1 次提交
-
-
由 Peter De Schrijver 提交于
tegra_clocks_apply_init_table() needs to be called after the udelay loop has been calibrated (see commit 441f199a ("clk: tegra: defer application of init table") for why that is). On existing Tegra SoCs this was done by calling tegra_clocks_apply_init_table() from tegra_dt_init(). To make this also work on ARM64, we need to change this into an initcall. tegra_dt_init() is called from customize_machine which is an arch_initcall. Therefore this should also work on existing 32bit Tegra SoCs. Tested on Tegra20 (ventana), Tegra30 (beaverboard), Tegra124 (jetson TK1) and Tegra132. Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com> [paul@pwsan.com: tweaked the commit message] Signed-off-by: NPaul Walmsley <paul@pwsan.com> Signed-off-by: NPaul Walmsley <pwalmsley@nvidia.com> Cc: Thierry Reding <treding@nvidia.com> Cc: Prashant Gaikwad <pgaikwad@nvidia.com> Cc: Mike Turquette <mturquette@linaro.org> Cc: Stephen Boyd <sboyd@codeaurora.org> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Alexandre Courbot <gnurou@gmail.com>
-
- 18 9月, 2014 1 次提交
-
-
由 Tomeu Vizoso 提交于
Don't abort clock initialization if we cannot match an entry in tegra_clk_init_table to a valid entry in the clk array. Also log a corresponding error message. This was discovered when testing a patch that removed the EMC clock from tegra124_clks but left a mention in tegra_clk_init_table. Signed-off-by: NTomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: NStephen Warren <swarren@nvidia.com>
-
- 17 7月, 2014 1 次提交
-
-
由 Thierry Reding 提交于
In order to not clutter the include/linux directory with SoC specific headers, move the Tegra-specific headers out into a separate directory. Signed-off-by: NThierry Reding <treding@nvidia.com>
-
- 30 6月, 2014 1 次提交
-
-
由 Peter De Schrijver 提交于
When writing a module for testing or debugging purposes, there is no way to get hold of clk handles. This patch solves this by exposing all valid clocks as clkdev's for the virtual device tegra-clk-debug. Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com>
-
- 12 12月, 2013 1 次提交
-
-
由 Stephen Warren 提交于
The Tegra CAR module implements both a clock and reset controller. So far, the driver exposes the clock feature via the common clock API and the reset feature using a custom API. This patch adds an implementation of the common reset framework API (include/linux/reset*.h). The legacy reset implementation will be removed once all drivers have been converted. Signed-off-by: NStephen Warren <swarren@nvidia.com> Reviewed-by: NThierry Reding <treding@nvidia.com> Acked-By: NPeter De Schrijver <pdeschrijver@nvidia.com>
-
- 27 11月, 2013 5 次提交
-
-
由 Peter De Schrijver 提交于
Tegra124 has an extra bank of peripheral clock registers. Add it to the generic peripheral clock code. Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com>
-
由 Peter De Schrijver 提交于
Add a common infra for registering clkdev. This allows decoupling clk registration from clkdev registration. Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com>
-
由 Peter De Schrijver 提交于
Introduce a common infrastructure for sharing clock initialization between SoCs. Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com>
-
由 Peter De Schrijver 提交于
This patch makes periph_clk_enb_refcnt a global array, dynamically allocated at boottime. It simplifies the macros somewhat and allows clocks common to several Tegra SoCs to be defined in a separate files. Also the clks array becomes global and dynamically allocated which allows the DT registration to be moved to a generic funcion. Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com>
-
由 Peter De Schrijver 提交于
This patch determines the register bank for clock enable/disable and reset based on the clock ID instead of hardcoding it in the tables describing the clocks. This results in less data to be maintained in the tables, making the code easier to understand. The full benefit of the change will be realized once also other clocktypes will be table based. Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com>
-
- 01 6月, 2013 1 次提交
-
-
由 Prashant Gaikwad 提交于
Use common of_clk_init() function for clocks initialization. Signed-off-by: NPrashant Gaikwad <pgaikwad@nvidia.com> Reviewed-by: NThierry Reding <thierry.reding@gmail.com> Acked-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NMike Turquette <mturquette@linaro.org>
-
- 05 4月, 2013 3 次提交
-
-
由 Peter De Schrijver 提交于
Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com> Acked-by: NMike Turquette <mturquette@linaro.org> Signed-off-by: NStephen Warren <swarren@nvidia.com>
-
由 Peter De Schrijver 提交于
tegra_boot_secondary() relies on some of the car ops. This means having an uninitialized tegra_cpu_car_ops will lead to an early boot panic. Providing a dummy struct avoids this and makes adding Tegra114 clock support in a bisectable way a lot easier. Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com> Acked-by: NMike Turquette <mturquette@linaro.org> Signed-off-by: NStephen Warren <swarren@nvidia.com>
-
由 Stephen Warren 提交于
The Tegra clock driver is initialized during the ARM machine descriptor's .init_irq() hook. It can't be initialized earlier, since dynamic memory usage is required. It can't be initialized later, since the .init_timer() hook needs the clocks initialized. However, at this time, udelay() doesn't work. The Tegra clock initialization table may enable some PLLs. Enabling a PLL may require usage of udelay(). Hence, this can't happen right when the clock driver is initialized. To solve this, separate the clock driver initialization from the clock table processing, so they can execute at separate times. Signed-off-by: NStephen Warren <swarren@nvidia.com>
-
- 29 1月, 2013 2 次提交
-
-
由 Prashant Gaikwad 提交于
Migrate Tegra clock support to drivers/clk/tegra, this involves moving: 1. definition of tegra_cpu_car_ops to clk.c 2. definition of reset functions to clk-peripheral.c 3. change parent of cpu clock. 4. Remove legacy clock initialization. 5. Initialize clocks using DT. 6. Remove all instance of mach/clk.h Signed-off-by: NPrashant Gaikwad <pgaikwad@nvidia.com> [swarren: use to_clk_periph_gate().] Signed-off-by: NStephen Warren <swarren@nvidia.com>
-
由 Prashant Gaikwad 提交于
Add Tegra specific clocks, pll, pll_out, peripheral, frac_divider, super. Signed-off-by: NPrashant Gaikwad <pgaikwad@nvidia.com> [swarren: alloc sizeof(*foo) not sizeof(struct foo), add comments re: storing pointers to stack variables, make a timeout loop more idiomatic, use _clk_pll_disable() not clk_disable_pll() from _program_pll() to avoid redundant lock operations, unified tegra_clk_periph() and tegra_clk_periph_nodiv(), unified tegra_clk_pll{,e}, rename all clock registration functions so they don't have the same name as the clock structs, return -EINVAL from clk_plle_enable when matching table rate not found, pass ops to _tegra_clk_register_pll rather than a bool.] Acked-by: NMike Turquette <mturquette@linaro.org> Signed-off-by: NStephen Warren <swarren@nvidia.com>
-