Message ID | 20170317113034.6776-1-mariogrip@ubuntu.com |
---|---|
State | Changes Requested |
Delegated to: | John Crispin |
Headers | show |
Please ignore the patch in the first email since it has an typo in the model name. 2017-03-17 12:30 GMT+01:00 Marius Gripsgard <mariogrip@ubuntu.com>: > This adds support for TP-Link Archer C20 > > Signed-off-by: Marius Gripsgard <mariogrip@ubuntu.com> > --- > target/linux/ramips/dts/ArcherC20.dts | 156 > +++++++++++++++++++++++++++++++++ > target/linux/ramips/image/mt7620.mk | 9 ++ > tools/firmware-utils/src/mktplinkfw2.c | 7 ++ > 3 files changed, 172 insertions(+) > create mode 100644 target/linux/ramips/dts/ArcherC20.dts > > diff --git a/target/linux/ramips/dts/ArcherC20.dts > b/target/linux/ramips/dts/ArcherC20.dts > new file mode 100644 > index 0000000..0fe8479 > --- /dev/null > +++ b/target/linux/ramips/dts/ArcherC20.dts > @@ -0,0 +1,156 @@ > +/dts-v1/; > + > +#include "mt7620a.dtsi" > + > +/ { > + compatible = "ralink,mt7620a-soc"; > + model = "TP-Link Archer C20"; > + > + chosen { > + bootargs = "console=ttyS0,115200"; > + }; > + > + gpio-leds { > + compatible = "gpio-leds"; > + > + lan { > + label = "tp-link:blue:lan"; > + gpios = <&gpio0 1 1>; > + }; > + > + power { > + label = "tp-link:blue:power"; > + gpios = <&gpio0 7 0>; > + }; > + > + usb { > + label = "tp-link:blue:usb"; > + gpios = <&gpio0 9 1>; > + }; > + > + wlan5g { > + label = "tp-link:blue:wlan5g"; > + gpios = <&gpio0 11 1>; > + }; > + > + wlan2g { > + label = "tp-link:blue:wlan2g"; > + gpios = <&gpio3 0 1>; > + }; > + }; > + > + gpio-keys-polled { > + compatible = "gpio-keys-polled"; > + #address-cells = <1>; > + #size-cells = <0>; > + poll-interval = <20>; > + > + reset { > + label = "reset"; > + gpios = <&gpio0 13 1>; > + linux,code = <0x198>; > + }; > + > + rfkill { > + label = "rfkill"; > + gpios = <&gpio0 2 1>; > + linux,code = <0xf7>; > + }; }; > +}; > + > +&gpio2 { > + status = "okay"; > +}; > + > +&gpio3 { > + status = "okay"; > +}; > + > +&spi0 { > + status = "okay"; > + > + m25p80@0 { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "jedec,spi-nor"; > + reg = <0>; > + linux,modalias = "m25p80", "mx25l6405d"; > + spi-max-frequency = <10000000>; > + > + partition@0 { > + label = "u-boot"; > + reg = <0x0 0x20000>; > + read-only; > + }; > + > + partition@20000 { > + label = "firmware"; > + reg = <0x20000 0x7a0000>; > + }; > + > + partition@7c0000 { > + label = "config"; > + reg = <0x7c0000 0x10000>; > + }; > + > + rom: partition@7d0000 { > + label = "rom"; > + reg = <0x7d0000 0x10000>; > + }; > + > + partition@7e0000 { > + label = "romfile"; > + reg = <0x7e0000 0x10000>; > + }; > + > + radio: partition@7f0000 { > + label = "radio"; > + reg = <0x7f0000 0x10000>; > + }; > + }; > +}; > + > +&pinctrl { > + state_default: pinctrl0 { > + gpio { > + ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", > "wled", "nd_sd"; > + ralink,function = "gpio"; > + }; > + }; > +}; > + > +ðernet { > + pinctrl-names = "default"; > + pinctrl-0 = <&ephy_pins>; > + mtd-mac-address = <&rom 0xf100>; > + mediatek,portmap = "wllll"; > + }; > + > +&ehci { > + status = "okay"; > +}; > + > +&ohci { > + status = "okay"; > +}; > + > +&gsw { > + mediatek,port4 = "ephy"; > +}; > + > +&wmac { > + ralink,mtd-eeprom = <&radio 0>; > +}; > + > +&pcie { > + status = "okay"; > + > + pcie-bridge { > + mt76@0,0 { > + reg = <0x0000 0 0 0 0>; > + device_type = "pci"; > + mediatek,mtd-eeprom = <&radio 32768>; > + mediatek,2ghz = <0>; > + }; > + }; > +}; > diff --git a/target/linux/ramips/image/mt7620.mk > b/target/linux/ramips/image/mt7620.mk > index 87f8ed8..39292e1 100644 > --- a/target/linux/ramips/image/mt7620.mk > +++ b/target/linux/ramips/image/mt7620.mk > @@ -50,6 +50,15 @@ define Device/ArcherC20i > endef > TARGET_DEVICES += ArcherC20i > > +define Device/ArcherC20 > + DTS := ArcherC20 > + KERNEL := $(KERNEL_DTB) > + KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-header ArcherC20 -c > + IMAGE/sysupgrade.bin := append-kernel | tplink-header ArcherC20 -j -r > $(KDIR)/root.squashfs > + DEVICE_TITLE := TP-Link ArcherC20 > +endef > +TARGET_DEVICES += ArcherC20 > + > define Device/ArcherC50 > DTS := ArcherC50 > KERNEL := $(KERNEL_DTB) > diff --git a/tools/firmware-utils/src/mktplinkfw2.c > b/tools/firmware-utils/src/mktplinkfw2.c > index 213e672..05156bc 100644 > --- a/tools/firmware-utils/src/mktplinkfw2.c > +++ b/tools/firmware-utils/src/mktplinkfw2.c > @@ -192,6 +192,13 @@ static struct board_info boards[] = { > .hdr_ver = 3, > .endian_swap = true, > }, { > + .id = "ArcherC20", > + .hw_id = 0xc2000001, > + .hw_rev = 68, > + .layout_id = "8Mmtk", > + .hdr_ver = 3, > + .endian_swap = true, > + }, { > /* terminating entry */ > } > }; > -- > 2.9.3 >
diff --git a/target/linux/ramips/dts/ArcherC20.dts b/target/linux/ramips/dts/ArcherC20.dts new file mode 100644 index 0000000..0fe8479 --- /dev/null +++ b/target/linux/ramips/dts/ArcherC20.dts @@ -0,0 +1,156 @@ +/dts-v1/; + +#include "mt7620a.dtsi" + +/ { + compatible = "ralink,mt7620a-soc"; + model = "TP-Link Archer C20"; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + gpio-leds { + compatible = "gpio-leds"; + + lan { + label = "tp-link:blue:lan"; + gpios = <&gpio0 1 1>; + }; + + power { + label = "tp-link:blue:power"; + gpios = <&gpio0 7 0>; + }; + + usb { + label = "tp-link:blue:usb"; + gpios = <&gpio0 9 1>; + }; + + wlan5g { + label = "tp-link:blue:wlan5g"; + gpios = <&gpio0 11 1>; + }; + + wlan2g { + label = "tp-link:blue:wlan2g"; + gpios = <&gpio3 0 1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&gpio0 13 1>; + linux,code = <0x198>; + }; + + rfkill { + label = "rfkill"; + gpios = <&gpio0 2 1>; + linux,code = <0xf7>; + }; }; +}; + +&gpio2 { + status = "okay"; +}; + +&gpio3 { + status = "okay"; +}; + +&spi0 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + linux,modalias = "m25p80", "mx25l6405d"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x20000>; + read-only; + }; + + partition@20000 { + label = "firmware"; + reg = <0x20000 0x7a0000>; + }; + + partition@7c0000 { + label = "config"; + reg = <0x7c0000 0x10000>; + }; + + rom: partition@7d0000 { + label = "rom"; + reg = <0x7d0000 0x10000>; + }; + + partition@7e0000 { + label = "romfile"; + reg = <0x7e0000 0x10000>; + }; + + radio: partition@7f0000 { + label = "radio"; + reg = <0x7f0000 0x10000>; + }; + }; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "wled", "nd_sd"; + ralink,function = "gpio"; + }; + }; +}; + +ðernet { + pinctrl-names = "default"; + pinctrl-0 = <&ephy_pins>; + mtd-mac-address = <&rom 0xf100>; + mediatek,portmap = "wllll"; + }; + +&ehci { + status = "okay"; +}; + +&ohci { + status = "okay"; +}; + +&gsw { + mediatek,port4 = "ephy"; +}; + +&wmac { + ralink,mtd-eeprom = <&radio 0>; +}; + +&pcie { + status = "okay"; + + pcie-bridge { + mt76@0,0 { + reg = <0x0000 0 0 0 0>; + device_type = "pci"; + mediatek,mtd-eeprom = <&radio 32768>; + mediatek,2ghz = <0>; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 87f8ed8..39292e1 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -50,6 +50,15 @@ define Device/ArcherC20i endef TARGET_DEVICES += ArcherC20i +define Device/ArcherC20 + DTS := ArcherC20 + KERNEL := $(KERNEL_DTB) + KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-header ArcherC20 -c + IMAGE/sysupgrade.bin := append-kernel | tplink-header ArcherC20 -j -r $(KDIR)/root.squashfs + DEVICE_TITLE := TP-Link ArcherC20 +endef +TARGET_DEVICES += ArcherC20 + define Device/ArcherC50 DTS := ArcherC50 KERNEL := $(KERNEL_DTB) diff --git a/tools/firmware-utils/src/mktplinkfw2.c b/tools/firmware-utils/src/mktplinkfw2.c index 213e672..05156bc 100644 --- a/tools/firmware-utils/src/mktplinkfw2.c +++ b/tools/firmware-utils/src/mktplinkfw2.c @@ -192,6 +192,13 @@ static struct board_info boards[] = { .hdr_ver = 3, .endian_swap = true, }, { + .id = "ArcherC20", + .hw_id = 0xc2000001, + .hw_rev = 68, + .layout_id = "8Mmtk", + .hdr_ver = 3, + .endian_swap = true, + }, { /* terminating entry */ } };
This adds support for TP-Link Archer C20 Signed-off-by: Marius Gripsgard <mariogrip@ubuntu.com> --- target/linux/ramips/dts/ArcherC20.dts | 156 +++++++++++++++++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 9 ++ tools/firmware-utils/src/mktplinkfw2.c | 7 ++ 3 files changed, 172 insertions(+) create mode 100644 target/linux/ramips/dts/ArcherC20.dts