MIPS: ath79: ar9331: add ar9331-switch node
authorOleksij Rempel <o.rempel@pengutronix.de>
Wed, 18 Dec 2019 08:02:13 +0000 (09:02 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 21 Dec 2019 01:05:47 +0000 (17:05 -0800)
Add switch node supported by dsa ar9331 driver.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/mips/boot/dts/qca/ar9331.dtsi
arch/mips/boot/dts/qca/ar9331_dpt_module.dts

index 5cfc9d347826a0b3a2d77977d9cffa3726e38972..8f5aed760abb261679e065156f7bd2f543fa18bd 100644 (file)
                        clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>;
                        clock-names = "eth", "mdio";
 
+                       phy-mode = "mii";
+                       phy-handle = <&phy_port4>;
+
                        status = "disabled";
                };
 
                        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";
+                                               };
+                                       };
+
+                                       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 {
index 77bab823eb3b0836113e663a0dcb733b98183055..0f2b200448340e74cb47f38775010f03a12a030b 100644 (file)
 &eth1 {
        status = "okay";
 };
+
+&switch_port1 {
+       label = "lan0";
+       status = "okay";
+};
+
+&phy_port0 {
+       status = "okay";
+};
+
+&phy_port4 {
+       status = "okay";
+};