From 4f3797386fdd41b548de8f85c911f5f1855499c5 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 30 Sep 2013 20:48:46 +0000 Subject: [PATCH] lantiq: add support for VGV7519 KPN Experia box v8 Signed-off-by: Maikel Bloemendal Signed-off-by: John Crispin SVN-Revision: 38266 --- target/linux/lantiq/dts/VGV7519.dtsi | 307 +++++++++++++++++++++ target/linux/lantiq/dts/VGV7519BRN.dts | 28 ++ target/linux/lantiq/dts/VGV7519NOR.dts | 36 +++ target/linux/lantiq/image/Makefile | 6 + target/linux/lantiq/xrx200/profiles/arv.mk | 22 ++ 5 files changed, 399 insertions(+) create mode 100644 target/linux/lantiq/dts/VGV7519.dtsi create mode 100644 target/linux/lantiq/dts/VGV7519BRN.dts create mode 100644 target/linux/lantiq/dts/VGV7519NOR.dts diff --git a/target/linux/lantiq/dts/VGV7519.dtsi b/target/linux/lantiq/dts/VGV7519.dtsi new file mode 100644 index 0000000000..8ef9114498 --- /dev/null +++ b/target/linux/lantiq/dts/VGV7519.dtsi @@ -0,0 +1,307 @@ +/include/ "vr9.dtsi" + +/ { + chosen { + bootargs = "console=ttyLTQ0,115200 init=/etc/preinit"; + }; + + memory@0 { + reg = <0x0 0x4000000>; + }; + + fpi@10000000 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "lantiq,fpi", "simple-bus"; + ranges = <0x0 0x10000000 0xEEFFFFF>; + reg = <0x10000000 0xEF00000>; + + localbus@0 { + #address-cells = <2>; + #size-cells = <1>; + compatible = "lantiq,localbus", "simple-bus"; + }; + + gpio: pinmux@E100B10 { + compatible = "lantiq,pinctrl-xr9"; + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + interrupt-parent = <&icu0>; + interrupts = <166 135 66 40 41 42 38>; + + #gpio-cells = <2>; + gpio-controller; + reg = <0xE100B10 0xA0>; + + state_default: pinmux { + exin3 { + lantiq,groups = "exin3"; + lantiq,function = "exin"; + }; + stp { + lantiq,groups = "stp"; + lantiq,function = "stp"; + }; + spi { + lantiq,groups = "spi", "spi_cs4"; + lantiq,function = "spi"; + }; + mdio { + lantiq,groups = "mdio"; + lantiq,function = "mdio"; + }; + pci { + lantiq,groups = "gnt1", "req1"; + lantiq,function = "pci"; + }; + conf_out { + lantiq,pins = "io4", "io5", "io6", /* stp */ + "io21", + "io33", + "io7", "io44"; /* Internal ethernet phy leds */ + lantiq,open-drain; + lantiq,pull = <0>; + lantiq,output = <1>; + }; + pcie-rst { + lantiq,pins = "io38"; + lantiq,pull = <0>; + lantiq,output = <1>; + }; + conf_in { + lantiq,pins = "io39"; /* exin3 */ + lantiq,pull = <2>; + }; + }; + }; + + 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>; + mac-address = [ 00 11 22 33 44 55 ]; + + 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>; + mac-address = [ 00 11 22 33 44 56 ]; + 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"; + lantiq,c45-reg-init = <1 0 0 0>; + }; + phy1: ethernet-phy@1 { + reg = <0x1>; + compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22"; + lantiq,c45-reg-init = <1 0 0 0>; + }; + phy5: ethernet-phy@5 { + reg = <0x5>; + compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22"; + lantiq,c45-reg-init = <1 0 0 0>; + }; + phy11: ethernet-phy@11 { + reg = <0x11>; + compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22"; + lantiq,c45-reg-init = <1 0 0 0>; + }; + phy13: ethernet-phy@13 { + reg = <0x13>; + compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22"; + lantiq,c45-reg-init = <1 0 0 0>; + }; + }; + }; + + stp: stp@E100BB0 { + compatible = "lantiq,gpio-stp-xway"; + reg = <0xE100BB0 0x40>; + #gpio-cells = <2>; + gpio-controller; + + lantiq,shadow = <0xffff>; + lantiq,groups = <0x3>; + lantiq,dsl = <0x0>; + lantiq,phy1 = <0x0>; + lantiq,phy2 = <0x0>; + /* lantiq,rising; */ + }; + + ifxhcd@E101000 { + status = "okay"; + gpios = <&gpio 33 0>; + lantiq,portmask = <0x3>; + }; + + pci@E105400 { + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + compatible = "lantiq,pci-xway1"; + bus-range = <0x0 0x0>; + ranges = <0x2000000 0 0x8000000 0x8000000 0 0x2000000 /* pci memory */ + 0x1000000 0 0x00000000 0xAE00000 0 0x200000>; /* io space */ + reg = <0x7000000 0x8000 /* config space */ + 0xE105400 0x400>; /* pci bridge */ + lantiq,bus-clock = <33333333>; + /*lantiq,external-clock;*/ + lantiq,delay-hi = <0>; /* 0ns delay */ + lantiq,delay-lo = <0>; /* 0.0ns delay */ + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; + interrupt-map = < + 0x7000 0 0 1 &icu0 29 1 // slot 14, irq 29 + >; + gpios-reset = <&gpio 21 0>; + req-mask = <0x1>; /* GNT1 */ + }; + }; + + gphy-xrx200 { + compatible = "lantiq,phy-xrx200"; + firmware = "lantiq/vr9_phy11g_a1x.bin"; + phys = [ 00 01 ]; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <100>; + reset { + label = "reset"; + gpios = <&gpio 9 1>; + linux,code = <0x198>; + }; + eco { + label = "eco"; + gpios = <&gpio 41 1>; + linux,code = <247>; + }; + rfkill { + label = "rfkill"; + gpios = <&gpio 45 1>; + linux,code = <0xf7>; + }; + wps { + gpios = <&gpio 10 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + eco { /* blue */ + label = "eco"; + gpios = <&stp 2 1>; + }; + wps_red { /* red */ + label = "wps_red"; + gpios = <&stp 3 1>; + }; + wps_yellow { /* yellow */ + label = "wps_yellow"; + gpios = <&stp 4 1>; + }; + upgrade { /* blue */ + label = "upgrade"; + gpios = <&stp 5 1>; + }; + tv { /* yellow */ + label = "tv"; + gpios = <&stp 6 1>; + }; + internet_yellow { /* yellow */ + label = "internet_yellow"; + gpios = <&stp 7 1>; + }; + internet_red { /* red */ + label = "internet_red"; + gpios = <&stp 8 1>; + }; + broadband_red { /* red */ + label = "broadband_red"; + gpios = <&stp 9 1>; + }; + broadband_yellow { /* yellow */ + label = "broadband_yellow"; + gpios = <&stp 10 1>; + }; + voice { /* yellow */ + label = "voice"; + gpios = <&stp 11 1>; + }; + wireless_red { /* red */ + label = "wireless_red"; + gpios = <&stp 12 1>; + }; + wireless_yellow { /* yellow */ + label = "wireless_yellow"; + gpios = <&stp 13 1>; + }; + power2 { /* yellow */ + label = "power2"; + gpios = <&stp 14 1>; + }; + power { /* red */ + label = "power"; + gpios = <&stp 15 1>; + default-state = "on"; + }; + }; +}; diff --git a/target/linux/lantiq/dts/VGV7519BRN.dts b/target/linux/lantiq/dts/VGV7519BRN.dts new file mode 100644 index 0000000000..2f4b798946 --- /dev/null +++ b/target/linux/lantiq/dts/VGV7519BRN.dts @@ -0,0 +1,28 @@ +/dts-v1/; + + +/include/ "VGV7519.dtsi" + +/ { + fpi@10000000 { + localbus@0 { + nor-flash@0 { + compatible = "lantiq,nor", "cfi-flash"; + bank-width = <2>; + reg = <0 0x0 0x800000>, <1 0x800000 0x800000>; + #address-cells = <1>; + #size-cells = <1>; + + partition@80000 { + label = "linux"; + reg = <0x80000 0x780000>; + read-only; + }; + partition@880000 { + label = "rootfs_data"; + reg = <0x880000 0x780000>; + }; + }; + }; + }; +}; diff --git a/target/linux/lantiq/dts/VGV7519NOR.dts b/target/linux/lantiq/dts/VGV7519NOR.dts new file mode 100644 index 0000000000..ab5d14c018 --- /dev/null +++ b/target/linux/lantiq/dts/VGV7519NOR.dts @@ -0,0 +1,36 @@ +/dts-v1/; + + +/include/ "VGV7519.dtsi" + +/ { + fpi@10000000 { + localbus@0 { + nor-boot@0 { + compatible = "lantiq,nor"; + bank-width = <2>; + reg = <0 0x0 0x800000>, <1 0x800000 0x800000>; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "uboot"; + reg = <0x00000 0x40000>; + }; + + partition@60000 { + label = "uboot_env"; + reg = <0x60000 0x10000>; + }; + + partition@80000 { + label = "linux"; + reg = <0x80000 0xf80000>; + // 0x080000 - 0x01b0000 : kernel + // 0x1b0000 - 0x1000000 : rootfs (squashfs) + // 0x390000 - 0x1000000 : rootfs_data + }; + }; + }; + }; +}; diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile index 4502eb63a3..b308188317 100644 --- a/target/linux/lantiq/image/Makefile +++ b/target/linux/lantiq/image/Makefile @@ -282,6 +282,12 @@ Image/Build/Profile/VG3503J=$(call Image/BuildLoader/$(1),$(1),VG3503J) 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/VGV7519NOR=$(call Image/BuildKernel/Template,VGV7519NOR,$(1)) +Image/Build/Profile/VGV7519NOR=$(call Image/Build/$(1),$(1),VGV7519NOR) + +Image/BuildKernel/Profile/VGV7519BRN=$(call Image/BuildKernel/Template,VGV7519BRN,$(1)) +Image/Build/Profile/VGV7519BRN=$(call Image/Build/$(1),$(1),VGV7519BRN,5D00008000,0x12345678,$(1)) + endif diff --git a/target/linux/lantiq/xrx200/profiles/arv.mk b/target/linux/lantiq/xrx200/profiles/arv.mk index ebb3fa880f..a018ca352f 100644 --- a/target/linux/lantiq/xrx200/profiles/arv.mk +++ b/target/linux/lantiq/xrx200/profiles/arv.mk @@ -5,3 +5,25 @@ define Profile/VG3503J endef $(eval $(call Profile,VG3503J)) + +define Profile/VGV7519NOR + NAME:=Lantiq VR9 - VGV7519NOR + PACKAGES:=kmod-ath9k wpad-mini \ + kmod-ltq-deu-vr9 kmod-ltq-hcd-vr9 \ + kmod-ltq-vdsl-vr9-mei kmod-ltq-vdsl-vr9 \ + kmod-ltq-atm-vr9 ltq-vdsl-vr9-fw-installer \ + ltq-vdsl-app ppp-mod-pppoa +endef + +$(eval $(call Profile,VGV7519NOR)) + +define Profile/VGV7519BRN + NAME:=Lantiq VR9 - VGV7519 (BRN) + PACKAGES:=kmod-ath9k wpad-mini \ + kmod-ltq-deu-vr9 kmod-ltq-hcd-vr9 \ + kmod-ltq-vdsl-vr9-mei kmod-ltq-vdsl-vr9 \ + kmod-ltq-atm-vr9 ltq-vdsl-vr9-fw-installer \ + ltq-vdsl-app ppp-mod-pppoa +endef + +$(eval $(call Profile,VGV7519BRN)) -- 2.30.2