bmips: add experimental ethernet support
[openwrt/openwrt.git] / target / linux / bmips / dts / bcm6318.dtsi
index d19f8ec9641c76b44b7e22768608502a1f496599..e7dc38e93782551b2010512682c0600e8ee6cd89 100644 (file)
@@ -21,7 +21,7 @@
        };
 
        chosen {
-               bootargs = "console=ttyS0,115200n8 earlycon";
+               bootargs = "earlycon";
                stdout-path = "serial0:115200n8";
        };
 
                };
 
                pll_cntl: syscon@10000074 {
-                       compatible = "syscon";
+                       compatible = "syscon", "simple-mfd";
                        reg = <0x10000074 0x4>;
                        native-endian;
-               };
 
-               syscon-reboot {
-                       compatible = "syscon-reboot";
-                       regmap = <&pll_cntl>;
-                       offset = <0>;
-                       mask = <0x1>;
+                       syscon-reboot {
+                               compatible = "syscon-reboot";
+                               offset = <0>;
+                               mask = <0x1>;
+                       };
                };
 
                gpio: syscon@10000080 {
                };
 
                hsspi: spi@10003000 {
-                       compatible = "brcm,bcm6328-hsspi";
-                       reg = <0x10003000 0x600>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       compatible = "brcm,bcm6328-hsspi";
+                       reg = <0x10003000 0x600>;
 
                        interrupt-parent = <&periph_intc>;
                        interrupts = <BCM6318_IRQ_HSSPI>;
 
                        status = "disabled";
                };
+
+               switch0: switch@10080000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "brcm,bcm6328-switch";
+                       reg = <0x10080000 0x8000>;
+                       big-endian;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@8 {
+                                       reg = <8>;
+                                       label = "cpu";
+
+                                       phy-mode = "internal";
+                                       ethernet = <&ethernet>;
+
+                                       fixed-link {
+                                               speed = <1000>;
+                                               full-duplex;
+                                       };
+                               };
+                       };
+               };
+
+               mdio: mdio@100800b0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "brcm,bcm6368-mdio-mux";
+                       reg = <0x100800b0 0x8>;
+
+                       mdio_int: mdio@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0>;
+
+                               phy1: ethernet-phy@1 {
+                                       compatible = "ethernet-phy-ieee802.3-c22";
+                                       reg = <1>;
+                               };
+
+                               phy2: ethernet-phy@2 {
+                                       compatible = "ethernet-phy-ieee802.3-c22";
+                                       reg = <2>;
+                               };
+
+                               phy3: ethernet-phy@3 {
+                                       compatible = "ethernet-phy-ieee802.3-c22";
+                                       reg = <3>;
+                               };
+
+                               phy4: ethernet-phy@4 {
+                                       compatible = "ethernet-phy-ieee802.3-c22";
+                                       reg = <4>;
+                               };
+                       };
+
+                       mdio_ext: mdio@1 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <1>;
+                       };
+               };
+
+               ethernet: ethernet@10088000 {
+                       compatible = "brcm,bcm6318-enetsw";
+                       reg = <0x10088000 0x80>,
+                             <0x10088200 0x80>,
+                             <0x10088400 0x80>;
+                       reg-names = "dma",
+                                   "dma-channels",
+                                   "dma-sram";
+
+                       interrupt-parent = <&periph_intc>;
+                       interrupts = <BCM6318_IRQ_ENETSW_RX_DMA0>,
+                                    <BCM6318_IRQ_ENETSW_TX_DMA0>;
+                       interrupt-names = "rx",
+                                         "tx";
+
+                       clocks = <&periph_clk BCM6318_CLK_ROBOSW250>,
+                                <&periph_clk BCM6318_CLK_ROBOSW025>,
+                                <&ubus_clk BCM6318_UCLK_ROBOSW>;
+
+                       resets = <&periph_rst BCM6318_RST_ENETSW>,
+                                <&periph_rst BCM6318_RST_EPHY>;
+
+                       power-domains = <&periph_pwr BCM6318_POWER_DOMAIN_EPHY0>,
+                                       <&periph_pwr BCM6318_POWER_DOMAIN_EPHY1>,
+                                       <&periph_pwr BCM6318_POWER_DOMAIN_EPHY2>,
+                                       <&periph_pwr BCM6318_POWER_DOMAIN_EPHY3>;
+
+                       dma-rx = <0>;
+                       dma-tx = <1>;
+
+                       status = "disabled";
+               };
        };
 };