aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips
diff options
context:
space:
mode:
authorMichael Lee <igvtee@gmail.com>2016-05-02 11:57:40 +0800
committerJohn Crispin <john@phrozen.org>2016-07-11 14:19:47 +0200
commitc3e420f28cf1ed229753f94bafdb0d5851748af3 (patch)
tree2b023931fbd0c874554460f67ae2a65bbbc0e400 /target/linux/ramips
parent36d98e6c7a4fdfc929bdec0540c6071ee117275b (diff)
downloadupstream-c3e420f28cf1ed229753f94bafdb0d5851748af3.tar.gz
upstream-c3e420f28cf1ed229753f94bafdb0d5851748af3.tar.bz2
upstream-c3e420f28cf1ed229753f94bafdb0d5851748af3.zip
ramips: Add support for D-Link DCH-M225
D-Link DCH-M225 is based on Mediatek MT7620 with 64MB ram, 8MB flash, 3.5mm audio out support. but no ethernet and usb ports. so you must default enable wifi. Signed-off-by: Michael Lee <igvtee@gmail.com>
Diffstat (limited to 'target/linux/ramips')
-rwxr-xr-xtarget/linux/ramips/base-files/etc/board.d/01_leds4
-rwxr-xr-xtarget/linux/ramips/base-files/etc/board.d/02_network4
-rw-r--r--target/linux/ramips/base-files/etc/diag.sh1
-rw-r--r--target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header1
-rwxr-xr-xtarget/linux/ramips/base-files/lib/ramips.sh3
-rwxr-xr-xtarget/linux/ramips/base-files/lib/upgrade/platform.sh1
-rw-r--r--target/linux/ramips/dts/DCH-M225.dts184
-rw-r--r--target/linux/ramips/dts/mt7620a.dtsi7
-rw-r--r--target/linux/ramips/image/mt7620.mk28
9 files changed, 233 insertions, 0 deletions
diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds
index 0e30ba076d..695b0c1e7d 100755
--- a/target/linux/ramips/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/base-files/etc/board.d/01_leds
@@ -100,6 +100,10 @@ d105)
db-wrt01)
ucidef_set_led_default "power" "power" "$board:orange:power" "1"
;;
+dch-m225)
+ ucidef_set_led_default "power" "POWER" "$board:geeen:power" "1"
+ ucidef_set_led_default "status" "STATUS" "$board:red:status" "0"
+ ;;
dcs-930l-b1)
ucidef_set_led_default "power" "POWER" "$board:red:power" "1"
ucidef_set_led_netdev "wifi" "WiFi" "$board:blue:wps"
diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network
index f8b8ec66bd..c1c5f81ebe 100755
--- a/target/linux/ramips/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/base-files/etc/board.d/02_network
@@ -166,6 +166,7 @@ ramips_setup_interfaces()
;;
cs-qr10|\
d105|\
+ dch-m225|\
hpm|\
mzk-ex300np|\
mzk-ex750np|\
@@ -285,6 +286,9 @@ ramips_setup_macs()
wan_mac=$(mtd_get_mac_binary devdata 7)
;;
cy-swr1100|\
+ dch-m225)
+ lan_mac=$(mtd_get_mac_ascii factory lanmac)
+ ;;
dir-645)
lan_mac=$(mtd_get_mac_ascii nvram lanmac)
wan_mac=$(mtd_get_mac_ascii nvram wanmac)
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index e9d623d106..da0cecd344 100644
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -19,6 +19,7 @@ get_status_led() {
asl26555|\
br-6425|\
br-6475nd|\
+ dch-m225|\
dir-860l-b1|\
e1700|\
fonera20n|\
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
index 7a0a325d4b..f8d408deda 100644
--- a/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
+++ b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
@@ -15,6 +15,7 @@ board=$(ramips_board_name)
case "$board" in
cy-swr1100 | \
+dch-m225 | \
dir-645 | \
dir-860l-b1)
fix_seama_header
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index b6ccd5ace3..565d5138cb 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -106,6 +106,9 @@ ramips_board_detect() {
*"DB-WRT01")
name="db-wrt01"
;;
+ *"DCH-M225")
+ name="dch-m225"
+ ;;
*"DCS-930")
name="dcs-930"
;;
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
index c4d3c01367..88547ca083 100755
--- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -193,6 +193,7 @@ platform_check_image() {
return 0
;;
cy-swr1100|\
+ dch-m225|\
dir-610-a1|\
dir-645|\
dir-860l-b1)
diff --git a/target/linux/ramips/dts/DCH-M225.dts b/target/linux/ramips/dts/DCH-M225.dts
new file mode 100644
index 0000000000..3c2de8d5c5
--- /dev/null
+++ b/target/linux/ramips/dts/DCH-M225.dts
@@ -0,0 +1,184 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+ compatible = "dlink,dch-m225", "ralink,mt7620a-soc";
+ model = "D-Link DCH-M225";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 11 1>;
+ linux,code = <0x211>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "dch-m225:green:power";
+ gpios = <&gpio1 5 1>;
+ };
+
+ status {
+ label = "dch-m225:red:status";
+ gpios = <&gpio1 0 1>;
+ };
+ };
+
+ 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 =
+ "Headphone", "Headphones";
+ simple-audio-card,routing =
+ "Headphones", "HP_L",
+ "Headphones", "HP_R";
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,hp-det-gpio = <&gpio0 14 1>;
+
+ simple-audio-card,cpu {
+ sound-dai = <&i2s>;
+ };
+
+ dailink0_master: simple-audio-card,codec {
+ sound-dai = <&codec>;
+ };
+ };
+};
+
+&gpio0 {
+ status = "okay";
+};
+
+&gpio1 {
+ status = "okay";
+};
+
+&i2c {
+ status = "okay";
+
+ codec: wm8960@1a {
+ #sound-dai-cells = <0>;
+ compatible = "wlf,wm8960";
+ reg = <0x1a>;
+
+ wlf,shared-lrclk;
+ };
+};
+
+&i2s {
+ #sound-dai-cells = <0>;
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_i2s_pins>, <&wm8960_mclk_pins>;
+};
+
+&spi0 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ linux,modalias = "m25p80";
+ spi-max-frequency = <80000000>;
+ m25p,fast-read;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x4000>;
+ read-only;
+ };
+
+ factory: partition@34000 {
+ label = "factory";
+ reg = <0x34000 0x4000>;
+ read-only;
+ };
+
+ nvram: partition@38000 {
+ label = "nvram";
+ reg = <0x38000 0x8000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "devconf";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "upgrade_rec";
+ reg = <0x50000 0x100000>;
+ read-only;
+ };
+
+ partition@150000 {
+ label = "firmware";
+ reg = <0x150000 0x6b0000>;
+ };
+ };
+};
+
+&gdma {
+ status = "okay";
+};
+
+&pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "wdt", "rgmii1";
+ ralink,function = "gpio";
+ };
+
+ pa {
+ ralink,group = "pa";
+ ralink,function = "pa";
+ };
+
+ wm8960_mclk_pins: wm8960_mclk {
+ wm8960_mclk {
+ ralink,group = "mdio";
+ ralink,function = "refclk";
+ };
+ };
+ };
+};
+
+&ethernet {
+ mtd-mac-address = <&factory 0x4>;
+};
+
+&gsw {
+ ralink,port4 = "ephy";
+};
+
+&wmac {
+ ralink,mtd-eeprom = <&factory 0>;
+};
+
diff --git a/target/linux/ramips/dts/mt7620a.dtsi b/target/linux/ramips/dts/mt7620a.dtsi
index 641d248e60..96966b4647 100644
--- a/target/linux/ramips/dts/mt7620a.dtsi
+++ b/target/linux/ramips/dts/mt7620a.dtsi
@@ -323,6 +323,13 @@
};
};
+ gpio_i2s_pins: gpio_i2s {
+ gpio_i2s {
+ ralink,group = "uartf";
+ ralink,function = "gpio i2s";
+ };
+ };
+
spi_pins: spi {
spi {
ralink,group = "spi";
diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
index b1afb82c00..8e1346ded2 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -41,6 +41,15 @@ define Build/elecom-header
$(STAGING_DIR_HOST)/bin/tar -cf $@ -C $(KDIR) v_0.0.0.bin v_0.0.0.md5
endef
+define Build/seama
+ $(STAGING_DIR_HOST)/bin/seama -i $@ $(1)
+ mv $@.seama $@
+endef
+
+define Build/seama-seal
+ $(call Build/seama,-s $@.seama $(1))
+endef
+
define Device/ArcherC20i
DTS := ArcherC20i
KERNEL := $(KERNEL_DTB)
@@ -413,3 +422,22 @@ define Device/tiny-ac
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci
endef
TARGET_DEVICES += tiny-ac
+
+dch_m225_mtd_size=7012352
+define Device/dch-m225
+ DTS := DCH-M225
+ IMAGES += factory.bin
+ IMAGE_SIZE := $(dch_m225_mtd_size)
+ IMAGE/sysupgrade.bin := \
+ append-kernel | pad-offset 65536 64 | append-rootfs | \
+ seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
+ pad-rootfs | check-size $$$$(IMAGE_SIZE)
+ IMAGE/factory.bin := \
+ append-kernel | pad-offset 65536 64 | append-rootfs | pad-rootfs -x 64 | \
+ seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \
+ seama-seal -m "signature=wapn22_dlink.2013gui_dap1320b" | \
+ check-size $$$$(IMAGE_SIZE)
+ DEVICE_TITLE := D-Link DCH-M225
+ DEVICE_PACKAGES := kmod-mt76
+endef
+TARGET_DEVICES += dch-m225