[PATCH 2/3] riscv: dts: sophgo: Add mdio multiplexer device for cv18xx

Inochi Amaoto posted 3 patches 3 months ago
There is a newer version of this series
[PATCH 2/3] riscv: dts: sophgo: Add mdio multiplexer device for cv18xx
Posted by Inochi Amaoto 3 months ago
Add DT device node of mdio multiplexer device for cv18xx SoC.

Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
---
 arch/riscv/boot/dts/sophgo/cv180x.dtsi | 29 ++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/arch/riscv/boot/dts/sophgo/cv180x.dtsi b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
index 7eecc67f896e..3a82cc40ea1a 100644
--- a/arch/riscv/boot/dts/sophgo/cv180x.dtsi
+++ b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
@@ -31,6 +31,33 @@ rst: reset-controller@3003000 {
 			#reset-cells = <1>;
 		};
 
+		mdio: mdio@3009800 {
+			compatible = "mdio-mux-mmioreg", "mdio-mux";
+			reg = <0x3009800 0x4>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			mdio-parent-bus = <&gmac0_mdio>;
+			mux-mask = <0x80>;
+			status = "disabled";
+
+			internal_mdio: mdio@0 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0>;
+
+				internal_ephy: phy@0 {
+					compatible = "ethernet-phy-ieee802.3-c22";
+					reg = <1>;
+				};
+			};
+
+			external_mdio: mdio@80 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0x80>;
+			};
+		};
+
 		gpio0: gpio@3020000 {
 			compatible = "snps,dw-apb-gpio";
 			reg = <0x3020000 0x1000>;
@@ -196,6 +223,8 @@ gmac0: ethernet@4070000 {
 			clock-names = "stmmaceth", "ptp_ref";
 			interrupts = <SOC_PERIPHERAL_IRQ(15) IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "macirq";
+			phy-handle = <&internal_ephy>;
+			phy-mode = "internal";
 			resets = <&rst RST_ETH0>;
 			reset-names = "stmmaceth";
 			rx-fifo-depth = <8192>;
-- 
2.50.0
Re: [PATCH 2/3] riscv: dts: sophgo: Add mdio multiplexer device for cv18xx
Posted by Rob Herring 2 months, 3 weeks ago
On Wed, Jul 2, 2025 at 9:16 PM Inochi Amaoto <inochiama@gmail.com> wrote:
>
> Add DT device node of mdio multiplexer device for cv18xx SoC.

This adds a dtbs_check warning:

mdio@3009800 (mdio-mux-mmioreg): mdio@80:reg:0:0: 128 is greater than
the maximum of 31

>
> Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
> ---
>  arch/riscv/boot/dts/sophgo/cv180x.dtsi | 29 ++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/sophgo/cv180x.dtsi b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> index 7eecc67f896e..3a82cc40ea1a 100644
> --- a/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> +++ b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> @@ -31,6 +31,33 @@ rst: reset-controller@3003000 {
>                         #reset-cells = <1>;
>                 };
>
> +               mdio: mdio@3009800 {

The nodename is wrong here because this is not an MDIO bus. It is a
mux. So "mdio-mux@..." for the node name.

> +                       compatible = "mdio-mux-mmioreg", "mdio-mux";
> +                       reg = <0x3009800 0x4>;
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +                       mdio-parent-bus = <&gmac0_mdio>;
> +                       mux-mask = <0x80>;
> +                       status = "disabled";
> +
> +                       internal_mdio: mdio@0 {
> +                               #address-cells = <1>;
> +                               #size-cells = <0>;
> +                               reg = <0>;
> +
> +                               internal_ephy: phy@0 {
> +                                       compatible = "ethernet-phy-ieee802.3-c22";
> +                                       reg = <1>;
> +                               };
> +                       };
> +
> +                       external_mdio: mdio@80 {
> +                               #address-cells = <1>;
> +                               #size-cells = <0>;
> +                               reg = <0x80>;
> +                       };
> +               };
> +
>                 gpio0: gpio@3020000 {
>                         compatible = "snps,dw-apb-gpio";
>                         reg = <0x3020000 0x1000>;
> @@ -196,6 +223,8 @@ gmac0: ethernet@4070000 {
>                         clock-names = "stmmaceth", "ptp_ref";
>                         interrupts = <SOC_PERIPHERAL_IRQ(15) IRQ_TYPE_LEVEL_HIGH>;
>                         interrupt-names = "macirq";
> +                       phy-handle = <&internal_ephy>;
> +                       phy-mode = "internal";
>                         resets = <&rst RST_ETH0>;
>                         reset-names = "stmmaceth";
>                         rx-fifo-depth = <8192>;
> --
> 2.50.0
>
Re: [PATCH 2/3] riscv: dts: sophgo: Add mdio multiplexer device for cv18xx
Posted by Inochi Amaoto 2 months, 3 weeks ago
On Tue, Jul 15, 2025 at 12:43:35PM -0500, Rob Herring wrote:
> On Wed, Jul 2, 2025 at 9:16 PM Inochi Amaoto <inochiama@gmail.com> wrote:
> >
> > Add DT device node of mdio multiplexer device for cv18xx SoC.
> 
> This adds a dtbs_check warning:
> 
> mdio@3009800 (mdio-mux-mmioreg): mdio@80:reg:0:0: 128 is greater than
> the maximum of 31
> 
> >
> > Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
> > ---
> >  arch/riscv/boot/dts/sophgo/cv180x.dtsi | 29 ++++++++++++++++++++++++++
> >  1 file changed, 29 insertions(+)
> >
> > diff --git a/arch/riscv/boot/dts/sophgo/cv180x.dtsi b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> > index 7eecc67f896e..3a82cc40ea1a 100644
> > --- a/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> > +++ b/arch/riscv/boot/dts/sophgo/cv180x.dtsi
> > @@ -31,6 +31,33 @@ rst: reset-controller@3003000 {
> >                         #reset-cells = <1>;
> >                 };
> >
> > +               mdio: mdio@3009800 {
> 
> The nodename is wrong here because this is not an MDIO bus. It is a
> mux. So "mdio-mux@..." for the node name.
> 

Thanks, I will send a fix for this.

Regards,
Inochi