ramips: mt7621: add Mediatek AP-MT7621A-V60 EVB support
authorRoman Yeryomin <roman@advem.lv>
Thu, 22 Feb 2018 16:08:14 +0000 (18:08 +0200)
committerFelix Fietkau <nbd@nbd.name>
Sat, 24 Feb 2018 15:05:28 +0000 (16:05 +0100)
This board has:
- mt7621 SoC
- 8MB SPI flash
- 128MB RAM
- 5x ethernet ports from internal (SoC) switch
- 1x ethernet port sitting on gmac2 and IC+ phy (not yet supported)
- 3x PCIe slots
- 1x USB 2.0 and 1x USB 3.0
- sound based on wm8960
- SDXC card slot (full size)

First fw write from interactive u-boot menu, interrupt with 2.
After that sysupgrade.

Tested both with 4.9 and 4.14

Signed-off-by: Roman Yeryomin <roman@advem.lv>
target/linux/ramips/base-files/etc/board.d/02_network
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/AP-MT7621A-V60.dts [new file with mode: 0644]
target/linux/ramips/image/mt7621.mk

index d23f9e36e31e4a7d46990b9579f8f2cb4e4642f9..f95f24c6c232014f16e56d658eff0a4113f1845e 100755 (executable)
@@ -73,6 +73,7 @@ ramips_setup_interfaces()
        3g-6200n|\
        ai-br100|\
        alfa-network,ac1200rm|\
+       mediatek,ap-mt7621a-v60|\
        d240|\
        db-wrt01|\
        dir-300-b7|\
index 76d735291d5db3add6617ec4ef55ed10b057a87c..d2bd860cb1285d06414fd77072bad2e896a64132 100755 (executable)
@@ -23,6 +23,7 @@ platform_check_image() {
        all0256n-8M|\
        all5002|\
        all5003|\
+       mediatek,ap-mt7621a-v60|\
        ar725w|\
        asl26555-8M|\
        asl26555-16M|\
diff --git a/target/linux/ramips/dts/AP-MT7621A-V60.dts b/target/linux/ramips/dts/AP-MT7621A-V60.dts
new file mode 100644 (file)
index 0000000..a98d8a6
--- /dev/null
@@ -0,0 +1,127 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+/ {
+       compatible = "mediatek,ap-mt7621a-v60", "mediatek,mt7621-soc";
+       model = "Mediatek AP-MT7621A-V60 EVB";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x8000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,57600";
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "Audio-I2S";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink0_master>;
+               simple-audio-card,frame-master = <&dailink0_master>;
+               simple-audio-card,widgets = 
+                       "Microphone", "Microphone Jack",
+                       "Headphone", "Headphone Jack";
+               simple-audio-card,routing =
+                       "LINPUT1", "Microphone Jack",
+                       "RINPUT1", "Microphone Jack",
+                       "Headphone Jack", "HP_L",
+                       "Headphone Jack", "HP_R";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s>;
+               };
+
+               dailink0_master: simple-audio-card,codec {
+                       sound-dai = <&codec>;
+               };
+       };
+};
+
+&pinctrl {
+       state_default: pinctrl0 {
+               gpio {
+                       ralink,group = "uart2", "rgmii2";
+                       ralink,function = "gpio";
+               };
+       };
+       i2s_pins: i2s {
+               i2s {
+                       ralink,group = "uart3";
+                       ralink,function = "i2s";
+               };
+       };
+};
+
+&i2c {
+       status = "okay";
+
+       codec: wm8960@1a {
+               #sound-dai-cells = <0>;
+               compatible = "wlf,wm8960";
+               reg = <0x1a>;
+               wlf,shared-lrclk;
+       };
+};
+
+&gdma {
+       status = "okay";
+};
+
+&i2s {
+       #sound-dai-cells = <0>;
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_pins>;
+};
+
+&spi0 {
+       status = "okay";
+
+       mx25l6405d@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "mx25l6405d","jedec,spi-nor";
+               reg = <0 0>;
+               spi-max-frequency = <10000000>;
+               m25p,chunked-io = <32>;
+
+               partition@0 {
+                       label = "u-boot";
+                       reg = <0x0 0x30000>;
+                       read-only;
+               };
+
+               partition@30000 {
+                       label = "u-boot-env";
+                       reg = <0x30000 0x10000>;
+                       read-only;
+               };
+
+               factory: partition@40000 {
+                       label = "factory";
+                       reg = <0x40000 0x10000>;
+                       read-only;
+               };
+
+               partition@50000 {
+                       label = "firmware";
+                       reg = <0x50000 0x7b0000>;
+               };
+       };
+};
+
+&sdhci {
+       status = "okay";
+};
+
+&ethernet {
+       mtd-mac-address = <&factory 0x5>;
+};
+
+&pcie {
+       status = "okay";
+};
index d3dfb237b68bd3171340c3aa9beb0e6bdfbae9ba..18b6934529e3883276e2b8fa8dc00a098ca0f73a 100644 (file)
@@ -57,6 +57,14 @@ define Device/dir-860l-b1
 endef
 TARGET_DEVICES += dir-860l-b1
 
+define Device/mediatek_ap-mt7621a-v60
+  DTS := AP-MT7621A-V60
+  IMAGE_SIZE := $(ralink_default_fw_size_8M)
+  DEVICE_TITLE := Mediatek AP-MT7621A-V60 EVB
+  DEVICE_PACKAGES := kmod-usb3 kmod-sdhci-mt7620 kmod-sound-mt7620
+endef
+TARGET_DEVICES += mediatek_ap-mt7621a-v60
+
 define Device/ew1200
   DTS := EW1200
   IMAGE_SIZE := $(ralink_default_fw_size_16M)