Add switch node supported by dsa ar9331 driver.

Signed-off-by: Oleksij Rempel <o.rem...@pengutronix.de>
---
 arch/mips/boot/dts/qca/ar9331.dtsi           | 127 ++++++++++++++++++-
 arch/mips/boot/dts/qca/ar9331_dpt_module.dts |  13 ++
 2 files changed, 139 insertions(+), 1 deletion(-)

diff --git a/arch/mips/boot/dts/qca/ar9331.dtsi 
b/arch/mips/boot/dts/qca/ar9331.dtsi
index e0f409dd6acf..84a177c0d053 100644
--- a/arch/mips/boot/dts/qca/ar9331.dtsi
+++ b/arch/mips/boot/dts/qca/ar9331.dtsi
@@ -158,6 +158,9 @@
                        clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>;
                        clock-names = "eth", "mdio";
 
+                       phy-mode = "mii";
+                       phy-handle = <&phy_port4>;
+
                        status = "disabled";
                };
 
@@ -165,13 +168,135 @@
                        compatible = "qca,ar9330-eth";
                        reg = <0x1a000000 0x200>;
                        interrupts = <5>;
-
                        resets = <&rst 13>, <&rst 23>;
                        reset-names = "mac", "mdio";
                        clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>;
                        clock-names = "eth", "mdio";
 
+                       phy-mode = "gmii";
+
                        status = "disabled";
+
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+
+                       mdio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               switch10: switch@10 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compatible = "qca,ar9331-switch";
+                                       reg = <0x10>;
+                                       resets = <&rst 8>;
+                                       reset-names = "switch";
+
+                                       interrupt-parent = <&miscintc>;
+                                       interrupts = <12>;
+
+                                       interrupt-controller;
+                                       #interrupt-cells = <1>;
+
+                                       ports {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               switch_port0: port@0 {
+                                                       reg = <0x0>;
+                                                       label = "cpu";
+                                                       ethernet = <&eth1>;
+
+                                                       phy-mode = "gmii";
+
+                                                       fixed-link {
+                                                               speed = <1000>;
+                                                               full-duplex;
+                                                       };
+                                               };
+
+                                               switch_port1: port@1 {
+                                                       reg = <0x1>;
+                                                       phy-handle = 
<&phy_port0>;
+                                                       phy-mode = "internal";
+
+                                                       status = "disabled";
+                                               };
+
+                                               switch_port2: port@2 {
+                                                       reg = <0x2>;
+                                                       phy-handle = 
<&phy_port1>;
+                                                       phy-mode = "internal";
+
+                                                       status = "disabled";
+                                               };
+
+                                               switch_port3: port@3 {
+                                                       reg = <0x3>;
+                                                       phy-handle = 
<&phy_port2>;
+                                                       phy-mode = "internal";
+
+                                                       status = "disabled";
+                                               };
+
+                                               switch_port4: port@4 {
+                                                       reg = <0x4>;
+                                                       phy-handle = 
<&phy_port3>;
+                                                       phy-mode = "internal";
+
+                                                       status = "disabled";
+                                               };
+
+                                               switch_port5: port@5 {
+                                                       reg = <0x5>;
+                                                       phy-handle = 
<&phy_port4>;
+                                                       phy-mode = "internal";
+
+                                                       status = "disabled";
+                                               };
+                                       };
+
+                                       mdio {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               interrupt-parent = <&switch10>;
+
+                                               phy_port0: phy@0 {
+                                                       reg = <0x0>;
+                                                       interrupts = <0>;
+                                                       status = "disabled";
+                                               };
+
+                                               phy_port1: phy@1 {
+                                                       reg = <0x1>;
+                                                       interrupts = <0>;
+                                                       status = "disabled";
+                                               };
+
+                                               phy_port2: phy@2 {
+                                                       reg = <0x2>;
+                                                       interrupts = <0>;
+                                                       status = "disabled";
+                                               };
+
+                                               phy_port3: phy@3 {
+                                                       reg = <0x3>;
+                                                       interrupts = <0>;
+                                                       status = "disabled";
+                                               };
+
+                                               phy_port4: phy@4 {
+                                                       reg = <0x4>;
+                                                       interrupts = <0>;
+                                                       status = "disabled";
+                                               };
+                                       };
+                               };
+                       };
                };
 
                usb: usb@1b000100 {
diff --git a/arch/mips/boot/dts/qca/ar9331_dpt_module.dts 
b/arch/mips/boot/dts/qca/ar9331_dpt_module.dts
index 77bab823eb3b..0f2b20044834 100644
--- a/arch/mips/boot/dts/qca/ar9331_dpt_module.dts
+++ b/arch/mips/boot/dts/qca/ar9331_dpt_module.dts
@@ -84,3 +84,16 @@
 &eth1 {
        status = "okay";
 };
+
+&switch_port1 {
+       label = "lan0";
+       status = "okay";
+};
+
+&phy_port0 {
+       status = "okay";
+};
+
+&phy_port4 {
+       status = "okay";
+};
-- 
2.23.0

Reply via email to