* [PATCH v2 1/4] dt-bindings: clock: add i.MX95 NETCMIX block control
2024-07-10 8:43 [PATCH v2 0/4] add NETCMIX block control support on i.MX95 Wei Fang
@ 2024-07-10 8:43 ` Wei Fang
2024-07-10 8:43 ` [PATCH v2 2/4] dt-bindings: clock: add RMII clock selection Wei Fang
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: Wei Fang @ 2024-07-10 8:43 UTC (permalink / raw)
To: mturquette, sboyd, robh, conor+dt, shawnguo, s.hauer, festevam,
abelvesa, peng.fan
Cc: linux-clk, devicetree, imx, linux-arm-kernel, linux-kernel
Add 'nxp,imx95-netcmix-blk-ctrl' compatible string for i.MX95 platform.
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
---
V2:
No changes.
---
Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
index 2dffc02dcd8b..b0072bae12d9 100644
--- a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
+++ b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
@@ -17,6 +17,7 @@ properties:
- nxp,imx95-display-csr
- nxp,imx95-camera-csr
- nxp,imx95-vpu-csr
+ - nxp,imx95-netcmix-blk-ctrl
- const: syscon
reg:
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 2/4] dt-bindings: clock: add RMII clock selection
2024-07-10 8:43 [PATCH v2 0/4] add NETCMIX block control support on i.MX95 Wei Fang
2024-07-10 8:43 ` [PATCH v2 1/4] dt-bindings: clock: add i.MX95 NETCMIX block control Wei Fang
@ 2024-07-10 8:43 ` Wei Fang
2024-07-11 21:14 ` Rob Herring (Arm)
2024-07-10 8:43 ` [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block control Wei Fang
2024-07-10 8:43 ` [PATCH v2 4/4] arm64: dts: imx95: Add NETCMIX block control support Wei Fang
3 siblings, 1 reply; 10+ messages in thread
From: Wei Fang @ 2024-07-10 8:43 UTC (permalink / raw)
To: mturquette, sboyd, robh, conor+dt, shawnguo, s.hauer, festevam,
abelvesa, peng.fan
Cc: linux-clk, devicetree, imx, linux-arm-kernel, linux-kernel
Add RMII clock selection for ENETC0 and ENETC1.
Signed-off-by: Wei Fang <wei.fang@nxp.com>
---
V2:
new patch.
---
include/dt-bindings/clock/nxp,imx95-clock.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/dt-bindings/clock/nxp,imx95-clock.h b/include/dt-bindings/clock/nxp,imx95-clock.h
index 782662c3e740..b7a713a9ac8c 100644
--- a/include/dt-bindings/clock/nxp,imx95-clock.h
+++ b/include/dt-bindings/clock/nxp,imx95-clock.h
@@ -25,4 +25,7 @@
#define IMX95_CLK_DISPMIX_ENG0_SEL 0
#define IMX95_CLK_DISPMIX_ENG1_SEL 1
+#define IMX95_CLK_NETCMIX_ENETC0_RMII 0
+#define IMX95_CLK_NETCMIX_ENETC1_RMII 1
+
#endif /* __DT_BINDINGS_CLOCK_IMX95_H */
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/4] dt-bindings: clock: add RMII clock selection
2024-07-10 8:43 ` [PATCH v2 2/4] dt-bindings: clock: add RMII clock selection Wei Fang
@ 2024-07-11 21:14 ` Rob Herring (Arm)
0 siblings, 0 replies; 10+ messages in thread
From: Rob Herring (Arm) @ 2024-07-11 21:14 UTC (permalink / raw)
To: Wei Fang
Cc: peng.fan, devicetree, linux-arm-kernel, linux-clk, sboyd,
abelvesa, imx, s.hauer, linux-kernel, shawnguo, festevam,
conor+dt, mturquette
On Wed, 10 Jul 2024 16:43:43 +0800, Wei Fang wrote:
> Add RMII clock selection for ENETC0 and ENETC1.
>
> Signed-off-by: Wei Fang <wei.fang@nxp.com>
> ---
> V2:
> new patch.
> ---
> include/dt-bindings/clock/nxp,imx95-clock.h | 3 +++
> 1 file changed, 3 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block control
2024-07-10 8:43 [PATCH v2 0/4] add NETCMIX block control support on i.MX95 Wei Fang
2024-07-10 8:43 ` [PATCH v2 1/4] dt-bindings: clock: add i.MX95 NETCMIX block control Wei Fang
2024-07-10 8:43 ` [PATCH v2 2/4] dt-bindings: clock: add RMII clock selection Wei Fang
@ 2024-07-10 8:43 ` Wei Fang
2024-07-18 7:35 ` Peng Fan
2024-07-19 5:07 ` Peng Fan
2024-07-10 8:43 ` [PATCH v2 4/4] arm64: dts: imx95: Add NETCMIX block control support Wei Fang
3 siblings, 2 replies; 10+ messages in thread
From: Wei Fang @ 2024-07-10 8:43 UTC (permalink / raw)
To: mturquette, sboyd, robh, conor+dt, shawnguo, s.hauer, festevam,
abelvesa, peng.fan
Cc: linux-clk, devicetree, imx, linux-arm-kernel, linux-kernel
The NETCMIX block control consists of registers for configuration of
peripherals in the NETC domain, so enable the clock of NETCMIX to
support the configuration.
Signed-off-by: Wei Fang <wei.fang@nxp.com>
---
V2:
Add RMII reference clock mux for ENETC0 and ENETC1.
---
drivers/clk/imx/clk-imx95-blk-ctl.c | 30 +++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/drivers/clk/imx/clk-imx95-blk-ctl.c b/drivers/clk/imx/clk-imx95-blk-ctl.c
index 74f595f9e5e3..19a62da74be4 100644
--- a/drivers/clk/imx/clk-imx95-blk-ctl.c
+++ b/drivers/clk/imx/clk-imx95-blk-ctl.c
@@ -248,6 +248,35 @@ static const struct imx95_blk_ctl_dev_data dispmix_csr_dev_data = {
.clk_reg_offset = 0,
};
+static const struct imx95_blk_ctl_clk_dev_data netxmix_clk_dev_data[] = {
+ [IMX95_CLK_NETCMIX_ENETC0_RMII] = {
+ .name = "enetc0_rmii_sel",
+ .parent_names = (const char *[]){"ext_enetref", "enetref"},
+ .num_parents = 2,
+ .reg = 4,
+ .bit_idx = 5,
+ .bit_width = 1,
+ .type = CLK_MUX,
+ .flags = CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT,
+ },
+ [IMX95_CLK_NETCMIX_ENETC1_RMII] = {
+ .name = "enetc1_rmii_sel",
+ .parent_names = (const char *[]){"ext_enetref", "enetref"},
+ .num_parents = 2,
+ .reg = 4,
+ .bit_idx = 10,
+ .bit_width = 1,
+ .type = CLK_MUX,
+ .flags = CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT,
+ },
+};
+
+static const struct imx95_blk_ctl_dev_data netcmix_dev_data = {
+ .num_clks = ARRAY_SIZE(netxmix_clk_dev_data),
+ .clk_dev_data = netxmix_clk_dev_data,
+ .clk_reg_offset = 0,
+};
+
static int imx95_bc_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -419,6 +448,7 @@ static const struct of_device_id imx95_bc_of_match[] = {
{ .compatible = "nxp,imx95-lvds-csr", .data = &lvds_csr_dev_data },
{ .compatible = "nxp,imx95-display-csr", .data = &dispmix_csr_dev_data },
{ .compatible = "nxp,imx95-vpu-csr", .data = &vpublk_dev_data },
+ { .compatible = "nxp,imx95-netcmix-blk-ctrl", .data = &netcmix_dev_data},
{ /* Sentinel */ },
};
MODULE_DEVICE_TABLE(of, imx95_bc_of_match);
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* RE: [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block control
2024-07-10 8:43 ` [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block control Wei Fang
@ 2024-07-18 7:35 ` Peng Fan
2024-07-18 8:00 ` Wei Fang
2024-07-19 5:07 ` Peng Fan
1 sibling, 1 reply; 10+ messages in thread
From: Peng Fan @ 2024-07-18 7:35 UTC (permalink / raw)
To: Wei Fang, mturquette@baylibre.com, sboyd@kernel.org,
robh@kernel.org, conor+dt@kernel.org, shawnguo@kernel.org,
s.hauer@pengutronix.de, festevam@gmail.com, abelvesa@kernel.org
Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
> Subject: [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block
> control
>
> The NETCMIX block control consists of registers for configuration of
> peripherals in the NETC domain, so enable the clock of NETCMIX to
> support the configuration.
>
> Signed-off-by: Wei Fang <wei.fang@nxp.com>
> ---
> V2:
> Add RMII reference clock mux for ENETC0 and ENETC1.
> ---
> drivers/clk/imx/clk-imx95-blk-ctl.c | 30
> +++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/drivers/clk/imx/clk-imx95-blk-ctl.c b/drivers/clk/imx/clk-
> imx95-blk-ctl.c
> index 74f595f9e5e3..19a62da74be4 100644
> --- a/drivers/clk/imx/clk-imx95-blk-ctl.c
> +++ b/drivers/clk/imx/clk-imx95-blk-ctl.c
> @@ -248,6 +248,35 @@ static const struct imx95_blk_ctl_dev_data
> dispmix_csr_dev_data = {
> .clk_reg_offset = 0,
> };
>
> +static const struct imx95_blk_ctl_clk_dev_data
> netxmix_clk_dev_data[] = {
> + [IMX95_CLK_NETCMIX_ENETC0_RMII] = {
> + .name = "enetc0_rmii_sel",
> + .parent_names = (const char *[]){"ext_enetref",
> "enetref"},
> + .num_parents = 2,
> + .reg = 4,
> + .bit_idx = 5,
> + .bit_width = 1,
> + .type = CLK_MUX,
> + .flags = CLK_SET_RATE_NO_REPARENT |
> CLK_SET_RATE_PARENT,
> + },
> + [IMX95_CLK_NETCMIX_ENETC1_RMII] = {
> + .name = "enetc1_rmii_sel",
> + .parent_names = (const char *[]){"ext_enetref",
> "enetref"},
> + .num_parents = 2,
> + .reg = 4,
Both the entry use reg address 4, use a lock to protect?
Regards,
Peng.
> + .bit_idx = 10,
> + .bit_width = 1,
> + .type = CLK_MUX,
> + .flags = CLK_SET_RATE_NO_REPARENT |
> CLK_SET_RATE_PARENT,
> + },
> +};
> +
> +static const struct imx95_blk_ctl_dev_data netcmix_dev_data = {
> + .num_clks = ARRAY_SIZE(netxmix_clk_dev_data),
> + .clk_dev_data = netxmix_clk_dev_data,
> + .clk_reg_offset = 0,
> +};
> +
> static int imx95_bc_probe(struct platform_device *pdev) {
> struct device *dev = &pdev->dev;
> @@ -419,6 +448,7 @@ static const struct of_device_id
> imx95_bc_of_match[] = {
> { .compatible = "nxp,imx95-lvds-csr", .data =
> &lvds_csr_dev_data },
> { .compatible = "nxp,imx95-display-csr", .data =
> &dispmix_csr_dev_data },
> { .compatible = "nxp,imx95-vpu-csr", .data =
> &vpublk_dev_data },
> + { .compatible = "nxp,imx95-netcmix-blk-ctrl", .data =
> +&netcmix_dev_data},
> { /* Sentinel */ },
> };
> MODULE_DEVICE_TABLE(of, imx95_bc_of_match);
> --
> 2.34.1
^ permalink raw reply [flat|nested] 10+ messages in thread* RE: [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block control
2024-07-18 7:35 ` Peng Fan
@ 2024-07-18 8:00 ` Wei Fang
0 siblings, 0 replies; 10+ messages in thread
From: Wei Fang @ 2024-07-18 8:00 UTC (permalink / raw)
To: Peng Fan, mturquette@baylibre.com, sboyd@kernel.org,
robh@kernel.org, conor+dt@kernel.org, shawnguo@kernel.org,
s.hauer@pengutronix.de, festevam@gmail.com, abelvesa@kernel.org
Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
> -----Original Message-----
> From: Peng Fan <peng.fan@nxp.com>
> Sent: 2024年7月18日 15:35
> To: Wei Fang <wei.fang@nxp.com>; mturquette@baylibre.com;
> sboyd@kernel.org; robh@kernel.org; conor+dt@kernel.org;
> shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> abelvesa@kernel.org
> Cc: linux-clk@vger.kernel.org; devicetree@vger.kernel.org;
> imx@lists.linux.dev; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org
> Subject: RE: [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block
> control
>
> > Subject: [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block
> > control
> >
> > The NETCMIX block control consists of registers for configuration of
> > peripherals in the NETC domain, so enable the clock of NETCMIX to
> > support the configuration.
> >
> > Signed-off-by: Wei Fang <wei.fang@nxp.com>
> > ---
> > V2:
> > Add RMII reference clock mux for ENETC0 and ENETC1.
> > ---
> > drivers/clk/imx/clk-imx95-blk-ctl.c | 30
> > +++++++++++++++++++++++++++++
> > 1 file changed, 30 insertions(+)
> >
> > diff --git a/drivers/clk/imx/clk-imx95-blk-ctl.c
> > b/drivers/clk/imx/clk- imx95-blk-ctl.c index
> > 74f595f9e5e3..19a62da74be4 100644
> > --- a/drivers/clk/imx/clk-imx95-blk-ctl.c
> > +++ b/drivers/clk/imx/clk-imx95-blk-ctl.c
> > @@ -248,6 +248,35 @@ static const struct imx95_blk_ctl_dev_data
> > dispmix_csr_dev_data = {
> > .clk_reg_offset = 0,
> > };
> >
> > +static const struct imx95_blk_ctl_clk_dev_data
> > netxmix_clk_dev_data[] = {
> > + [IMX95_CLK_NETCMIX_ENETC0_RMII] = {
> > + .name = "enetc0_rmii_sel",
> > + .parent_names = (const char *[]){"ext_enetref",
> > "enetref"},
> > + .num_parents = 2,
> > + .reg = 4,
> > + .bit_idx = 5,
> > + .bit_width = 1,
> > + .type = CLK_MUX,
> > + .flags = CLK_SET_RATE_NO_REPARENT |
> > CLK_SET_RATE_PARENT,
> > + },
> > + [IMX95_CLK_NETCMIX_ENETC1_RMII] = {
> > + .name = "enetc1_rmii_sel",
> > + .parent_names = (const char *[]){"ext_enetref",
> > "enetref"},
> > + .num_parents = 2,
> > + .reg = 4,
>
> Both the entry use reg address 4, use a lock to protect?
>
I think there is already a lock (bc->lock) to protect it, right?
if (data->type == CLK_MUX) {
hws[i] = clk_hw_register_mux(dev, data->name, data->parent_names,
data->num_parents, data->flags, reg,
data->bit_idx, data->bit_width,
data->flags2, &bc->lock);
}
Or did I misunderstand the usage of bc->lock?
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block control
2024-07-10 8:43 ` [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block control Wei Fang
2024-07-18 7:35 ` Peng Fan
@ 2024-07-19 5:07 ` Peng Fan
1 sibling, 0 replies; 10+ messages in thread
From: Peng Fan @ 2024-07-19 5:07 UTC (permalink / raw)
To: Wei Fang, mturquette@baylibre.com, sboyd@kernel.org,
robh@kernel.org, conor+dt@kernel.org, shawnguo@kernel.org,
s.hauer@pengutronix.de, festevam@gmail.com, abelvesa@kernel.org
Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
> Subject: [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block
> control
>
> The NETCMIX block control consists of registers for configuration of
> peripherals in the NETC domain, so enable the clock of NETCMIX to
> support the configuration.
>
> Signed-off-by: Wei Fang <wei.fang@nxp.com>
> ---
Reviewed-by: Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 4/4] arm64: dts: imx95: Add NETCMIX block control support
2024-07-10 8:43 [PATCH v2 0/4] add NETCMIX block control support on i.MX95 Wei Fang
` (2 preceding siblings ...)
2024-07-10 8:43 ` [PATCH v2 3/4] clk: imx95: enable the clock of NETCMIX block control Wei Fang
@ 2024-07-10 8:43 ` Wei Fang
2024-07-22 1:58 ` Wei Fang
3 siblings, 1 reply; 10+ messages in thread
From: Wei Fang @ 2024-07-10 8:43 UTC (permalink / raw)
To: mturquette, sboyd, robh, conor+dt, shawnguo, s.hauer, festevam,
abelvesa, peng.fan
Cc: linux-clk, devicetree, imx, linux-arm-kernel, linux-kernel
Add NETCMIX block control support.
Signed-off-by: Wei Fang <wei.fang@nxp.com>
---
V2:
no changes.
---
arch/arm64/boot/dts/freescale/imx95.dtsi | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
index 1bbf9a0468f6..6e86aa98b431 100644
--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
@@ -1188,5 +1188,17 @@ pcie1_ep: pcie-ep@4c380000 {
power-domains = <&scmi_devpd IMX95_PD_HSIO_TOP>;
status = "disabled";
};
+
+ netcmix_blk_ctrl: syscon@4c810000 {
+ compatible = "nxp,imx95-netcmix-blk-ctrl", "syscon";
+ reg = <0x0 0x4c810000 0x0 0x10000>;
+ #clock-cells = <1>;
+ clocks = <&scmi_clk IMX95_CLK_BUSNETCMIX>;
+ assigned-clocks = <&scmi_clk IMX95_CLK_BUSNETCMIX>;
+ assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+ assigned-clock-rates = <133333333>;
+ power-domains = <&scmi_devpd IMX95_PD_NETC>;
+ status = "disabled";
+ };
};
};
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* RE: [PATCH v2 4/4] arm64: dts: imx95: Add NETCMIX block control support
2024-07-10 8:43 ` [PATCH v2 4/4] arm64: dts: imx95: Add NETCMIX block control support Wei Fang
@ 2024-07-22 1:58 ` Wei Fang
0 siblings, 0 replies; 10+ messages in thread
From: Wei Fang @ 2024-07-22 1:58 UTC (permalink / raw)
To: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org,
conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
festevam@gmail.com, abelvesa@kernel.org, Peng Fan
Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
> -----Original Message-----
> From: Wei Fang
> Sent: 2024年7月10日 16:57
> To: mturquette@baylibre.com; sboyd@kernel.org; robh@kernel.org;
> conor+dt@kernel.org; shawnguo@kernel.org; s.hauer@pengutronix.de;
> festevam@gmail.com; abelvesa@kernel.org; Peng Fan <peng.fan@nxp.com>
> Cc: linux-clk@vger.kernel.org; devicetree@vger.kernel.org;
> imx@lists.linux.dev; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org
> Subject: [PATCH v2 4/4] arm64: dts: imx95: Add NETCMIX block control
> support
>
> Add NETCMIX block control support.
>
> Signed-off-by: Wei Fang <wei.fang@nxp.com>
> ---
> V2:
> no changes.
> ---
> arch/arm64/boot/dts/freescale/imx95.dtsi | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi
> b/arch/arm64/boot/dts/freescale/imx95.dtsi
> index 1bbf9a0468f6..6e86aa98b431 100644
> --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
> @@ -1188,5 +1188,17 @@ pcie1_ep: pcie-ep@4c380000 {
> power-domains = <&scmi_devpd IMX95_PD_HSIO_TOP>;
> status = "disabled";
> };
> +
> + netcmix_blk_ctrl: syscon@4c810000 {
> + compatible = "nxp,imx95-netcmix-blk-ctrl", "syscon";
> + reg = <0x0 0x4c810000 0x0 0x10000>;
> + #clock-cells = <1>;
> + clocks = <&scmi_clk IMX95_CLK_BUSNETCMIX>;
> + assigned-clocks = <&scmi_clk IMX95_CLK_BUSNETCMIX>;
> + assigned-clock-parents = <&scmi_clk
> IMX95_CLK_SYSPLL1_PFD1_DIV2>;
> + assigned-clock-rates = <133333333>;
> + power-domains = <&scmi_devpd IMX95_PD_NETC>;
> + status = "disabled";
> + };
> };
> };
> --
> 2.34.1
Kindly ping...
^ permalink raw reply [flat|nested] 10+ messages in thread