* [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates
@ 2018-05-18 1:01 Anson Huang
2018-05-18 1:01 ` [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers Anson Huang
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Anson Huang @ 2018-05-18 1:01 UTC (permalink / raw)
To: shawnguo, kernel, fabio.estevam, robh+dt, mark.rutland,
mturquette, sboyd, stefan, adriana.reus, rui.silva
Cc: Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk
IMX7D_ENET_PHY_REF_ROOT_DIV supplies clock for PHY directly,
there is no clock gate after it, rename it to
IMX7D_ENET_PHY_REF_ROOT_CLK to avoid device tree change.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
drivers/clk/imx/clk-imx7d.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c
index 975a20d..23d5090a 100644
--- a/drivers/clk/imx/clk-imx7d.c
+++ b/drivers/clk/imx/clk-imx7d.c
@@ -738,7 +738,7 @@ static void __init imx7d_clocks_init(struct device_node *ccm_node)
clks[IMX7D_ENET1_TIME_ROOT_DIV] = imx_clk_divider2("enet1_time_post_div", "enet1_time_pre_div", base + 0xa780, 0, 6);
clks[IMX7D_ENET2_REF_ROOT_DIV] = imx_clk_divider2("enet2_ref_post_div", "enet2_ref_pre_div", base + 0xa800, 0, 6);
clks[IMX7D_ENET2_TIME_ROOT_DIV] = imx_clk_divider2("enet2_time_post_div", "enet2_time_pre_div", base + 0xa880, 0, 6);
- clks[IMX7D_ENET_PHY_REF_ROOT_DIV] = imx_clk_divider2("enet_phy_ref_post_div", "enet_phy_ref_pre_div", base + 0xa900, 0, 6);
+ clks[IMX7D_ENET_PHY_REF_ROOT_CLK] = imx_clk_divider2("enet_phy_ref_root_clk", "enet_phy_ref_pre_div", base + 0xa900, 0, 6);
clks[IMX7D_EIM_ROOT_DIV] = imx_clk_divider2("eim_post_div", "eim_pre_div", base + 0xa980, 0, 6);
clks[IMX7D_NAND_ROOT_CLK] = imx_clk_divider2("nand_root_clk", "nand_pre_div", base + 0xaa00, 0, 6);
clks[IMX7D_QSPI_ROOT_DIV] = imx_clk_divider2("qspi_post_div", "qspi_pre_div", base + 0xaa80, 0, 6);
@@ -816,7 +816,6 @@ static void __init imx7d_clocks_init(struct device_node *ccm_node)
clks[IMX7D_ENET1_TIME_ROOT_CLK] = imx_clk_gate4("enet1_time_root_clk", "enet1_time_post_div", base + 0x44f0, 0);
clks[IMX7D_ENET2_REF_ROOT_CLK] = imx_clk_gate4("enet2_ref_root_clk", "enet2_ref_post_div", base + 0x4500, 0);
clks[IMX7D_ENET2_TIME_ROOT_CLK] = imx_clk_gate4("enet2_time_root_clk", "enet2_time_post_div", base + 0x4510, 0);
- clks[IMX7D_ENET_PHY_REF_ROOT_CLK] = imx_clk_gate4("enet_phy_ref_root_clk", "enet_phy_ref_post_div", base + 0x4520, 0);
clks[IMX7D_EIM_ROOT_CLK] = imx_clk_gate4("eim_root_clk", "eim_post_div", base + 0x4160, 0);
clks[IMX7D_NAND_RAWNAND_CLK] = imx_clk_gate2_shared2("nand_rawnand_clk", "nand_root_clk", base + 0x4140, 0, &share_count_nand);
clks[IMX7D_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_root_clk", base + 0x4140, 0, &share_count_nand);
--
2.7.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers 2018-05-18 1:01 [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates Anson Huang @ 2018-05-18 1:01 ` Anson Huang 2018-05-18 13:02 ` Stefan Agner ` (2 more replies) 2018-05-18 1:01 ` [PATCH V2 3/3] ARM: dts: imx7: correct enet ipg clock Anson Huang ` (2 subsequent siblings) 3 siblings, 3 replies; 12+ messages in thread From: Anson Huang @ 2018-05-18 1:01 UTC (permalink / raw) To: shawnguo, kernel, fabio.estevam, robh+dt, mark.rutland, mturquette, sboyd, stefan, adriana.reus, rui.silva Cc: Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk Correct enet clock gates as below: CCGR6: IMX7D_ENET_AXI_ROOT_CLK (enet1 and enet2 bus clocks) CCGR112: IMX7D_ENET1_TIME_ROOT_CLK, IMX7D_ENET1_IPG_ROOT_CLK CCGR113: IMX7D_ENET2_TIME_ROOT_CLK, IMX7D_ENET2_IPG_ROOT_CLK Just rename unused IMX7D_ENETx_REF_ROOT_CLK for IMX7D_ENETx_IPG_ROOT_CLK instead of adding new clocks. Based on Andy Duan's patch from the NXP kernel tree. Signed-off-by: Anson Huang <Anson.Huang@nxp.com> --- drivers/clk/imx/clk-imx7d.c | 10 ++++++---- include/dt-bindings/clock/imx7d-clock.h | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c index 23d5090a..d4936b9 100644 --- a/drivers/clk/imx/clk-imx7d.c +++ b/drivers/clk/imx/clk-imx7d.c @@ -26,6 +26,8 @@ static u32 share_count_sai1; static u32 share_count_sai2; static u32 share_count_sai3; static u32 share_count_nand; +static u32 share_count_enet1; +static u32 share_count_enet2; static const struct clk_div_table test_div_table[] = { { .val = 3, .div = 1, }, @@ -805,6 +807,10 @@ static void __init imx7d_clocks_init(struct device_node *ccm_node) clks[IMX7D_MIPI_DSI_ROOT_CLK] = imx_clk_gate4("mipi_dsi_root_clk", "mipi_dsi_post_div", base + 0x4650, 0); clks[IMX7D_MIPI_CSI_ROOT_CLK] = imx_clk_gate4("mipi_csi_root_clk", "mipi_csi_post_div", base + 0x4640, 0); clks[IMX7D_MIPI_DPHY_ROOT_CLK] = imx_clk_gate4("mipi_dphy_root_clk", "mipi_dphy_post_div", base + 0x4660, 0); + clks[IMX7D_ENET1_IPG_ROOT_CLK] = imx_clk_gate2_shared2("enet1_ipg_root_clk", "enet_axi_post_div", base + 0x4700, 0, &share_count_enet1); + clks[IMX7D_ENET1_TIME_ROOT_CLK] = imx_clk_gate2_shared2("enet1_time_root_clk", "enet1_time_post_div", base + 0x4700, 0, &share_count_enet1); + clks[IMX7D_ENET2_IPG_ROOT_CLK] = imx_clk_gate2_shared2("enet2_ipg_root_clk", "enet_axi_post_div", base + 0x4710, 0, &share_count_enet2); + clks[IMX7D_ENET2_TIME_ROOT_CLK] = imx_clk_gate2_shared2("enet2_time_root_clk", "enet2_time_post_div", base + 0x4710, 0, &share_count_enet2); clks[IMX7D_SAI1_ROOT_CLK] = imx_clk_gate2_shared2("sai1_root_clk", "sai1_post_div", base + 0x48c0, 0, &share_count_sai1); clks[IMX7D_SAI1_IPG_CLK] = imx_clk_gate2_shared2("sai1_ipg_clk", "ipg_root_clk", base + 0x48c0, 0, &share_count_sai1); clks[IMX7D_SAI2_ROOT_CLK] = imx_clk_gate2_shared2("sai2_root_clk", "sai2_post_div", base + 0x48d0, 0, &share_count_sai2); @@ -812,10 +818,6 @@ static void __init imx7d_clocks_init(struct device_node *ccm_node) clks[IMX7D_SAI3_ROOT_CLK] = imx_clk_gate2_shared2("sai3_root_clk", "sai3_post_div", base + 0x48e0, 0, &share_count_sai3); clks[IMX7D_SAI3_IPG_CLK] = imx_clk_gate2_shared2("sai3_ipg_clk", "ipg_root_clk", base + 0x48e0, 0, &share_count_sai3); clks[IMX7D_SPDIF_ROOT_CLK] = imx_clk_gate4("spdif_root_clk", "spdif_post_div", base + 0x44d0, 0); - clks[IMX7D_ENET1_REF_ROOT_CLK] = imx_clk_gate4("enet1_ref_root_clk", "enet1_ref_post_div", base + 0x44e0, 0); - clks[IMX7D_ENET1_TIME_ROOT_CLK] = imx_clk_gate4("enet1_time_root_clk", "enet1_time_post_div", base + 0x44f0, 0); - clks[IMX7D_ENET2_REF_ROOT_CLK] = imx_clk_gate4("enet2_ref_root_clk", "enet2_ref_post_div", base + 0x4500, 0); - clks[IMX7D_ENET2_TIME_ROOT_CLK] = imx_clk_gate4("enet2_time_root_clk", "enet2_time_post_div", base + 0x4510, 0); clks[IMX7D_EIM_ROOT_CLK] = imx_clk_gate4("eim_root_clk", "eim_post_div", base + 0x4160, 0); clks[IMX7D_NAND_RAWNAND_CLK] = imx_clk_gate2_shared2("nand_rawnand_clk", "nand_root_clk", base + 0x4140, 0, &share_count_nand); clks[IMX7D_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_root_clk", base + 0x4140, 0, &share_count_nand); diff --git a/include/dt-bindings/clock/imx7d-clock.h b/include/dt-bindings/clock/imx7d-clock.h index b2325d3e2..0d67f53 100644 --- a/include/dt-bindings/clock/imx7d-clock.h +++ b/include/dt-bindings/clock/imx7d-clock.h @@ -168,7 +168,7 @@ #define IMX7D_SPDIF_ROOT_SRC 155 #define IMX7D_SPDIF_ROOT_CG 156 #define IMX7D_SPDIF_ROOT_DIV 157 -#define IMX7D_ENET1_REF_ROOT_CLK 158 +#define IMX7D_ENET1_IPG_ROOT_CLK 158 #define IMX7D_ENET1_REF_ROOT_SRC 159 #define IMX7D_ENET1_REF_ROOT_CG 160 #define IMX7D_ENET1_REF_ROOT_DIV 161 @@ -176,7 +176,7 @@ #define IMX7D_ENET1_TIME_ROOT_SRC 163 #define IMX7D_ENET1_TIME_ROOT_CG 164 #define IMX7D_ENET1_TIME_ROOT_DIV 165 -#define IMX7D_ENET2_REF_ROOT_CLK 166 +#define IMX7D_ENET2_IPG_ROOT_CLK 166 #define IMX7D_ENET2_REF_ROOT_SRC 167 #define IMX7D_ENET2_REF_ROOT_CG 168 #define IMX7D_ENET2_REF_ROOT_DIV 169 -- 2.7.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers 2018-05-18 1:01 ` [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers Anson Huang @ 2018-05-18 13:02 ` Stefan Agner 2018-05-21 2:35 ` Anson Huang 2018-05-22 17:56 ` Rob Herring 2018-06-01 19:18 ` Stephen Boyd 2 siblings, 1 reply; 12+ messages in thread From: Stefan Agner @ 2018-05-18 13:02 UTC (permalink / raw) To: Anson Huang Cc: shawnguo, kernel, fabio.estevam, robh+dt, mark.rutland, mturquette, sboyd, adriana.reus, rui.silva, Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk On 18.05.2018 03:01, Anson Huang wrote: > Correct enet clock gates as below: > > CCGR6: IMX7D_ENET_AXI_ROOT_CLK (enet1 and enet2 bus clocks) > CCGR112: IMX7D_ENET1_TIME_ROOT_CLK, IMX7D_ENET1_IPG_ROOT_CLK > CCGR113: IMX7D_ENET2_TIME_ROOT_CLK, IMX7D_ENET2_IPG_ROOT_CLK > > Just rename unused IMX7D_ENETx_REF_ROOT_CLK for > IMX7D_ENETx_IPG_ROOT_CLK instead of adding new clocks. Are you sure that IMX7D_ENETx_REF_ROOT_CLK are not used? I understand that the reference manual does not a gate at 0x44e0... But in a earlier revision of our Colibri iMX7 we actually used clock out, and referenced this clock to enable the reference clock (see also: https://patchwork.kernel.org/patch/9211371/). I guess if the gate really does not exist, then we should/would have to set IMX7D_ENET1_REF_ROOT_DIV to use the SoC provided ref clock. -- Stefan > > Based on Andy Duan's patch from the NXP kernel tree. > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > --- > drivers/clk/imx/clk-imx7d.c | 10 ++++++---- > include/dt-bindings/clock/imx7d-clock.h | 4 ++-- > 2 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c > index 23d5090a..d4936b9 100644 > --- a/drivers/clk/imx/clk-imx7d.c > +++ b/drivers/clk/imx/clk-imx7d.c > @@ -26,6 +26,8 @@ static u32 share_count_sai1; > static u32 share_count_sai2; > static u32 share_count_sai3; > static u32 share_count_nand; > +static u32 share_count_enet1; > +static u32 share_count_enet2; > > static const struct clk_div_table test_div_table[] = { > { .val = 3, .div = 1, }, > @@ -805,6 +807,10 @@ static void __init imx7d_clocks_init(struct > device_node *ccm_node) > clks[IMX7D_MIPI_DSI_ROOT_CLK] = imx_clk_gate4("mipi_dsi_root_clk", > "mipi_dsi_post_div", base + 0x4650, 0); > clks[IMX7D_MIPI_CSI_ROOT_CLK] = imx_clk_gate4("mipi_csi_root_clk", > "mipi_csi_post_div", base + 0x4640, 0); > clks[IMX7D_MIPI_DPHY_ROOT_CLK] = imx_clk_gate4("mipi_dphy_root_clk", > "mipi_dphy_post_div", base + 0x4660, 0); > + clks[IMX7D_ENET1_IPG_ROOT_CLK] = > imx_clk_gate2_shared2("enet1_ipg_root_clk", "enet_axi_post_div", base > + 0x4700, 0, &share_count_enet1); > + clks[IMX7D_ENET1_TIME_ROOT_CLK] = > imx_clk_gate2_shared2("enet1_time_root_clk", "enet1_time_post_div", > base + 0x4700, 0, &share_count_enet1); > + clks[IMX7D_ENET2_IPG_ROOT_CLK] = > imx_clk_gate2_shared2("enet2_ipg_root_clk", "enet_axi_post_div", base > + 0x4710, 0, &share_count_enet2); > + clks[IMX7D_ENET2_TIME_ROOT_CLK] = > imx_clk_gate2_shared2("enet2_time_root_clk", "enet2_time_post_div", > base + 0x4710, 0, &share_count_enet2); > clks[IMX7D_SAI1_ROOT_CLK] = imx_clk_gate2_shared2("sai1_root_clk", > "sai1_post_div", base + 0x48c0, 0, &share_count_sai1); > clks[IMX7D_SAI1_IPG_CLK] = imx_clk_gate2_shared2("sai1_ipg_clk", > "ipg_root_clk", base + 0x48c0, 0, &share_count_sai1); > clks[IMX7D_SAI2_ROOT_CLK] = imx_clk_gate2_shared2("sai2_root_clk", > "sai2_post_div", base + 0x48d0, 0, &share_count_sai2); > @@ -812,10 +818,6 @@ static void __init imx7d_clocks_init(struct > device_node *ccm_node) > clks[IMX7D_SAI3_ROOT_CLK] = imx_clk_gate2_shared2("sai3_root_clk", > "sai3_post_div", base + 0x48e0, 0, &share_count_sai3); > clks[IMX7D_SAI3_IPG_CLK] = imx_clk_gate2_shared2("sai3_ipg_clk", > "ipg_root_clk", base + 0x48e0, 0, &share_count_sai3); > clks[IMX7D_SPDIF_ROOT_CLK] = imx_clk_gate4("spdif_root_clk", > "spdif_post_div", base + 0x44d0, 0); > - clks[IMX7D_ENET1_REF_ROOT_CLK] = imx_clk_gate4("enet1_ref_root_clk", > "enet1_ref_post_div", base + 0x44e0, 0); > - clks[IMX7D_ENET1_TIME_ROOT_CLK] = > imx_clk_gate4("enet1_time_root_clk", "enet1_time_post_div", base + > 0x44f0, 0); > - clks[IMX7D_ENET2_REF_ROOT_CLK] = imx_clk_gate4("enet2_ref_root_clk", > "enet2_ref_post_div", base + 0x4500, 0); > - clks[IMX7D_ENET2_TIME_ROOT_CLK] = > imx_clk_gate4("enet2_time_root_clk", "enet2_time_post_div", base + > 0x4510, 0); > clks[IMX7D_EIM_ROOT_CLK] = imx_clk_gate4("eim_root_clk", > "eim_post_div", base + 0x4160, 0); > clks[IMX7D_NAND_RAWNAND_CLK] = > imx_clk_gate2_shared2("nand_rawnand_clk", "nand_root_clk", base + > 0x4140, 0, &share_count_nand); > clks[IMX7D_NAND_USDHC_BUS_RAWNAND_CLK] = > imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_root_clk", > base + 0x4140, 0, &share_count_nand); > diff --git a/include/dt-bindings/clock/imx7d-clock.h > b/include/dt-bindings/clock/imx7d-clock.h > index b2325d3e2..0d67f53 100644 > --- a/include/dt-bindings/clock/imx7d-clock.h > +++ b/include/dt-bindings/clock/imx7d-clock.h > @@ -168,7 +168,7 @@ > #define IMX7D_SPDIF_ROOT_SRC 155 > #define IMX7D_SPDIF_ROOT_CG 156 > #define IMX7D_SPDIF_ROOT_DIV 157 > -#define IMX7D_ENET1_REF_ROOT_CLK 158 > +#define IMX7D_ENET1_IPG_ROOT_CLK 158 > #define IMX7D_ENET1_REF_ROOT_SRC 159 > #define IMX7D_ENET1_REF_ROOT_CG 160 > #define IMX7D_ENET1_REF_ROOT_DIV 161 > @@ -176,7 +176,7 @@ > #define IMX7D_ENET1_TIME_ROOT_SRC 163 > #define IMX7D_ENET1_TIME_ROOT_CG 164 > #define IMX7D_ENET1_TIME_ROOT_DIV 165 > -#define IMX7D_ENET2_REF_ROOT_CLK 166 > +#define IMX7D_ENET2_IPG_ROOT_CLK 166 > #define IMX7D_ENET2_REF_ROOT_SRC 167 > #define IMX7D_ENET2_REF_ROOT_CG 168 > #define IMX7D_ENET2_REF_ROOT_DIV 169 ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers 2018-05-18 13:02 ` Stefan Agner @ 2018-05-21 2:35 ` Anson Huang 2018-05-21 8:14 ` Stefan Agner 0 siblings, 1 reply; 12+ messages in thread From: Anson Huang @ 2018-05-21 2:35 UTC (permalink / raw) To: Stefan Agner Cc: shawnguo@kernel.org, kernel@pengutronix.de, Fabio Estevam, robh+dt@kernel.org, mark.rutland@arm.com, mturquette@baylibre.com, sboyd@kernel.org, Adriana Reus, rui.silva@linaro.org, dl-linux-imx, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Hi, Stefan Anson Huang Best Regards! > -----Original Message----- > From: Stefan Agner [mailto:stefan@agner.ch] > Sent: Friday, May 18, 2018 9:02 PM > To: Anson Huang <anson.huang@nxp.com> > Cc: shawnguo@kernel.org; kernel@pengutronix.de; Fabio Estevam > <fabio.estevam@nxp.com>; robh+dt@kernel.org; mark.rutland@arm.com; > mturquette@baylibre.com; sboyd@kernel.org; Adriana Reus > <adriana.reus@nxp.com>; rui.silva@linaro.org; dl-linux-imx > <linux-imx@nxp.com>; linux-arm-kernel@lists.infradead.org; > devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; > linux-clk@vger.kernel.org > Subject: Re: [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers >=20 > On 18.05.2018 03:01, Anson Huang wrote: > > Correct enet clock gates as below: > > > > CCGR6: IMX7D_ENET_AXI_ROOT_CLK (enet1 and enet2 bus clocks) > > CCGR112: IMX7D_ENET1_TIME_ROOT_CLK, IMX7D_ENET1_IPG_ROOT_CLK > > CCGR113: IMX7D_ENET2_TIME_ROOT_CLK, IMX7D_ENET2_IPG_ROOT_CLK > > > > Just rename unused IMX7D_ENETx_REF_ROOT_CLK for > > IMX7D_ENETx_IPG_ROOT_CLK instead of adding new clocks. >=20 > Are you sure that IMX7D_ENETx_REF_ROOT_CLK are not used? >=20 > I understand that the reference manual does not a gate at 0x44e0... >=20 > But in a earlier revision of our Colibri iMX7 we actually used clock out,= and > referenced this clock to enable the reference clock (see also: > https://emea01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fpatc= h > work.kernel.org%2Fpatch%2F9211371%2F&data=3D02%7C01%7CAnson.Huang% > 40nxp.com%7Cea0856a68d8e4b921ba608d5bcbf9c02%7C686ea1d3bc2b4c6fa > 92cd99c5c301635%7C0%7C1%7C636622453508888330&sdata=3DrEhwj0innLDc > AEgxJyqd5vtG3SNVS05r2hEFvSc%2BQQs%3D&reserved=3D0). >=20 > I guess if the gate really does not exist, then we should/would have to s= et > IMX7D_ENET1_REF_ROOT_DIV to use the SoC provided ref clock. >=20 > -- > Stefan =20 I looked into the RTL and also checked with our design team, they confirm t= hat there is no CCGR78(0x44e0) and CCGR80(0x4500) on i.MX7D, the register offse= t are there, but no hardware wire connection for them. That is why they did N= OT list them in Reference Manual. So I think we can remove them.=20 For your case of using them as clock input, maybe clock tree auto use its p= arent IMX7D_ENETx_REF_ROOT_DIV which is existing, so it works. Anson. >=20 > > > > Based on Andy Duan's patch from the NXP kernel tree. > > > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > > --- > > drivers/clk/imx/clk-imx7d.c | 10 ++++++---- > > include/dt-bindings/clock/imx7d-clock.h | 4 ++-- > > 2 files changed, 8 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c > > index 23d5090a..d4936b9 100644 > > --- a/drivers/clk/imx/clk-imx7d.c > > +++ b/drivers/clk/imx/clk-imx7d.c > > @@ -26,6 +26,8 @@ static u32 share_count_sai1; static u32 > > share_count_sai2; static u32 share_count_sai3; static u32 > > share_count_nand; > > +static u32 share_count_enet1; > > +static u32 share_count_enet2; > > > > static const struct clk_div_table test_div_table[] =3D { > > { .val =3D 3, .div =3D 1, }, > > @@ -805,6 +807,10 @@ static void __init imx7d_clocks_init(struct > > device_node *ccm_node) > > clks[IMX7D_MIPI_DSI_ROOT_CLK] =3D imx_clk_gate4("mipi_dsi_root_clk", > > "mipi_dsi_post_div", base + 0x4650, 0); > > clks[IMX7D_MIPI_CSI_ROOT_CLK] =3D imx_clk_gate4("mipi_csi_root_clk", > > "mipi_csi_post_div", base + 0x4640, 0); > > clks[IMX7D_MIPI_DPHY_ROOT_CLK] =3D > imx_clk_gate4("mipi_dphy_root_clk", > > "mipi_dphy_post_div", base + 0x4660, 0); > > + clks[IMX7D_ENET1_IPG_ROOT_CLK] =3D > > imx_clk_gate2_shared2("enet1_ipg_root_clk", "enet_axi_post_div", base > > + 0x4700, 0, &share_count_enet1); > > + clks[IMX7D_ENET1_TIME_ROOT_CLK] =3D > > imx_clk_gate2_shared2("enet1_time_root_clk", "enet1_time_post_div", > > base + 0x4700, 0, &share_count_enet1); > > + clks[IMX7D_ENET2_IPG_ROOT_CLK] =3D > > imx_clk_gate2_shared2("enet2_ipg_root_clk", "enet_axi_post_div", base > > + 0x4710, 0, &share_count_enet2); > > + clks[IMX7D_ENET2_TIME_ROOT_CLK] =3D > > imx_clk_gate2_shared2("enet2_time_root_clk", "enet2_time_post_div", > > base + 0x4710, 0, &share_count_enet2); > > clks[IMX7D_SAI1_ROOT_CLK] =3D imx_clk_gate2_shared2("sai1_root_clk", > > "sai1_post_div", base + 0x48c0, 0, &share_count_sai1); > > clks[IMX7D_SAI1_IPG_CLK] =3D imx_clk_gate2_shared2("sai1_ipg_clk", > > "ipg_root_clk", base + 0x48c0, 0, &share_count_sai1); > > clks[IMX7D_SAI2_ROOT_CLK] =3D imx_clk_gate2_shared2("sai2_root_clk", > > "sai2_post_div", base + 0x48d0, 0, &share_count_sai2); @@ -812,10 > > +818,6 @@ static void __init imx7d_clocks_init(struct device_node > > *ccm_node) > > clks[IMX7D_SAI3_ROOT_CLK] =3D imx_clk_gate2_shared2("sai3_root_clk", > > "sai3_post_div", base + 0x48e0, 0, &share_count_sai3); > > clks[IMX7D_SAI3_IPG_CLK] =3D imx_clk_gate2_shared2("sai3_ipg_clk", > > "ipg_root_clk", base + 0x48e0, 0, &share_count_sai3); > > clks[IMX7D_SPDIF_ROOT_CLK] =3D imx_clk_gate4("spdif_root_clk", > > "spdif_post_div", base + 0x44d0, 0); > > - clks[IMX7D_ENET1_REF_ROOT_CLK] =3D > imx_clk_gate4("enet1_ref_root_clk", > > "enet1_ref_post_div", base + 0x44e0, 0); > > - clks[IMX7D_ENET1_TIME_ROOT_CLK] =3D > > imx_clk_gate4("enet1_time_root_clk", "enet1_time_post_div", base + > > 0x44f0, 0); > > - clks[IMX7D_ENET2_REF_ROOT_CLK] =3D > imx_clk_gate4("enet2_ref_root_clk", > > "enet2_ref_post_div", base + 0x4500, 0); > > - clks[IMX7D_ENET2_TIME_ROOT_CLK] =3D > > imx_clk_gate4("enet2_time_root_clk", "enet2_time_post_div", base + > > 0x4510, 0); > > clks[IMX7D_EIM_ROOT_CLK] =3D imx_clk_gate4("eim_root_clk", > > "eim_post_div", base + 0x4160, 0); > > clks[IMX7D_NAND_RAWNAND_CLK] =3D > > imx_clk_gate2_shared2("nand_rawnand_clk", "nand_root_clk", base + > > 0x4140, 0, &share_count_nand); > > clks[IMX7D_NAND_USDHC_BUS_RAWNAND_CLK] =3D > > imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", > "nand_usdhc_root_clk", > > base + 0x4140, 0, &share_count_nand); diff --git > > a/include/dt-bindings/clock/imx7d-clock.h > > b/include/dt-bindings/clock/imx7d-clock.h > > index b2325d3e2..0d67f53 100644 > > --- a/include/dt-bindings/clock/imx7d-clock.h > > +++ b/include/dt-bindings/clock/imx7d-clock.h > > @@ -168,7 +168,7 @@ > > #define IMX7D_SPDIF_ROOT_SRC 155 > > #define IMX7D_SPDIF_ROOT_CG 156 > > #define IMX7D_SPDIF_ROOT_DIV 157 > > -#define IMX7D_ENET1_REF_ROOT_CLK 158 > > +#define IMX7D_ENET1_IPG_ROOT_CLK 158 > > #define IMX7D_ENET1_REF_ROOT_SRC 159 > > #define IMX7D_ENET1_REF_ROOT_CG 160 > > #define IMX7D_ENET1_REF_ROOT_DIV 161 > > @@ -176,7 +176,7 @@ > > #define IMX7D_ENET1_TIME_ROOT_SRC 163 > > #define IMX7D_ENET1_TIME_ROOT_CG 164 > > #define IMX7D_ENET1_TIME_ROOT_DIV 165 > > -#define IMX7D_ENET2_REF_ROOT_CLK 166 > > +#define IMX7D_ENET2_IPG_ROOT_CLK 166 > > #define IMX7D_ENET2_REF_ROOT_SRC 167 > > #define IMX7D_ENET2_REF_ROOT_CG 168 > > #define IMX7D_ENET2_REF_ROOT_DIV 169 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers 2018-05-21 2:35 ` Anson Huang @ 2018-05-21 8:14 ` Stefan Agner 0 siblings, 0 replies; 12+ messages in thread From: Stefan Agner @ 2018-05-21 8:14 UTC (permalink / raw) To: Anson Huang Cc: shawnguo, kernel, Fabio Estevam, robh+dt, mark.rutland, mturquette, sboyd, Adriana Reus, rui.silva, dl-linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk On 21.05.2018 04:35, Anson Huang wrote: > Hi, Stefan > > Anson Huang > Best Regards! > > >> -----Original Message----- >> From: Stefan Agner [mailto:stefan@agner.ch] >> Sent: Friday, May 18, 2018 9:02 PM >> To: Anson Huang <anson.huang@nxp.com> >> Cc: shawnguo@kernel.org; kernel@pengutronix.de; Fabio Estevam >> <fabio.estevam@nxp.com>; robh+dt@kernel.org; mark.rutland@arm.com; >> mturquette@baylibre.com; sboyd@kernel.org; Adriana Reus >> <adriana.reus@nxp.com>; rui.silva@linaro.org; dl-linux-imx >> <linux-imx@nxp.com>; linux-arm-kernel@lists.infradead.org; >> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; >> linux-clk@vger.kernel.org >> Subject: Re: [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers >> >> On 18.05.2018 03:01, Anson Huang wrote: >> > Correct enet clock gates as below: >> > >> > CCGR6: IMX7D_ENET_AXI_ROOT_CLK (enet1 and enet2 bus clocks) >> > CCGR112: IMX7D_ENET1_TIME_ROOT_CLK, IMX7D_ENET1_IPG_ROOT_CLK >> > CCGR113: IMX7D_ENET2_TIME_ROOT_CLK, IMX7D_ENET2_IPG_ROOT_CLK >> > >> > Just rename unused IMX7D_ENETx_REF_ROOT_CLK for >> > IMX7D_ENETx_IPG_ROOT_CLK instead of adding new clocks. >> >> Are you sure that IMX7D_ENETx_REF_ROOT_CLK are not used? >> >> I understand that the reference manual does not a gate at 0x44e0... >> >> But in a earlier revision of our Colibri iMX7 we actually used clock out, and >> referenced this clock to enable the reference clock (see also: >> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch >> work.kernel.org%2Fpatch%2F9211371%2F&data=02%7C01%7CAnson.Huang% >> 40nxp.com%7Cea0856a68d8e4b921ba608d5bcbf9c02%7C686ea1d3bc2b4c6fa >> 92cd99c5c301635%7C0%7C1%7C636622453508888330&sdata=rEhwj0innLDc >> AEgxJyqd5vtG3SNVS05r2hEFvSc%2BQQs%3D&reserved=0). >> >> I guess if the gate really does not exist, then we should/would have to set >> IMX7D_ENET1_REF_ROOT_DIV to use the SoC provided ref clock. >> >> -- >> Stefan > > I looked into the RTL and also checked with our design team, they confirm that > there is no CCGR78(0x44e0) and CCGR80(0x4500) on i.MX7D, the register offset > are there, but no hardware wire connection for them. That is why they did NOT > list them in Reference Manual. So I think we can remove them. > > For your case of using them as clock input, maybe clock tree auto use its parent > IMX7D_ENETx_REF_ROOT_DIV which is existing, so it works. That make sense. The change looks good to me. Reviewed-by: Stefan Agner <stefan@agner.ch> -- Stefan > > Anson. > >> >> > >> > Based on Andy Duan's patch from the NXP kernel tree. >> > >> > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> >> > --- >> > drivers/clk/imx/clk-imx7d.c | 10 ++++++---- >> > include/dt-bindings/clock/imx7d-clock.h | 4 ++-- >> > 2 files changed, 8 insertions(+), 6 deletions(-) >> > >> > diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c >> > index 23d5090a..d4936b9 100644 >> > --- a/drivers/clk/imx/clk-imx7d.c >> > +++ b/drivers/clk/imx/clk-imx7d.c >> > @@ -26,6 +26,8 @@ static u32 share_count_sai1; static u32 >> > share_count_sai2; static u32 share_count_sai3; static u32 >> > share_count_nand; >> > +static u32 share_count_enet1; >> > +static u32 share_count_enet2; >> > >> > static const struct clk_div_table test_div_table[] = { >> > { .val = 3, .div = 1, }, >> > @@ -805,6 +807,10 @@ static void __init imx7d_clocks_init(struct >> > device_node *ccm_node) >> > clks[IMX7D_MIPI_DSI_ROOT_CLK] = imx_clk_gate4("mipi_dsi_root_clk", >> > "mipi_dsi_post_div", base + 0x4650, 0); >> > clks[IMX7D_MIPI_CSI_ROOT_CLK] = imx_clk_gate4("mipi_csi_root_clk", >> > "mipi_csi_post_div", base + 0x4640, 0); >> > clks[IMX7D_MIPI_DPHY_ROOT_CLK] = >> imx_clk_gate4("mipi_dphy_root_clk", >> > "mipi_dphy_post_div", base + 0x4660, 0); >> > + clks[IMX7D_ENET1_IPG_ROOT_CLK] = >> > imx_clk_gate2_shared2("enet1_ipg_root_clk", "enet_axi_post_div", base >> > + 0x4700, 0, &share_count_enet1); >> > + clks[IMX7D_ENET1_TIME_ROOT_CLK] = >> > imx_clk_gate2_shared2("enet1_time_root_clk", "enet1_time_post_div", >> > base + 0x4700, 0, &share_count_enet1); >> > + clks[IMX7D_ENET2_IPG_ROOT_CLK] = >> > imx_clk_gate2_shared2("enet2_ipg_root_clk", "enet_axi_post_div", base >> > + 0x4710, 0, &share_count_enet2); >> > + clks[IMX7D_ENET2_TIME_ROOT_CLK] = >> > imx_clk_gate2_shared2("enet2_time_root_clk", "enet2_time_post_div", >> > base + 0x4710, 0, &share_count_enet2); >> > clks[IMX7D_SAI1_ROOT_CLK] = imx_clk_gate2_shared2("sai1_root_clk", >> > "sai1_post_div", base + 0x48c0, 0, &share_count_sai1); >> > clks[IMX7D_SAI1_IPG_CLK] = imx_clk_gate2_shared2("sai1_ipg_clk", >> > "ipg_root_clk", base + 0x48c0, 0, &share_count_sai1); >> > clks[IMX7D_SAI2_ROOT_CLK] = imx_clk_gate2_shared2("sai2_root_clk", >> > "sai2_post_div", base + 0x48d0, 0, &share_count_sai2); @@ -812,10 >> > +818,6 @@ static void __init imx7d_clocks_init(struct device_node >> > *ccm_node) >> > clks[IMX7D_SAI3_ROOT_CLK] = imx_clk_gate2_shared2("sai3_root_clk", >> > "sai3_post_div", base + 0x48e0, 0, &share_count_sai3); >> > clks[IMX7D_SAI3_IPG_CLK] = imx_clk_gate2_shared2("sai3_ipg_clk", >> > "ipg_root_clk", base + 0x48e0, 0, &share_count_sai3); >> > clks[IMX7D_SPDIF_ROOT_CLK] = imx_clk_gate4("spdif_root_clk", >> > "spdif_post_div", base + 0x44d0, 0); >> > - clks[IMX7D_ENET1_REF_ROOT_CLK] = >> imx_clk_gate4("enet1_ref_root_clk", >> > "enet1_ref_post_div", base + 0x44e0, 0); >> > - clks[IMX7D_ENET1_TIME_ROOT_CLK] = >> > imx_clk_gate4("enet1_time_root_clk", "enet1_time_post_div", base + >> > 0x44f0, 0); >> > - clks[IMX7D_ENET2_REF_ROOT_CLK] = >> imx_clk_gate4("enet2_ref_root_clk", >> > "enet2_ref_post_div", base + 0x4500, 0); >> > - clks[IMX7D_ENET2_TIME_ROOT_CLK] = >> > imx_clk_gate4("enet2_time_root_clk", "enet2_time_post_div", base + >> > 0x4510, 0); >> > clks[IMX7D_EIM_ROOT_CLK] = imx_clk_gate4("eim_root_clk", >> > "eim_post_div", base + 0x4160, 0); >> > clks[IMX7D_NAND_RAWNAND_CLK] = >> > imx_clk_gate2_shared2("nand_rawnand_clk", "nand_root_clk", base + >> > 0x4140, 0, &share_count_nand); >> > clks[IMX7D_NAND_USDHC_BUS_RAWNAND_CLK] = >> > imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", >> "nand_usdhc_root_clk", >> > base + 0x4140, 0, &share_count_nand); diff --git >> > a/include/dt-bindings/clock/imx7d-clock.h >> > b/include/dt-bindings/clock/imx7d-clock.h >> > index b2325d3e2..0d67f53 100644 >> > --- a/include/dt-bindings/clock/imx7d-clock.h >> > +++ b/include/dt-bindings/clock/imx7d-clock.h >> > @@ -168,7 +168,7 @@ >> > #define IMX7D_SPDIF_ROOT_SRC 155 >> > #define IMX7D_SPDIF_ROOT_CG 156 >> > #define IMX7D_SPDIF_ROOT_DIV 157 >> > -#define IMX7D_ENET1_REF_ROOT_CLK 158 >> > +#define IMX7D_ENET1_IPG_ROOT_CLK 158 >> > #define IMX7D_ENET1_REF_ROOT_SRC 159 >> > #define IMX7D_ENET1_REF_ROOT_CG 160 >> > #define IMX7D_ENET1_REF_ROOT_DIV 161 >> > @@ -176,7 +176,7 @@ >> > #define IMX7D_ENET1_TIME_ROOT_SRC 163 >> > #define IMX7D_ENET1_TIME_ROOT_CG 164 >> > #define IMX7D_ENET1_TIME_ROOT_DIV 165 >> > -#define IMX7D_ENET2_REF_ROOT_CLK 166 >> > +#define IMX7D_ENET2_IPG_ROOT_CLK 166 >> > #define IMX7D_ENET2_REF_ROOT_SRC 167 >> > #define IMX7D_ENET2_REF_ROOT_CG 168 >> > #define IMX7D_ENET2_REF_ROOT_DIV 169 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers 2018-05-18 1:01 ` [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers Anson Huang 2018-05-18 13:02 ` Stefan Agner @ 2018-05-22 17:56 ` Rob Herring 2018-06-01 19:18 ` Stephen Boyd 2 siblings, 0 replies; 12+ messages in thread From: Rob Herring @ 2018-05-22 17:56 UTC (permalink / raw) To: Anson Huang Cc: shawnguo, kernel, fabio.estevam, mark.rutland, mturquette, sboyd, stefan, adriana.reus, rui.silva, Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk On Fri, May 18, 2018 at 09:01:05AM +0800, Anson Huang wrote: > Correct enet clock gates as below: > > CCGR6: IMX7D_ENET_AXI_ROOT_CLK (enet1 and enet2 bus clocks) > CCGR112: IMX7D_ENET1_TIME_ROOT_CLK, IMX7D_ENET1_IPG_ROOT_CLK > CCGR113: IMX7D_ENET2_TIME_ROOT_CLK, IMX7D_ENET2_IPG_ROOT_CLK > > Just rename unused IMX7D_ENETx_REF_ROOT_CLK for > IMX7D_ENETx_IPG_ROOT_CLK instead of adding new clocks. > > Based on Andy Duan's patch from the NXP kernel tree. > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > --- > drivers/clk/imx/clk-imx7d.c | 10 ++++++---- > include/dt-bindings/clock/imx7d-clock.h | 4 ++-- Acked-by: Rob Herring <robh@kernel.org> > 2 files changed, 8 insertions(+), 6 deletions(-) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers 2018-05-18 1:01 ` [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers Anson Huang 2018-05-18 13:02 ` Stefan Agner 2018-05-22 17:56 ` Rob Herring @ 2018-06-01 19:18 ` Stephen Boyd 2 siblings, 0 replies; 12+ messages in thread From: Stephen Boyd @ 2018-06-01 19:18 UTC (permalink / raw) To: Anson Huang, adriana.reus, fabio.estevam, kernel, mark.rutland, mturquette, robh+dt, rui.silva, shawnguo, stefan Cc: Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk Quoting Anson Huang (2018-05-17 18:01:05) > Correct enet clock gates as below: > = > CCGR6: IMX7D_ENET_AXI_ROOT_CLK (enet1 and enet2 bus clocks) > CCGR112: IMX7D_ENET1_TIME_ROOT_CLK, IMX7D_ENET1_IPG_ROOT_CLK > CCGR113: IMX7D_ENET2_TIME_ROOT_CLK, IMX7D_ENET2_IPG_ROOT_CLK > = > Just rename unused IMX7D_ENETx_REF_ROOT_CLK for > IMX7D_ENETx_IPG_ROOT_CLK instead of adding new clocks. > = > Based on Andy Duan's patch from the NXP kernel tree. > = > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > --- Applied to clk-next ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH V2 3/3] ARM: dts: imx7: correct enet ipg clock 2018-05-18 1:01 [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates Anson Huang 2018-05-18 1:01 ` [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers Anson Huang @ 2018-05-18 1:01 ` Anson Huang 2018-05-23 7:58 ` Stefan Agner 2018-06-01 19:18 ` Stephen Boyd 2018-05-18 13:03 ` [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates Stefan Agner 2018-06-01 19:18 ` Stephen Boyd 3 siblings, 2 replies; 12+ messages in thread From: Anson Huang @ 2018-05-18 1:01 UTC (permalink / raw) To: shawnguo, kernel, fabio.estevam, robh+dt, mark.rutland, mturquette, sboyd, stefan, adriana.reus, rui.silva Cc: Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk ENET "ipg" clock should be IMX7D_ENETx_IPG_ROOT_CLK rather than IMX7D_ENET_AXI_ROOT_CLK which is for ENET bus clock. Based on Andy Duan's patch from the NXP kernel tree. Signed-off-by: Anson Huang <Anson.Huang@nxp.com> --- arch/arm/boot/dts/imx7d.dtsi | 2 +- arch/arm/boot/dts/imx7s.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi index 200714e..d74dd7f 100644 --- a/arch/arm/boot/dts/imx7d.dtsi +++ b/arch/arm/boot/dts/imx7d.dtsi @@ -120,7 +120,7 @@ <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>, + clocks = <&clks IMX7D_ENET2_IPG_ROOT_CLK>, <&clks IMX7D_ENET_AXI_ROOT_CLK>, <&clks IMX7D_ENET2_TIME_ROOT_CLK>, <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi index 4d42335..b90769d 100644 --- a/arch/arm/boot/dts/imx7s.dtsi +++ b/arch/arm/boot/dts/imx7s.dtsi @@ -1091,7 +1091,7 @@ <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>, + clocks = <&clks IMX7D_ENET1_IPG_ROOT_CLK>, <&clks IMX7D_ENET_AXI_ROOT_CLK>, <&clks IMX7D_ENET1_TIME_ROOT_CLK>, <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, -- 2.7.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH V2 3/3] ARM: dts: imx7: correct enet ipg clock 2018-05-18 1:01 ` [PATCH V2 3/3] ARM: dts: imx7: correct enet ipg clock Anson Huang @ 2018-05-23 7:58 ` Stefan Agner 2018-06-01 19:18 ` Stephen Boyd 1 sibling, 0 replies; 12+ messages in thread From: Stefan Agner @ 2018-05-23 7:58 UTC (permalink / raw) To: Anson Huang Cc: shawnguo, kernel, fabio.estevam, robh+dt, mark.rutland, mturquette, sboyd, adriana.reus, rui.silva, Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk On 18.05.2018 03:01, Anson Huang wrote: > ENET "ipg" clock should be IMX7D_ENETx_IPG_ROOT_CLK > rather than IMX7D_ENET_AXI_ROOT_CLK which is for ENET bus > clock. > > Based on Andy Duan's patch from the NXP kernel tree. > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Reviewed-by: Stefan Agner <stefan@agner.ch> -- Stefan > --- > arch/arm/boot/dts/imx7d.dtsi | 2 +- > arch/arm/boot/dts/imx7s.dtsi | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi > index 200714e..d74dd7f 100644 > --- a/arch/arm/boot/dts/imx7d.dtsi > +++ b/arch/arm/boot/dts/imx7d.dtsi > @@ -120,7 +120,7 @@ > <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; > - clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>, > + clocks = <&clks IMX7D_ENET2_IPG_ROOT_CLK>, > <&clks IMX7D_ENET_AXI_ROOT_CLK>, > <&clks IMX7D_ENET2_TIME_ROOT_CLK>, > <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, > diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi > index 4d42335..b90769d 100644 > --- a/arch/arm/boot/dts/imx7s.dtsi > +++ b/arch/arm/boot/dts/imx7s.dtsi > @@ -1091,7 +1091,7 @@ > <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; > - clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>, > + clocks = <&clks IMX7D_ENET1_IPG_ROOT_CLK>, > <&clks IMX7D_ENET_AXI_ROOT_CLK>, > <&clks IMX7D_ENET1_TIME_ROOT_CLK>, > <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH V2 3/3] ARM: dts: imx7: correct enet ipg clock 2018-05-18 1:01 ` [PATCH V2 3/3] ARM: dts: imx7: correct enet ipg clock Anson Huang 2018-05-23 7:58 ` Stefan Agner @ 2018-06-01 19:18 ` Stephen Boyd 1 sibling, 0 replies; 12+ messages in thread From: Stephen Boyd @ 2018-06-01 19:18 UTC (permalink / raw) To: Anson Huang, adriana.reus, fabio.estevam, kernel, mark.rutland, mturquette, robh+dt, rui.silva, shawnguo, stefan Cc: Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk Quoting Anson Huang (2018-05-17 18:01:06) > ENET "ipg" clock should be IMX7D_ENETx_IPG_ROOT_CLK > rather than IMX7D_ENET_AXI_ROOT_CLK which is for ENET bus > clock. > = > Based on Andy Duan's patch from the NXP kernel tree. > = > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > --- Applied to clk-next ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates 2018-05-18 1:01 [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates Anson Huang 2018-05-18 1:01 ` [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers Anson Huang 2018-05-18 1:01 ` [PATCH V2 3/3] ARM: dts: imx7: correct enet ipg clock Anson Huang @ 2018-05-18 13:03 ` Stefan Agner 2018-06-01 19:18 ` Stephen Boyd 3 siblings, 0 replies; 12+ messages in thread From: Stefan Agner @ 2018-05-18 13:03 UTC (permalink / raw) To: Anson Huang Cc: shawnguo, kernel, fabio.estevam, robh+dt, mark.rutland, mturquette, sboyd, adriana.reus, rui.silva, Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk On 18.05.2018 03:01, Anson Huang wrote: > IMX7D_ENET_PHY_REF_ROOT_DIV supplies clock for PHY directly, > there is no clock gate after it, rename it to > IMX7D_ENET_PHY_REF_ROOT_CLK to avoid device tree change. > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Reviewed-by: Stefan Agner <stefan@agner.ch> -- Stefan > --- > drivers/clk/imx/clk-imx7d.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c > index 975a20d..23d5090a 100644 > --- a/drivers/clk/imx/clk-imx7d.c > +++ b/drivers/clk/imx/clk-imx7d.c > @@ -738,7 +738,7 @@ static void __init imx7d_clocks_init(struct > device_node *ccm_node) > clks[IMX7D_ENET1_TIME_ROOT_DIV] = > imx_clk_divider2("enet1_time_post_div", "enet1_time_pre_div", base + > 0xa780, 0, 6); > clks[IMX7D_ENET2_REF_ROOT_DIV] = > imx_clk_divider2("enet2_ref_post_div", "enet2_ref_pre_div", base + > 0xa800, 0, 6); > clks[IMX7D_ENET2_TIME_ROOT_DIV] = > imx_clk_divider2("enet2_time_post_div", "enet2_time_pre_div", base + > 0xa880, 0, 6); > - clks[IMX7D_ENET_PHY_REF_ROOT_DIV] = > imx_clk_divider2("enet_phy_ref_post_div", "enet_phy_ref_pre_div", base > + 0xa900, 0, 6); > + clks[IMX7D_ENET_PHY_REF_ROOT_CLK] = > imx_clk_divider2("enet_phy_ref_root_clk", "enet_phy_ref_pre_div", base > + 0xa900, 0, 6); > clks[IMX7D_EIM_ROOT_DIV] = imx_clk_divider2("eim_post_div", > "eim_pre_div", base + 0xa980, 0, 6); > clks[IMX7D_NAND_ROOT_CLK] = imx_clk_divider2("nand_root_clk", > "nand_pre_div", base + 0xaa00, 0, 6); > clks[IMX7D_QSPI_ROOT_DIV] = imx_clk_divider2("qspi_post_div", > "qspi_pre_div", base + 0xaa80, 0, 6); > @@ -816,7 +816,6 @@ static void __init imx7d_clocks_init(struct > device_node *ccm_node) > clks[IMX7D_ENET1_TIME_ROOT_CLK] = > imx_clk_gate4("enet1_time_root_clk", "enet1_time_post_div", base + > 0x44f0, 0); > clks[IMX7D_ENET2_REF_ROOT_CLK] = imx_clk_gate4("enet2_ref_root_clk", > "enet2_ref_post_div", base + 0x4500, 0); > clks[IMX7D_ENET2_TIME_ROOT_CLK] = > imx_clk_gate4("enet2_time_root_clk", "enet2_time_post_div", base + > 0x4510, 0); > - clks[IMX7D_ENET_PHY_REF_ROOT_CLK] = > imx_clk_gate4("enet_phy_ref_root_clk", "enet_phy_ref_post_div", base + > 0x4520, 0); > clks[IMX7D_EIM_ROOT_CLK] = imx_clk_gate4("eim_root_clk", > "eim_post_div", base + 0x4160, 0); > clks[IMX7D_NAND_RAWNAND_CLK] = > imx_clk_gate2_shared2("nand_rawnand_clk", "nand_root_clk", base + > 0x4140, 0, &share_count_nand); > clks[IMX7D_NAND_USDHC_BUS_RAWNAND_CLK] = > imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_root_clk", > base + 0x4140, 0, &share_count_nand); ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates 2018-05-18 1:01 [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates Anson Huang ` (2 preceding siblings ...) 2018-05-18 13:03 ` [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates Stefan Agner @ 2018-06-01 19:18 ` Stephen Boyd 3 siblings, 0 replies; 12+ messages in thread From: Stephen Boyd @ 2018-06-01 19:18 UTC (permalink / raw) To: Anson Huang, adriana.reus, fabio.estevam, kernel, mark.rutland, mturquette, robh+dt, rui.silva, shawnguo, stefan Cc: Linux-imx, linux-arm-kernel, devicetree, linux-kernel, linux-clk Quoting Anson Huang (2018-05-17 18:01:04) > IMX7D_ENET_PHY_REF_ROOT_DIV supplies clock for PHY directly, > there is no clock gate after it, rename it to > IMX7D_ENET_PHY_REF_ROOT_CLK to avoid device tree change. > = > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > --- Applied to clk-next ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-06-01 19:18 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-05-18 1:01 [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates Anson Huang 2018-05-18 1:01 ` [PATCH V2 2/3] clk: imx7d: correct enet clock CCGR registers Anson Huang 2018-05-18 13:02 ` Stefan Agner 2018-05-21 2:35 ` Anson Huang 2018-05-21 8:14 ` Stefan Agner 2018-05-22 17:56 ` Rob Herring 2018-06-01 19:18 ` Stephen Boyd 2018-05-18 1:01 ` [PATCH V2 3/3] ARM: dts: imx7: correct enet ipg clock Anson Huang 2018-05-23 7:58 ` Stefan Agner 2018-06-01 19:18 ` Stephen Boyd 2018-05-18 13:03 ` [PATCH V2 1/3] clk: imx7d: correct enet phy ref clock gates Stefan Agner 2018-06-01 19:18 ` Stephen Boyd
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox