lantiq: xrx200: use vlan for ethernet wan port
[openwrt/staging/chunkeey.git] / target / linux / lantiq / dts / BTHOMEHUBV5A.dts
index 414157331f16d382976af077f8b2a4b6301ff472..59b6cee9b80874a7656e1def1034d0a3f355cf39 100644 (file)
@@ -1,17 +1,23 @@
 /dts-v1/;
 
-/include/ "vr9.dtsi"
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
 
 / {
        model = "BTHOMEHUBV5A - BT Home Hub 5A";
 
        chosen {
-               bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+               bootargs = "console=ttyLTQ0,115200";
+       };
 
-               leds {
-                       internet = &broadband_blue;
-                       wifi = &wireless_blue;
-               };
+       aliases {
+               led-boot = &power_green;
+               led-failsafe = &power_red;
+               led-running = &power_blue;
+
+               led-internet = &broadband_blue;
+               led-wifi = &wireless_blue;
        };
 
        memory@0 {
                                compatible = "gen_nand", "lantiq,nand-xway";
                                lantiq,cs = <1>;
                                bank-width = <2>;
-                               reg = <0 0x0 0x2000000>;
+                               reg = <0x1 0x0 0x2000000>;
                                #address-cells = <1>;
                                #size-cells = <1>;
+                               nand-on-flash-bbt;
+                               nand-ecc-strength = <3>;
+                               nand-ecc-step-size = <256>;
 
-                               partition@0 {
-                                       label = "u-boot";
-                                       reg = <0x0 0x40000>;
-                                       read-only;
-                               };
-                               partition@40000 {
-                                       label = "uboot-env";
-                                       reg = <0x40000 0x40000>;
-                               };
-                               caldata: partition@80000 {
-                                       label = "caldata";
-                                       reg = <0x80000 0x20000>;
-                                       read-only;
-                               };
-                               partition@a0000 {
-                                       label = "kernel";
-                                       reg = <0xa0000 0x200000>;
-                               };
-                               partition@2a0000 {
-                                       label = "ubi";
-                                       reg = <0x2a0000 0x7d60000>;
+                               partitions {
+                                       compatible = "fixed-partitions";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       partition@0 {
+                                               label = "u-boot";
+                                               reg = <0x0 0xa0000>;
+                                               read-only;
+                                       };
+                                       partition@a0000 {
+                                               label = "uboot-env";
+                                               reg = <0xa0000 0x20000>;
+                                               read-only;
+                                       };
+                                       partition@c0000 {
+                                               label = "unused";
+                                               reg = <0xc0000 0x40000>;
+                                       };
+                                       partition@100000 {
+                                               label = "ubi";
+                                               reg = <0x100000 0x7e80000>;
+                                       };
+                                       /*
+                                        * last 512 KiB are for the bad block table, not writable
+                                        */
                                };
                        };
                };
@@ -57,9 +71,6 @@
                        pinctrl-names = "default";
                        pinctrl-0 = <&state_default>;
 
-                       interrupt-parent = <&icu0>;
-                       interrupts = <166 135 66 40 41 42 38>;
-
                        state_default: pinmux {
                                mdio {
                                        lantiq,groups = "mdio";
                        };
                };
 
-               eth@E108000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "lantiq,xrx200-net";
-                       reg = < 0xE108000 0x3000        /* switch */
-                               0xE10B100 0x70          /* mdio */
-                               0xE10B1D8 0x30          /* mii */
-                               0xE10B308 0x30 >;       /* pmac */
-                       interrupt-parent = <&icu0>;
-                       interrupts = <73 72>;
-
-                       lan: interface@0 {
-                               compatible = "lantiq,xrx200-pdi";
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0>;
-                               mtd-mac-address = <&caldata 0x110c>;
-                               lantiq,switch;
-
-                               ethernet@0 {
-                                       compatible = "lantiq,xrx200-pdi-port";
-                                       reg = <0>;
-                                       phy-mode = "rgmii";
-                                       phy-handle = <&phy0>;
-                               };
-                               ethernet@1 {
-                                       compatible = "lantiq,xrx200-pdi-port";
-                                       reg = <1>;
-                                       phy-mode = "rgmii";
-                                       phy-handle = <&phy1>;
-                               };
-                               ethernet@2 {
-                                       compatible = "lantiq,xrx200-pdi-port";
-                                       reg = <2>;
-                                       phy-mode = "gmii";
-                                       phy-handle = <&phy11>;
-                               };
-                               ethernet@4 {
-                                       compatible = "lantiq,xrx200-pdi-port";
-                                       reg = <4>;
-                                       phy-mode = "gmii";
-                                       phy-handle = <&phy13>;
-                               };
-                       };
-
-                       wan: interface@1 {
-                               compatible = "lantiq,xrx200-pdi";
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <1>;
-                               mtd-mac-address = <&caldata 0x110c>;
-                               mtd-mac-address-increment = <4>;
-                               lantiq,wan;
-
-                               ethernet@5 {
-                                       compatible = "lantiq,xrx200-pdi-port";
-                                       reg = <5>;
-                                       phy-mode = "rgmii";
-                                       phy-handle = <&phy5>;
-                               };
-                       };
-
-                       mdio@0 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "lantiq,xrx200-mdio";
-
-                               phy0: ethernet-phy@0 {
-                                       reg = <0x0>;
-                                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
-                               };
-                               phy1: ethernet-phy@1 {
-                                       reg = <0x1>;
-                                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
-                               };
-                               phy5: ethernet-phy@5 {
-                                       reg = <0x5>;
-                                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
-                               };
-                               phy11: ethernet-phy@11 {
-                                       reg = <0x11>;
-                                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
-                               };
-                               phy13: ethernet-phy@13 {
-                                       reg = <0x13>;
-                                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
-                               };
-                       };
-               };
-
                ifxhcd@E101000 {
                        status = "okay";
-                       gpios = <&gpio 33 0>;
-               };
-
-               pci@E105400 {
-                       status = "okay";
-                       lantiq,bus-clock = <33333333>;
-                       interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-                       interrupt-map = <0x7000 0 0 1 &icu0 30 1>;
-                       gpio-reset = <&gpio 21 0>;
+                       gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
                };
        };
 
                phys = [ 00 01 ];
        };
 
-       ath9k_eep {
-               compatible = "ath9k,eeprom";
-               ath,eep-flash = <&caldata 0x1000>;
-               ath,mac-offset = <0x110c>;
-               ath,mac-increment = <2>;
-               ath,pci-slot = <0xe>; /* 14 */
-       };
-
        gpio-keys-polled {
                compatible = "gpio-keys-polled";
                #address-cells = <1>;
 
                reset {
                        label = "reset";
-                       gpios = <&gpio 2 1>;
-                       linux,code = <0x198>;
+                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
                };
 
                wps {
                        label = "wps";
-                       gpios = <&gpio 25 1>;
-                       linux,code = <0x211>;
+                       gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WPS_BUTTON>;
                };
 
                restart {
                        label = "restart";
-                       gpios = <&gpio 39 1>;
-                       linux,code = <0x198>;
+                       gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
                };
        };
 
        gpio-leds {
                compatible = "gpio-leds";
 
+               /* broadband-* is a single RGB led */
                broadband-red {
-                       label = "soc:red:broadband";
-                       gpios = <&gpio 0 1>;
+                       label = "bthomehubv5a:red:broadband";
+                       gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
                };
                broadband-green {
-                       label = "soc:green:broadband";
-                       gpios = <&gpio 3 1>;
+                       label = "bthomehubv5a:green:broadband";
+                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
                };
                broadband_blue: broadband-blue {
-                       label = "soc:blue:broadband";
-                       gpios = <&gpio 8 1>;
+                       label = "bthomehubv5a:blue:broadband";
+                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
                };
 
+               /* wireless-* is a single RGB led */
                wireless-red {
-                       label = "soc:red:wireless";
-                       gpios = <&gpio 9 1>;
+                       label = "bthomehubv5a:red:wireless";
+                       gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
                };
                wireless-green {
-                       label = "soc:green:wireless";
-                       gpios = <&gpio 10 1>;
+                       label = "bthomehubv5a:green:wireless";
+                       gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
                };
                wireless_blue: wireless-blue {
-                       label = "soc:blue:wireless";
-                       gpios = <&gpio 11 1>;
+                       label = "bthomehubv5a:blue:wireless";
+                       gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
                };
 
-               power-red {
-                       label = "soc:red:power";
-                       gpios = <&gpio 12 1>;
+               /* power-* is a single RGB led */
+               power_red: power-red {
+                       label = "bthomehubv5a:red:power";
+                       gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
                };
-               power-green {
-                       label = "soc:green:power";
-                       gpios = <&gpio 14 1>;
+               power_green: power-green {
+                       label = "bthomehubv5a:green:power";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+                       default-state = "keep";
                };
-               power-blue {
-                       label = "soc:blue:power";
-                       gpios = <&gpio 15 1>;
+               power_blue: power-blue {
+                       label = "bthomehubv5a:blue:power";
+                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
                };
 
                dimmed {
                        label = "dimmed";
-                       gpios = <&gpio 19 0>;
+                       gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&pci0 {
+       status = "okay";
+       gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+       wifi@168c,002d {
+               compatible = "pci168c,002d";
+               reg = <0x7000 0 0 0 0>;
+               qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+               qca,disable-5ghz;
+       };
+};
+
+&eth0 {
+       lan: interface@0 {
+               compatible = "lantiq,xrx200-pdi";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0>;
+               lantiq,switch;
+
+               ethernet@0 {
+                       compatible = "lantiq,xrx200-pdi-port";
+                       reg = <0>;
+                       phy-mode = "rgmii";
+                       phy-handle = <&phy0>;
+               };
+               ethernet@1 {
+                       compatible = "lantiq,xrx200-pdi-port";
+                       reg = <1>;
+                       phy-mode = "rgmii";
+                       phy-handle = <&phy1>;
+               };
+               ethernet@2 {
+                       compatible = "lantiq,xrx200-pdi-port";
+                       reg = <2>;
+                       phy-mode = "gmii";
+                       phy-handle = <&phy11>;
+               };
+               ethernet@4 {
+                       compatible = "lantiq,xrx200-pdi-port";
+                       reg = <4>;
+                       phy-mode = "gmii";
+                       phy-handle = <&phy13>;
+               };
+               ethernet@5 {
+                       compatible = "lantiq,xrx200-pdi-port";
+                       reg = <5>;
+                       phy-mode = "rgmii";
+                       phy-handle = <&phy5>;
+               };
+       };
+
+       mdio@0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "lantiq,xrx200-mdio";
+
+               phy0: ethernet-phy@0 {
+                       reg = <0x0>;
+                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+               };
+               phy1: ethernet-phy@1 {
+                       reg = <0x1>;
+                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+               };
+               phy5: ethernet-phy@5 {
+                       reg = <0x5>;
+                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+               };
+               phy11: ethernet-phy@11 {
+                       reg = <0x11>;
+                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+               };
+               phy13: ethernet-phy@13 {
+                       reg = <0x13>;
+                       compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
                };
        };
 };