lantiq: Add support for Arcadyan VGV7510KW22 (known as o2 Box 6431)
authorJohn Crispin <john@openwrt.org>
Fri, 5 Jun 2015 14:11:36 +0000 (14:11 +0000)
committerJohn Crispin <john@openwrt.org>
Fri, 5 Jun 2015 14:11:36 +0000 (14:11 +0000)
SVN-Revision: 45897

target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
target/linux/lantiq/base-files/etc/uci-defaults/01_leds
target/linux/lantiq/base-files/etc/uci-defaults/02_network
target/linux/lantiq/dts/VGV7510KW22.dtsi [new file with mode: 0644]
target/linux/lantiq/dts/VGV7510KW22BRN.dts [new file with mode: 0644]
target/linux/lantiq/dts/VGV7510KW22NOR.dts [new file with mode: 0644]
target/linux/lantiq/image/Makefile
target/linux/lantiq/xrx200/profiles/arv.mk

index 3ebd5e8..5f1cb00 100644 (file)
@@ -46,4 +46,15 @@ case "$FIRMWARE" in
                ;;
        esac
        ;;
+"RT3062.eeprom" )
+       local board=$(lantiq_board_name)
+       case $board in
+       VGV7510KW22)
+               rt2x00_eeprom_extract "board_config" 520 256 1
+               ;;
+       *)
+               rt2x00_eeprom_die "board $board is not supported yet"
+               ;;
+       esac
+       ;;
 esac
index 3502eb2..8041ac9 100644 (file)
@@ -30,6 +30,13 @@ BTHOMEHUBV3A)
        ucidef_set_led_wlan "wifi" "wifi" "soc:blue:wireless" "phy0tpt"
        ucidef_set_led_netdev "internet" "internet" "soc:blue:broadband" "pppoa-wan"
        ;;
+VGV7510KW22)
+       ucidef_set_led_default "power" "power" "power" "1"
+       ucidef_set_led_default "power2" "power2" "power2" "0"
+       ucidef_set_led_wlan "wifi" "wifi" "wifi" "phy0radio"
+       ucidef_set_led_netdev "dsl" "dsl" "dsl" "nas0"
+       ucidef_set_led_netdev "internet_green" "internet_green" "internet_green" "pppoe-wan"
+       ;;
 VGV7519)
        ucidef_set_led_default "power" "power" "power" "0"
        ucidef_set_led_default "power2" "power2" "power2" "1"
index 5997bf5..afb8714 100644 (file)
@@ -174,6 +174,14 @@ VGV7519)
        wan_mac=$(macaddr_add "$lan_mac" 1)
        ;;
 
+VGV7510KW22)
+       lan_mac=$(mtd_get_mac_binary board_config 22)
+       wan_mac=$(macaddr_add "$lan_mac" 1)
+       ucidef_set_interface_lan 'eth0.1'
+       ucidef_add_switch "switch0" "1" "1"
+       ucidef_add_switch_vlan "switch0" "1" "2 3 4 5 6t"
+       ;;
+
 esac
 
 [ -z "$(ls /lib/modules/`uname -r`/ltq_atm*)" ] || set_atm_wan "$vpi" "$vci" "$encaps" "$payload"
diff --git a/target/linux/lantiq/dts/VGV7510KW22.dtsi b/target/linux/lantiq/dts/VGV7510KW22.dtsi
new file mode 100644 (file)
index 0000000..077ed23
--- /dev/null
@@ -0,0 +1,256 @@
+/include/ "vr9.dtsi"
+
+/ {
+       model = "VGV7510KW22 - o2 Box 6431";
+
+       chosen {
+               bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+       };
+
+       memory@0 {
+               reg = <0x0 0x4000000>;
+       };
+
+       fpi@10000000 {
+               localbus@0 {
+                       nor-boot@0 {
+                               compatible = "lantiq,nor";
+                               bank-width = <2>;
+                               reg = <0 0x0 0x1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               boardconfig: partition@fe0000 {
+                                       label = "board_config";
+                                       reg = <0xfe0000 0x20000>;
+                                       read-only;
+                               };
+                       };
+               };
+
+               gpio: pinmux@E100B10 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&state_default>;
+
+                       state_default: pinmux {
+                               ip101a-rst {
+                                       lantiq,pins = "io46";
+                                       lantiq,output = <0>;
+                                       lantiq,pull = <1>;
+                               };
+                               gphy-leds {
+                                       lantiq,groups = "gphy0 led1",
+                                                       "gphy1 led0", "gphy1 led1";
+                                       lantiq,function = "gphy";
+                                       lantiq,open-drain = <0>;
+                                       lantiq,pull = <0>;
+                                       lantiq,output = <1>;
+                               };
+                               stp {
+                                       lantiq,groups = "stp";
+                                       lantiq,function = "stp";
+                                       lantiq,pull = <2>;
+                                       lantiq,open-drain = <0>;
+                                       lantiq,output = <1>;
+                               };
+                               mdio {
+                                       lantiq,groups = "mdio";
+                                       lantiq,function = "mdio";
+                               };
+                               pci-rst {
+                                       lantiq,pins = "io21";
+                                       lantiq,open-drain = <0>;
+                                       lantiq,pull = <0>;
+                                       lantiq,output = <1>;
+                               };
+                               spi {
+                                       lantiq,groups = "spi";
+                                       lantiq,function = "spi";
+                               };
+                       };
+               };
+
+               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 = <&boardconfig 0x16>;
+                               lantiq,switch;
+
+                               ethernet@2 {
+                                       compatible = "lantiq,xrx200-pdi-port";
+                                       reg = <2>;
+                                       phy-mode = "mii";
+                                       phy-handle = <&phy11>;
+                               };
+                               ethernet@3 {
+                                       compatible = "lantiq,xrx200-pdi-port";
+                                       reg = <3>;
+                                       phy-mode = "mii";
+                                       phy-handle = <&phy12>;
+                               };
+                               ethernet@4 {
+                                       compatible = "lantiq,xrx200-pdi-port";
+                                       reg = <4>;
+                                       phy-mode = "mii";
+                                       phy-handle = <&phy13>;
+                               };
+                               ethernet@5 {
+                                       compatible = "lantiq,xrx200-pdi-port";
+                                       reg = <5>;
+                                       phy-mode = "mii";
+                                       phy-handle = <&phy14>;
+                               };
+                       };
+
+                       mdio@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "lantiq,xrx200-mdio";
+
+                               phy11: ethernet-phy@11 {
+                                       reg = <0x11>;
+                                       compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+                               };
+                               phy12: ethernet-phy@12 {
+                                       reg = <0x12>;
+                                       compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+                               };
+                               phy13: ethernet-phy@13 {
+                                       reg = <0x13>;
+                                       compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+                               };
+                               phy14: ethernet-phy@14 {
+                                       reg = <0x14>;
+                                       compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+                               };
+                       };
+               };
+
+               stp: stp@E100BB0 {
+                       compatible = "lantiq,gpio-stp-xway";
+                       reg = <0xE100BB0 0x40>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+
+                       lantiq,shadow = <0xff>;
+                       lantiq,groups = <0x1>;
+                       lantiq,dsl = <0x0>;
+                       lantiq,phy1 = <0x7>;
+                       lantiq,phy2 = <0x7>; /* enable gphy0 led2 = LAN2 LED */
+               };
+
+               ifxhcd@E101000 {
+                       status = "okay";
+                       gpios = <&gpio 47 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 // slot 14, irq 30
+                               >;
+                       gpio-reset = <&gpio 21 0>;
+                       req-mask = <0x1>;       /* GNT1 */
+               };
+
+               pcie@d900000 {
+                       status = "disabled";
+               };
+       };
+
+       gphy-xrx200 {
+               compatible = "lantiq,phy-xrx200";
+               firmware1 = "lantiq/vr9_phy22f_a1x.bin";        /*VR9 1.1*/
+               firmware2 = "lantiq/vr9_phy22f_a2x.bin";        /*VR9 1.2*/
+               phys = [ 00 01 ];
+       };
+
+       ralink_eep {
+               compatible = "ralink,eeprom";
+               ralink,eeprom = "RT3062.eeprom";
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               poll-interval = <100>;
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio 6 1>;
+                       linux,code = <0x198>;
+               };
+
+               wps {
+                       label = "wps";
+                       gpios = <&gpio 9 1>;
+                       linux,code = <0x211>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               dsl {
+                       label = "dsl";
+                       gpios = <&gpio 2 1>;
+               };
+
+               internet_red {
+                       label = "internet_red";
+                       gpios = <&gpio 10 1>;
+               };
+
+               info_red {
+                       label = "info_red";
+                       gpios = <&gpio 12 1>;
+               };
+
+               power {
+                       label = "power"; /* green */
+                       gpios = <&gpio 14 1>;
+               };
+
+               info_green {
+                       label = "info_green";
+                       gpios = <&gpio 15 1>;
+               };
+
+               internet_green {
+                       label = "internet_green";
+                       gpios = <&gpio 19 1>;
+               };
+
+               wifi {
+                       label = "wifi";
+                       gpios = <&gpio 20 1>;
+               };
+
+               power2 {
+                       label = "power2"; /* red */
+                       gpios = <&gpio 28 1>;
+               };
+
+               phone_red {
+                       label = "phone_red";
+                       gpios = <&gpio 29 1>;
+               };
+       };
+};
diff --git a/target/linux/lantiq/dts/VGV7510KW22BRN.dts b/target/linux/lantiq/dts/VGV7510KW22BRN.dts
new file mode 100644 (file)
index 0000000..1880c8c
--- /dev/null
@@ -0,0 +1,53 @@
+/dts-v1/;
+
+/include/ "VGV7510KW22.dtsi"
+
+/ {
+       fpi@10000000 {
+               localbus@0 {
+                       nor-boot@0 {
+                               partition@0 {
+                                       label = "Boot";
+                                       reg = <0x00000 0x40000>;
+                                       read-only;
+                               };
+
+                               partition@40000 {
+                                       label = "Configuration";
+                                       reg = <0x40000 0x40000>;
+                                       read-only;
+                               };
+
+                               partition@80000 {
+                                       label = "Certificate";
+                                       reg = <0x80000 0x20000>;
+                                       read-only;
+                               };
+
+                               partition@a0000 {
+                                       label = "Special_Area";
+                                       reg = <0xa0000 0x20000>;
+                                       read-only;
+                               };
+
+                               partition@c0000 {
+                                       label = "Primary_Setting";
+                                       reg = <0xc0000 0x20000>;
+                                       read-only;
+                               };
+
+                               partition@e0000 {
+                                       label = "firmware"; /* "Code Image 0" in OFW */
+                                       reg = <0xe0000 0x780000>;
+                                       read-only;
+                               };
+
+                               partition@860000 {
+                                       label = "Code_Image_1";
+                                       reg = <0x860000 0x780000>;
+                                       read-only;
+                               };
+                       };
+               };
+       };
+};
diff --git a/target/linux/lantiq/dts/VGV7510KW22NOR.dts b/target/linux/lantiq/dts/VGV7510KW22NOR.dts
new file mode 100644 (file)
index 0000000..57842bb
--- /dev/null
@@ -0,0 +1,33 @@
+/dts-v1/;
+
+/include/ "VGV7510KW22.dtsi"
+
+/ {
+       fpi@10000000 {
+               localbus@0 {
+                       nor-boot@0 {
+                               partition@0 {
+                                       label = "uboot";
+                                       reg = <0x0 0x60000>; /* 384 KiB */
+                                       read-only;
+                               };
+
+                               partition@60000 {
+                                       label = "uboot-env";
+                                       reg = <0x60000 0x20000>; /* 128 KiB */
+                                       read-only;
+                               };
+
+                               partition@80000 {
+                                       label = "firmware";
+                                       reg = <0x80000 0xe60000>; /* 14720 KiB */
+                               };
+
+                               partition@1e80000 {
+                                       label = "dsl_fw";
+                                       reg = <0xee0000 0x100000>;  /* 1024 KiB */
+                               };
+                       };
+               };
+       };
+};
index 51766ba..3e8c20b 100644 (file)
@@ -432,6 +432,12 @@ Image/Build/Profile/VG3503J_V2=$(call Image/BuildLoader/$(1),$(1),VG3503J_V2)
 Image/BuildKernel/Profile/TDW8970=$(call Image/BuildKernelTPLink/Template,TDW8970,TD-W8970v1,$(1))
 Image/Build/Profile/TDW8970=$(call Image/BuildTPLink/$(1),$(1),TDW8970,TD-W8970v1)
 
+Image/BuildKernel/Profile/VGV7510KW22NOR=$(call Image/BuildKernel/Template,VGV7510KW22NOR,$(1))
+Image/Build/Profile/VGV7510KW22NOR=$(call Image/Build/$(1),$(1),VGV7510KW22NOR)
+
+Image/BuildKernel/Profile/VGV7510KW22BRN=$(call Image/BuildKernel/Template,VGV7510KW22BRN,$(1))
+Image/Build/Profile/VGV7510KW22BRN=$(call Image/Build/$(1),$(1),VGV7510KW22BRN,5BRNDA6431,0x12345678,0x04c11db7,$(1))
+
 Image/BuildKernel/Profile/VGV7519NOR=$(call Image/BuildKernel/Template,VGV7519NOR,$(1))
 Image/Build/Profile/VGV7519NOR=$(call Image/Build/$(1),$(1),VGV7519NOR)
 
index f68862b..3dc22c0 100644 (file)
@@ -10,6 +10,20 @@ endef
 
 $(eval $(call Profile,VG3503J_V2))
 
+define Profile/VGV7510KW22NOR
+  NAME:=o2 Box 6431 / Arcadyan VGV7510KW22 (NOR)
+  PACKAGES:=kmod-rt2800-pci wpad-mini kmod-usb-dwc2
+endef
+
+$(eval $(call Profile,VGV7510KW22NOR))
+
+define Profile/VGV7510KW22BRN
+  NAME:=o2 Box 6431 / Arcadyan VGV7510KW22 (BRN)
+  PACKAGES:=kmod-rt2800-pci wpad-mini kmod-usb-dwc2
+endef
+
+$(eval $(call Profile,VGV7510KW22BRN))
+
 define Profile/VGV7519NOR
   NAME:=Experiabox 8 VGV7519
   PACKAGES:=kmod-rt2800-pci wpad-mini kmod-usb-dwc2