diff mbox

[OpenWrt-Devel,1/3] lantiq: Add support for Arcadyan VGV7510KW22 (known as o2 Box 6431)

Message ID 1433431854-16539-1-git-send-email-martin.blumenstingl@googlemail.com
State Accepted
Headers show

Commit Message

Martin Blumenstingl June 4, 2015, 3:30 p.m. UTC
---
 .../etc/hotplug.d/firmware/10-rt2x00-eeprom        |  11 +
 .../lantiq/base-files/etc/uci-defaults/01_leds     |   7 +
 .../lantiq/base-files/etc/uci-defaults/02_network  |   8 +
 target/linux/lantiq/dts/VGV7510KW22.dtsi           | 256 +++++++++++++++++++++
 target/linux/lantiq/dts/VGV7510KW22BRN.dts         |  53 +++++
 target/linux/lantiq/dts/VGV7510KW22NOR.dts         |  33 +++
 target/linux/lantiq/image/Makefile                 |   6 +
 target/linux/lantiq/xrx200/profiles/arv.mk         |  14 ++
 8 files changed, 388 insertions(+)
 create mode 100644 target/linux/lantiq/dts/VGV7510KW22.dtsi
 create mode 100644 target/linux/lantiq/dts/VGV7510KW22BRN.dts
 create mode 100644 target/linux/lantiq/dts/VGV7510KW22NOR.dts
diff mbox

Patch

diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
index 3ebd5e8..5f1cb00 100644
--- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
@@ -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
diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/01_leds b/target/linux/lantiq/base-files/etc/uci-defaults/01_leds
index 3502eb2..8041ac9 100644
--- a/target/linux/lantiq/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/lantiq/base-files/etc/uci-defaults/01_leds
@@ -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"
diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/02_network b/target/linux/lantiq/base-files/etc/uci-defaults/02_network
index 5997bf5..afb8714 100644
--- a/target/linux/lantiq/base-files/etc/uci-defaults/02_network
+++ b/target/linux/lantiq/base-files/etc/uci-defaults/02_network
@@ -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
index 0000000..077ed23
--- /dev/null
+++ b/target/linux/lantiq/dts/VGV7510KW22.dtsi
@@ -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
index 0000000..1880c8c
--- /dev/null
+++ b/target/linux/lantiq/dts/VGV7510KW22BRN.dts
@@ -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
index 0000000..57842bb
--- /dev/null
+++ b/target/linux/lantiq/dts/VGV7510KW22NOR.dts
@@ -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 */
+				};
+			};
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index 51766ba..3e8c20b 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -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)
 
diff --git a/target/linux/lantiq/xrx200/profiles/arv.mk b/target/linux/lantiq/xrx200/profiles/arv.mk
index f68862b..3dc22c0 100644
--- a/target/linux/lantiq/xrx200/profiles/arv.mk
+++ b/target/linux/lantiq/xrx200/profiles/arv.mk
@@ -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