- 15 6月, 2019 1 次提交
-
-
由 Heiko Stuebner 提交于
Some clk gates on Rockchip SoCs are part of the SGRF (secure general register files) and thus only controllable from secure mode, with the most prominent example being the watchdog. In most cases we still want to define this as a real clock though, to have complete clock tree and not reference the generic base-clock from the devicetree. So far we've just defined this as factor-1-1 clocks in the clock init, so define a special clock-type for it so that this definition can be part of the general tree-definition and save some boilerplate code. Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 31 5月, 2019 1 次提交
-
-
由 Thomas Gleixner 提交于
Based on 3 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version [author] [kishon] [vijay] [abraham] [i] [kishon]@[ti] [com] this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version [author] [graeme] [gregory] [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i] [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema] [hk] [hemahk]@[ti] [com] this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1105 file(s). Signed-off-by: NThomas Gleixner <tglx@linutronix.de> Reviewed-by: NAllison Randal <allison@lohutok.net> Reviewed-by: NRichard Fontana <rfontana@redhat.com> Reviewed-by: NKate Stewart <kstewart@linuxfoundation.org> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.deSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 13 4月, 2019 1 次提交
-
-
由 Finley Xiao 提交于
The div offset of some clocks are different from their mux offset and the COMPOSITE clock-type require that div and mux offset are the same, so add a new COMPOSITE_DIV_OFFSET clock-type to handle that. Signed-off-by: NFinley Xiao <finley.xiao@rock-chips.com> Signed-off-by: NElaine Zhang <zhangqing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 07 7月, 2018 2 次提交
-
-
由 Elaine Zhang 提交于
Add the clock tree definition for the new px30 SoC. Signed-off-by: NElaine Zhang <zhangqing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Elaine Zhang 提交于
The new Rockchip socs have optional half divider: The formula is shown as: freq_out = 2*freq_in / (2*div + 3) Is this the same for all of new SoCs. So we use "branch_half_divider" + "COMPOSITE_NOMUX_HALFDIV \ DIV_HALF \ COMPOSITE_HALFDIV \ CMPOSITE_NOGATE_HALFDIV" to hook that special divider clock-type into our clock-tree. Signed-off-by: NElaine Zhang <zhangqing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 23 3月, 2017 1 次提交
-
-
由 Andy Yan 提交于
Rockchip finally named the SOC as RV1108, so change it. Signed-off-by: NAndy Yan <andy.yan@rock-chips.com> [include rename in rk1108.dtsi to prevent compile errors] Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 05 1月, 2017 1 次提交
-
-
由 Elaine Zhang 提交于
Add the clock tree definition for the new rk3328 SoC. Signed-off-by: NElaine Zhang <zhangqing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 02 1月, 2017 2 次提交
-
-
由 Elaine Zhang 提交于
The rk3328's pll and clock are similar with rk3036's, it different with pll_mode_mask, the rk3328 soc pll mode only one bit(rk3036 soc have two bits) so these should be independent and separate from the series of rk3328s. Signed-off-by: NElaine Zhang <zhangqing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Heiko Stuebner 提交于
Rockchip socs often have some tiny number of muxes not controlled from the core clock controller but through bits set in the general register files. Add a clock-type that can control these as well, so that we don't need to work around them being absent. Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 16 11月, 2016 1 次提交
-
-
由 Shawn Lin 提交于
Add the clock tree definition and driver for rk1108 SoC. Signed-off-by: NShawn Lin <shawn.lin@rock-chips.com> Tested-by: NJacob Chen <jacob2.chen@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 01 9月, 2016 1 次提交
-
-
由 Lin Huang 提交于
Changing the rate of the DDR clock needs special care, as the DDR is of course in use and will react badly if the rate changes under it. Over time different approaches to handle that were used. Past SoCs like the rk3288 and before would store some code in SRAM while the rk3368 used a SCPI variant and let a coprocessor handle that. New rockchip platforms like the rk3399 have a dcf controller to do ddr frequency scaling, and support for this controller will be implemented in the arm-trusted-firmware. This new clock-type should over time handle all these methods for handling DDR rate changes, but right now it will concentrate on the SIP interface used to talk to ARM trusted firmware. The SIP interface counterpart was merged from pull-request #684 [0] into the upstream arm-trusted-firmware codebase. [0] https://github.com/ARM-software/arm-trusted-firmware/pull/684Signed-off-by: NLin Huang <hl@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 08 8月, 2016 1 次提交
-
-
由 Heiko Stübner 提交于
Add the general flags the pll list already contains to the clock init, so that needed clock flags can be used for plls. Signed-off-by: NHeiko Stübner <heiko@sntech.de>
-
- 09 5月, 2016 1 次提交
-
-
由 Heiko Stuebner 提交于
With the previous commit, the clock drivers now know at init time if the GRF regmap is available. That means if it isn't available then, it also won't become available later and we can therefore switch PLLs, that need the GRF for the lock-status, to read-only mode - similar behaviour as the aborting of rate changes we did before. This saves some conditionals on every rate change and we can also drop the rockchip_clk_get_grf function completely. Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 20 4月, 2016 2 次提交
-
-
由 Heiko Stuebner 提交于
We seem to have accumulated a bunch of checkpatch warnings, with mainly overlong lines and two unnecessary allocation error messages. Most were introduced with the recent multi-controller-support but some were quite a bit older. Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Heiko Stuebner 提交于
The internal clk header did contain a comment indicating that some of the defined registers were shared over multiple clock controller variants. In recent times, it was simply extended all the time and stopped providing any meaningful information, so drop it and it's overlong line. Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 28 3月, 2016 1 次提交
-
-
由 Xing Zheng 提交于
Add the clock tree definition for the new RK3399 SoC. Signed-off-by: NXing Zheng <zhengxing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 27 3月, 2016 6 次提交
-
-
由 Shawn Lin 提交于
./scripts/kernel-doc -man -v drivers/clk/rockchip/clk.h > /dev/null drivers/clk/rockchip/clk.h:133: warning: missing initial short description on line: * struct rockchip_clk_provider: information about clock provider drivers/clk/rockchip/clk.h:133: info: Scanning doc for struct drivers/clk/rockchip/clk.h:164: warning: missing initial short description on line: * struct rockchip_pll_clock: information about pll clock drivers/clk/rockchip/clk.h:164: info: Scanning doc for struct drivers/clk/rockchip/clk.h:194: warning: No description found for parameter 'parent_names' drivers/clk/rockchip/clk.h:194: warning: No description found for parameter 'num_parents' drivers/clk/rockchip/clk.h:194: warning: Excess struct/union/enum/typedef member 'parent_name' description in 'rockchip_pll_clock' drivers/clk/rockchip/clk.h:235: warning: missing initial short description on line: * struct rockchip_cpuclk_reg_data: describes register offsets and masks of the cpuclock Signed-off-by: NShawn Lin <shawn.lin@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Shawn Lin 提交于
mux_core_reg isn't been used anywhere, let's remove it. Signed-off-by: NShawn Lin <shawn.lin@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Xing Zheng 提交于
The rk3399's pll and clock are similar with rk3036's, it different with base on the rk3066(rk3188, rk3288, rk3368 use it), there are different adjust foctors and control registers, so these should be independent and separate from the series of rk3066s. Signed-off-by: NXing Zheng <zhengxing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Xing Zheng 提交于
There are need to support Multi-CRUs probability in future, but it is not supported on the current Rockchip Clock Framework. Therefore, this patch add support a provider as the parameter handler when we call the clock register functions for per CRU. Signed-off-by: NXing Zheng <zhengxing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Xing Zheng 提交于
Thers are only two parent PLLs that APLL and GPLL for core on the previous SoCs (RK3066/RK3188/RK3288/RK3368). Hence, we set fixed GPLL as alternate parent when core is switching freq. Since RK3399 big.LITTLE architecture, we need to select and adapt more PLLs (ALPLL/ABPLL/DPLL/GPLL) sources. Signed-off-by: NXing Zheng <zhengxing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Xing Zheng 提交于
Because there are some frac clock mux nodes don't have a gate node on the RK3399. Signed-off-by: NXing Zheng <zhengxing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 04 2月, 2016 1 次提交
-
-
由 Heiko Stuebner 提交于
Add a clock type for fixed factor clocks. This allows us to define fixed factor clocks where they appear in the clock hierarchy instead of in the init function. The additional factor_gate type, finally allows us to model some last parts of the clock tree correctly. Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 03 1月, 2016 1 次提交
-
-
由 Heiko Stübner 提交于
To model the muxes downstream of fractional dividers we introduced the child property, allowing to describe a direct child clock. The first implementation seems to cause section warnings, as the core clock-tree is marked as initdata while the data pointed to from the child element is not. While there may be some way to also set that missing property in the inline notation I didn't find it, so to actually fix the issue for now move the sub-definitions into separate declarations that can have their own __initdata properties. Signed-off-by: NHeiko Stuebner <heiko@sntech.de> Signed-off-by: NMichael Turquette <mturquette@baylibre.com>
-
- 24 12月, 2015 1 次提交
-
-
由 Heiko Stuebner 提交于
The fractional dividers of Rockchip SoCs contain an "auto-gating-feature" that requires the downstream mux to actually point to the fractional divider and the fractional divider gate to be enabled, for it to really accept changes to the divider ratio. The downstream muxes themselfs are not generic enough to include them directly into the fractional divider, as they have varying sources of parent clocks including not only clocks related to the fractional dividers but other clocks as well. To solve this, allow our clock branches to specify direct child clock- branches in the new child property, let the fractional divider register its downstream mux through this and add a clock notifier that temporarily switches the mux setting when it notices rate changes to the fractional divider. Signed-off-by: NHeiko Stuebner <heiko@sntech.de> Tested-by: NSjoerd Simons <sjoerd.simons@collabora.co.uk> Reviewed-by: NSjoerd Simons <sjoerd.simons@collabora.co.uk> Signed-off-by: NMichael Turquette <mturquette@baylibre.com>
-
- 21 12月, 2015 1 次提交
-
-
由 Heiko Stuebner 提交于
As commit 1d33929e ("clk: rockchip: switch PLLs to slow mode before reboot for rk3288") states, switching the PLLs to slow-mode is only necessary when rebooting using the soft-reset done through the CRU. The dwc2 controllers used create really big number of interrupts in special constellations involving usb-hubs and their number is so high, it can even overwhelm the interrupt handler if the cpu-speed os to low. Right now the PLLs are put into slow-mode in a shutdown syscore_ops callback which means it happens on all reboots (not only the soft-reset ones) and even on poweroff actions. This can result in the system not powering off and getting stuck instead, so we should move the slow-mode change nearer to the actual reboot action. For this we introduce the possiblity to also set a callback that gets called from the restart-handler directly prior to restarting the system and move the shutdown-callback to this new option. With this the slow-mode switch is done only on the necessary reboots and also has a smaller possibility of causing artifacts. Fixes: 1d33929e ("clk: rockchip: switch PLLs to slow mode before reboot for rk3288") Signed-off-by: NHeiko Stuebner <heiko.stuebner@collabora.com> Reviewed-by: NDouglas Anderson <dianders@chromium.org>
-
- 13 12月, 2015 1 次提交
-
-
由 Jeffy Chen 提交于
Add the clock tree definition for the new rk3228 SoC. Signed-off-by: NJeffy Chen <jeffy.chen@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 24 11月, 2015 2 次提交
-
-
由 Xing Zheng 提交于
Add the clock tree definition for the new rk3036 SoC. Signed-off-by: NXing Zheng <zhengxing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
由 Xing Zheng 提交于
The rk3036's pll and clock are different with base on the rk3066(rk3188, rk3288, rk3368 use it), there are different adjust foctors and control registers, so these should be independent and separate from the series of rk3066s. Signed-off-by: NXing Zheng <zhengxing@rock-chips.com> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 29 7月, 2015 1 次提交
-
-
由 Douglas Anderson 提交于
In the TRM we see that BWADJ is "a 12-bit bus that selects the values 1-4096 for the bandwidth divider (NB)": NB = BWADJ[11:0] + 1 The recommended setting of NB: NB = NF / 2. So: NB = NF / 2 BWADJ[11:0] + 1 = NF / 2 BWADJ[11:0] = NF / 2 - 1 Right now, we have: { \ .rate = _rate##U, \ .nr = _nr, \ .nf = _nf, \ .no = _no, \ .bwadj = (_nf >> 1), \ } That means we set bwadj to NF / 2, not NF / 2 - 1 All of this is a bit confusing because we specify "NR" (the 1-based value), "NF" (the 1-based value), "NO" (the 1-based value), but "BWADJ" (the 0-based value) instead of "NB" (the 1-based value). Let's change to working with "NB" and fix the off by one error. This may affect PLL jitter in a small way (hopefully for the better). Signed-off-by: NDouglas Anderson <dianders@chromium.org> Reviewed-by: NHeiko Stuebner <heiko@sntech.de> Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
-
- 21 7月, 2015 1 次提交
-
-
由 Stephen Boyd 提交于
Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Only include clk.h if it's actually used. Cc: Heiko Stuebner <heiko@sntech.de> Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
-
- 07 7月, 2015 4 次提交
-
-
由 Heiko Stuebner 提交于
Describe the clock tree and software resets of the rk3368 ARM64 SoC Signed-off-by: NHeiko Stuebner <heiko@sntech.de> Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
-
由 Heiko Stuebner 提交于
Most Rockchip socs have optional phase inverters connected to some clocks that move the clock-phase by 180 degrees. Signed-off-by: NHeiko Stuebner <heiko@sntech.de> [sboyd@codeaurora.org: Dropped lazy part of commit text] Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
-
由 Heiko Stuebner 提交于
A clock branch consisting of a mux and divider with non-standard divider values. Signed-off-by: NHeiko Stuebner <heiko@sntech.de> Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
-
由 Heiko Stuebner 提交于
The macros calculate the correct offset from the id in the parameter. If this parameter does not consist of a single number, the calculation will return wrong registers in the best case or create unaligned accesses in the worst case. So protect the calculations against such values. Signed-off-by: NHeiko Stuebner <heiko@sntech.de> Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
-
- 05 6月, 2015 1 次提交
-
-
由 Uwe Kleine-König 提交于
Since commit 2893c379 ("clk: make strings in parent name arrays const") the name of parent clocks can be const. So add more const in several clock drivers. Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: NHeiko Stuebner <heiko@sntech.de> Acked-by: NSylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
-
- 13 4月, 2015 1 次提交
-
-
由 Uwe Kleine-König 提交于
The statement static const char *name[]; defines a modifiable array of pointers to constant chars. That is *name[0] = 'f'; is forbidden, but name[0] = "f"; is not. So marking an array that is defined as above with __initconst is wrong. Either an additional const must be added such that the whole definition reads: static const char *const name[] __initconst; or where this is not possible __initdata must be used. Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: NMichael Turquette <mturquette@linaro.org>
-
- 28 11月, 2014 1 次提交
-
-
由 Alexandru M Stan 提交于
This patch adds the 2 physical clocks for the mmc (drive and sample). They're mostly there for the phase properties, but they also show the true clock (by dividing by RK3288_MMC_CLKGEN_DIV). The drive and sample phases are generated by dividing an upstream parent clock by 2, this allows us to adjust the phase by 90 deg. There's also an option to have up to 255 delay elements (40-80 picoseconds long). This driver uses those elements (under the assumption that they're 60 ps long) to generate approximate 22.5 degrees options. 67.5 (22.5*3) might be as high as 90 deg if the delay elements are as big as 80 ps, so a finer division (smaller than 22.5) was not picked because the phase might not be monotonic anymore. Suggested-by: NHeiko Stuebner <heiko@sntech.de> Signed-off-by: NAlexandru M Stan <amstan@chromium.org> Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
-
- 25 11月, 2014 2 次提交
-
-
由 Heiko Stuebner 提交于
In some cases firmware brings up plls with different parameters than the ones noted in the rate table for the specific frequency. These firmware-selected parameters are worse than the tested ones in the pll rate tables but cannot be changed by a simple clk_set_rate call when the rate stays the same. Therefore add a ROCKCHIP_PLL_SYNC_RATE flag and implement an init callback that checks the runtime-parameters against the matching rate table entry and adjusts them to the table-ones if necessary. If no rate table is set or the current rate does not match any rate-table entry no changes are made. Being able to limit this adjustment to specific plls is necessary to not touch the ones supplying core components like the apll and dpll supplying the armcores and dram. Signed-off-by: NHeiko Stuebner <heiko@sntech.de> Reviewed-by: NKever Yang <kever.yang@rock-chips.com> Tested-by: NKever Yang <kever.yang@rock-chips.com>
-
由 Heiko Stuebner 提交于
This adds a flag parameter to plls that allows us to create special flags to tweak the behaviour of the plls if necessary. Signed-off-by: NHeiko Stuebner <heiko@sntech.de> Reviewed-by: NKever Yang <kever.yang@rock-chips.com> Tested-by: NKever Yang <kever.yang@rock-chips.com>
-