clk: rockchip: mark noc and some special clk as critical on rk3228
authorElaine Zhang <zhangqing@rock-chips.com>
Tue, 2 May 2017 07:34:04 +0000 (15:34 +0800)
committerHeiko Stuebner <heiko@sntech.de>
Fri, 2 Jun 2017 13:51:11 +0000 (15:51 +0200)
The jtag/bus/peri/initmem/rom/stimer/phy clks no driver to handle them.
But this clks need enable,so make it as critical.

The ddrupctl/ddrmon/ddrphy clks no driver to handle them,
Chip design requirements for these clock to always on,

The hclk_otg_pmu is Chip design defect, must be always on,
The new document will update the description of this clock.

All these non-noc/non-arbi clocks,IC suggest always on,
Because it's have some order limitation, between the NOC clock switch
and bus IDLE(or pd on/off).

The software is not very good to solve this constraint.
Always on these clocks, has no effect on the system power consumption.
The new document will update the description of these clock.

Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
drivers/clk/rockchip/clk-rk3228.c

index d76da6d37c8b89b9327ed53a08406ca32a2d8a13..bb405d9044a3b35c5c7afc49afd8c7cffa741a53 100644 (file)
@@ -463,7 +463,7 @@ static struct rockchip_clk_branch rk3228_clk_branches[] __initdata = {
                        RK2928_CLKGATE_CON(2), 12, GFLAGS,
                        &rk3228_spdif_fracmux),
 
-       GATE(0, "jtag", "ext_jtag", 0,
+       GATE(0, "jtag", "ext_jtag", CLK_IGNORE_UNUSED,
                        RK2928_CLKGATE_CON(1), 3, GFLAGS),
 
        GATE(SCLK_OTGPHY0, "sclk_otgphy0", "xin24m", 0,
@@ -662,9 +662,37 @@ static struct rockchip_clk_branch rk3228_clk_branches[] __initdata = {
 
 static const char *const rk3228_critical_clocks[] __initconst = {
        "aclk_cpu",
+       "pclk_cpu",
+       "hclk_cpu",
        "aclk_peri",
        "hclk_peri",
        "pclk_peri",
+       "aclk_rga_noc",
+       "aclk_iep_noc",
+       "aclk_vop_noc",
+       "aclk_hdcp_noc",
+       "hclk_vio_ahb_arbi",
+       "hclk_vio_noc",
+       "hclk_vop_noc",
+       "hclk_host0_arb",
+       "hclk_host1_arb",
+       "hclk_host2_arb",
+       "hclk_otg_pmu",
+       "aclk_gpu_noc",
+       "sclk_initmem_mbist",
+       "aclk_initmem",
+       "hclk_rom",
+       "pclk_ddrupctl",
+       "pclk_ddrmon",
+       "pclk_msch_noc",
+       "pclk_stimer",
+       "pclk_ddrphy",
+       "pclk_acodecphy",
+       "pclk_phy_noc",
+       "aclk_vpu_noc",
+       "aclk_rkvdec_noc",
+       "hclk_vpu_noc",
+       "hclk_rkvdec_noc",
 };
 
 static void __init rk3228_clk_init(struct device_node *np)