linux-stable/drivers/clk
Douglas Anderson f4033db5b8 clk: rockchip: undo several noc and special clocks as critical on rk3288
This is mostly a revert of commit 55bb6a633c ("clk: rockchip: mark
noc and some special clk as critical on rk3288") except that we're
keeping "pmu_hclk_otg0" as critical still.

NOTE: turning these clocks off doesn't seem to do a whole lot in terms
of power savings (checking the power on the logic rail).  It appears
to save maybe 1-2mW.  ...but still it seems like we should turn the
clocks off if they aren't needed.

About "pmu_hclk_otg0" (the one clock from the original commit we're
still keeping critical) from an email thread:

> pmu ahb clock
>
> Function: Clock to pmu module when hibernation and/or ADP is
> enabled. Must be greater than or equal to 30 MHz.
>
> If the SOC design does not support hibernation/ADP function, only have
> hclk_otg, this clk can be switched according to the usage of otg.
> If the SOC design support hibernation/ADP, has two clocks, hclk_otg and
> pmu_hclk_otg0.
> Hclk_otg belongs to the closed part of otg logic, which can be switched
> according to the use of otg.
>
> pmu_hclk_otg0 belongs to the always on part.
>
> As for whether pmu_hclk_otg0 can be turned off when otg is not in use,
> we have not tested. IC suggest make pmu_hclk_otg0 always on.

For the rest of the clocks:

atclk: No documentation about this clock other than that it goes to
the CPU.  CPU functions fine without it on.  Maybe needed for JTAG?

jtag: Presumably this clock is only needed if you're debugging with
JTAG.  It doesn't seem like it makes sense to waste power for every
rk3288 user.  In any case to do JTAG you'd need private patches to
adjust the pinctrl the mux the JTAG out anyway.

pclk_dbg, pclk_core_niu: On veyron Chromebooks we turn these two
clocks on only during kernel panics in order to access some coresight
registers.  Since nothing in the upstream kernel does this we should
be able to leave them off safely.  Maybe also needed for JTAG?

hsicphy12m_xin12m: There is no indication of why this clock would need
to be turned on for boards that don't use HSIC.

pclk_ddrupctl[0-1], pclk_publ0[0-1]: On veyron Chromebooks we turn
these 4 clocks on only when doing DDR transitions and they are off
otherwise.  I see no reason why they'd need to be on in the upstream
kernel which doesn't support DDRFreq.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-04-23 12:17:11 +02:00
..
actions clk: actions: Add clock driver for S500 SoC 2019-02-22 00:01:08 -08:00
at91 Merge branch 'clk-at91' into clk-next 2019-03-08 10:29:47 -08:00
axis
axs10x clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
bcm Merge branches 'clk-managed-registration', 'clk-spdx', 'clk-remove-basic' and 'clk-ops-const' into clk-next 2018-12-14 13:33:44 -08:00
berlin This time we have a good set of changes to the core framework that do some 2018-06-09 12:06:24 -07:00
davinci clk: davinci: kill davinci_clk_reset_assert/deassert() 2018-10-02 08:54:14 -07:00
h8300 clk: h8300: Remove usage of CLK_IS_BASIC 2018-12-10 14:43:21 -08:00
hisilicon clk: hisilicon: Remove usage of CLK_IS_BASIC 2018-12-10 14:43:21 -08:00
imgtec clk: boston: unregister clks on failure in clk_boston_setup() 2018-11-08 10:14:41 -08:00
imx Merge branches 'clk-imx', 'clk-samsung', 'clk-ti', 'clk-uniphier-gear' and 'clk-mmp2-lcdc' into clk-next 2019-03-08 10:27:40 -08:00
ingenic clk: ingenic: Remove set but not used variable 'enable' 2019-02-26 09:41:04 -08:00
keystone Merge branch 'clk-k3-tisci' into clk-next 2018-10-18 15:40:10 -07:00
loongson1 clk: Loongson1: Remove usage of CLK_IS_BASIC 2018-12-10 14:44:08 -08:00
mediatek Merge branches 'clk-typo', 'clk-json-schema', 'clk-mtk-2712-eco' and 'clk-rockchip' into clk-next 2019-03-08 10:34:22 -08:00
meson clk: meson: meson8b: fix the naming of the APB clocks 2019-02-13 09:51:09 +01:00
microchip
mmp clk: mmp2: separate LCDC peripheral clk form the display clock 2019-02-21 13:52:02 -08:00
mvebu clk: dove: fix refcount leak in dove_clk_init() 2018-12-28 11:45:43 -08:00
mxs clk: mxs: make clk_ops const 2017-11-01 23:25:43 -07:00
nxp clk: lpc32xx: Set name of regmap_config 2018-03-19 14:35:16 -07:00
pistachio clk: pistachio: constify clk_ops structures 2018-11-06 09:41:49 -08:00
pxa clk: pxa: constify clk_ops structures 2018-11-06 09:41:57 -08:00
qcom Merge branches 'clk-ingenic', 'clk-mtk-mux', 'clk-qcom-sdm845-pcie', 'clk-mtk-crit' and 'clk-mtk' into clk-next 2019-03-08 10:29:30 -08:00
renesas clk: renesas: r8a774a1: Fix LAST_DT_CORE_CLK 2019-02-25 09:13:19 -08:00
rockchip clk: rockchip: undo several noc and special clocks as critical on rk3288 2019-04-23 12:17:11 +02:00
samsung Merge branches 'clk-typo', 'clk-json-schema', 'clk-mtk-2712-eco' and 'clk-rockchip' into clk-next 2019-03-08 10:34:22 -08:00
sirf We have two changes to the core framework this time around. The first being a 2017-11-17 20:04:24 -08:00
socfpga Merge branches 'clk-of-refcount', 'clk-mmio-fixed-clock', 'clk-remove-clps', 'clk-socfpga-parent' and 'clk-struct-size' into clk-next 2019-03-08 10:26:59 -08:00
spear clk: spear: fix WDT clock definition on SPEAr600 2018-04-06 13:45:34 -07:00
sprd clk: sprd: add RTC gate for SC9860 2018-03-16 15:53:30 -07:00
st clk: st: Remove usage of CLK_IS_BASIC 2018-12-10 14:43:20 -08:00
sunxi clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
sunxi-ng Merge branches 'clk-optional', 'clk-devm-clkdev-register', 'clk-allwinner', 'clk-meson' and 'clk-renesas' into clk-next 2019-03-08 10:27:21 -08:00
tegra We have a fairly balanced mix of clk driver updates and clk framework 2019-03-14 08:46:17 -07:00
ti We have a fairly balanced mix of clk driver updates and clk framework 2019-03-14 08:46:17 -07:00
uniphier clk: uniphier: Fix update register for CPU-gear 2019-02-21 13:50:23 -08:00
ux500 clk: Use of_node_name_eq for node name comparisons 2018-12-14 13:52:41 -08:00
versatile clk: versatile: sp810: Remove usage of CLK_IS_BASIC 2018-12-10 14:44:05 -08:00
x86 Merge branches 'clk-qcom-msm8998', 'clk-fractional-parent', 'clk-x86-mv' and 'clk-SA-fixes' into clk-next 2019-03-08 10:29:15 -08:00
zte clk: move clock common macros out from vendor directories 2017-12-21 15:00:38 -08:00
zynq clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
zynqmp clk: zynqmp: Fix memory allocation in zynqmp_clk_setup 2019-01-09 10:37:01 -08:00
clk-asm9260.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk-aspeed.c The new and exciting feature this time around is in the clk core. 2018-08-15 21:41:21 -07:00
clk-axi-clkgen.c clk: axi-clkgen: Round closest in round_rate() and recalc_rate() 2017-12-21 18:07:53 -08:00
clk-axm5516.c clk: axm5516: Remove usage of CLK_IS_BASIC 2018-12-10 14:43:21 -08:00
clk-bd718x7.c clk: bd718x7: Initial support for ROHM bd71837/bd71847 PMIC clock 2018-12-10 12:44:03 -08:00
clk-bulk.c clk: Tag clk core files with SPDX 2018-12-11 09:57:47 -08:00
clk-cdce706.c
clk-cdce925.c Merge branches 'clk-dt-name', 'clk-ti-of-node' and 'clk-sa' into clk-next 2018-10-18 15:33:52 -07:00
clk-clps711x.c clk: clps711x: Remove board support 2019-01-09 12:50:21 -08:00
clk-composite.c clk: Tag basic clk types with SPDX 2018-12-11 09:57:48 -08:00
clk-conf.c clk: Tag clk core files with SPDX 2018-12-11 09:57:47 -08:00
clk-cs2000-cp.c clk: cs2000-cp: convert to SPDX identifiers 2018-08-02 13:55:00 -07:00
clk-devres.c clk: Add (devm_)clk_get_optional() functions 2019-02-06 10:33:10 -08:00
clk-divider.c clk: Tag basic clk types with SPDX 2018-12-11 09:57:48 -08:00
clk-efm32gg.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-fixed-factor.c Merge branch 'clk-fixes' into clk-next 2018-12-14 13:42:08 -08:00
clk-fixed-mmio.c clk: Add Fixed MMIO clock driver 2019-01-09 11:41:19 -08:00
clk-fixed-rate.c clk: Tag basic clk types with SPDX 2018-12-11 09:57:48 -08:00
clk-fractional-divider.c clk: fractional-divider: check parent rate only if flag is set 2019-02-22 00:11:47 -08:00
clk-gate.c clk: Tag basic clk types with SPDX 2018-12-11 09:57:48 -08:00
clk-gemini.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-gpio.c clk: clk-gpio: add support for sleeping GPIOs in gpio-gate-clk 2019-02-21 14:05:25 -08:00
clk-hi655x.c clk: clk-hi655x: Free of_provider at remove 2018-12-05 09:20:29 -08:00
clk-highbank.c clk: highbank: fix refcount leak in hb_clk_init() 2018-12-28 11:20:48 -08:00
clk-hsdk-pll.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk-max9485.c clk: Add driver for MAX9485 2018-07-06 13:44:06 -07:00
clk-max77686.c clk: clk-max77686: Clean clkdev lookup leak and use devm 2019-02-06 10:35:03 -08:00
clk-moxart.c
clk-multiplier.c clk: Tag basic clk types with SPDX 2018-12-11 09:57:48 -08:00
clk-mux.c clk: Tag basic clk types with SPDX 2018-12-11 09:57:48 -08:00
clk-nomadik.c clk: nomadik: Change to use DEFINE_SHOW_ATTRIBUTE macro 2018-11-28 14:13:18 -08:00
clk-npcm7xx.c This time it looks like a quieter release cycle in the clk tree. I guess that's 2018-10-31 11:08:30 -07:00
clk-nspire.c
clk-oxnas.c
clk-palmas.c clk: palmas: constify clk_ops structure 2018-11-06 09:41:44 -08:00
clk-pwm.c
clk-qoriq.c Merge branches 'clk-qcom-msm8998', 'clk-fractional-parent', 'clk-x86-mv' and 'clk-SA-fixes' into clk-next 2019-03-08 10:29:15 -08:00
clk-rk808.c clk: rk808: use managed version of of_provider registration 2018-12-05 09:20:35 -08:00
clk-s2mps11.c clk: s2mps11: constify clk_ops structure 2018-11-06 09:42:12 -08:00
clk-scmi.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk-scpi.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk-si514.c clk-si514, clk-si544: Implement prepare/unprepare/is_prepared operations 2018-06-29 10:59:40 -07:00
clk-si544.c clk-si514, clk-si544: Implement prepare/unprepare/is_prepared operations 2018-06-29 10:59:40 -07:00
clk-si570.c
clk-si5351.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk-si5351.h
clk-stm32f4.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk-stm32h7.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk-stm32mp1.c clk: stm32mp1: fix bit width of hse_rtc divider 2019-02-21 14:13:22 -08:00
clk-tango4.c clk: Convert to using %pOFn instead of device_node.name 2018-08-30 09:50:20 -07:00
clk-twl6040.c clk: clk-twl6040: Fix imprecise external abort for pdmclk 2019-02-21 14:11:23 -08:00
clk-u300.c clk: clk-u300: Fix a typo in two comment lines 2017-11-13 17:39:43 -08:00
clk-versaclock5.c clk: vc5: Abort clock configuration without upstream clock 2019-01-09 10:53:58 -08:00
clk-vt8500.c
clk-wm831x.c clk: make clk_init_data const 2017-11-01 23:25:51 -07:00
clk-xgene.c clk: clk-xgene: Adjust six checks for null pointers 2017-11-13 17:40:03 -08:00
clk.c clk: fixup default index for of_clk_get_by_name() 2019-03-08 10:35:07 -08:00
clk.h clk: Move of_clk_*() APIs into clk.c from clkdev.c 2019-03-01 11:17:22 -08:00
clkdev.c Merge branch 'clk-parent-rewrite' (early part) into clk-next 2019-03-08 10:35:01 -08:00
Kconfig Merge branches 'clk-of-refcount', 'clk-mmio-fixed-clock', 'clk-remove-clps', 'clk-socfpga-parent' and 'clk-struct-size' into clk-next 2019-03-08 10:26:59 -08:00
Makefile Merge branches 'clk-optional', 'clk-devm-clkdev-register', 'clk-allwinner', 'clk-meson' and 'clk-renesas' into clk-next 2019-03-08 10:27:21 -08:00