[source] ramips: Add support for D-Link DCH-M225

LEDE Commits lede-commits at lists.infradead.org
Mon Jul 11 05:19:58 PDT 2016


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=c3e420f28cf1ed229753f94bafdb0d5851748af3

commit c3e420f28cf1ed229753f94bafdb0d5851748af3
Author: Michael Lee <igvtee at gmail.com>
AuthorDate: Mon May 2 11:57:40 2016 +0800

    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 at gmail.com>
---
 target/linux/ramips/base-files/etc/board.d/01_leds |   4 +
 .../linux/ramips/base-files/etc/board.d/02_network |   4 +
 target/linux/ramips/base-files/etc/diag.sh         |   1 +
 .../etc/uci-defaults/09_fix-seama-header           |   1 +
 target/linux/ramips/base-files/lib/ramips.sh       |   3 +
 .../ramips/base-files/lib/upgrade/platform.sh      |   1 +
 target/linux/ramips/dts/DCH-M225.dts               | 184 +++++++++++++++++++++
 target/linux/ramips/dts/mt7620a.dtsi               |   7 +
 target/linux/ramips/image/mt7620.mk                |  28 ++++
 9 files changed, 233 insertions(+)

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 0e30ba0..695b0c1 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 f8b8ec6..c1c5f81 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 e9d623d..da0cecd 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 7a0a325..f8d408d 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 b6ccd5a..565d513 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 c4d3c01..88547ca 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 0000000..3c2de8d
--- /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 at 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 at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		linux,modalias = "m25p80";
+		spi-max-frequency = <80000000>;
+		m25p,fast-read;
+
+		partition at 0 {
+			label = "u-boot";
+			reg = <0x0 0x30000>;
+			read-only;
+		};
+
+		partition at 30000 {
+			label = "u-boot-env";
+			reg = <0x30000 0x4000>;
+			read-only;
+		};
+
+		factory: partition at 34000 {
+			label = "factory";
+			reg = <0x34000 0x4000>;
+			read-only;
+		};
+
+		nvram: partition at 38000 {
+			label = "nvram";
+			reg = <0x38000 0x8000>;
+			read-only;
+		};
+
+		partition at 40000 {
+			label = "devconf";
+			reg = <0x40000 0x10000>;
+			read-only;
+		};
+
+		partition at 50000 {
+			label = "upgrade_rec";
+			reg = <0x50000 0x100000>;
+			read-only;
+		};
+
+		partition at 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 641d248..96966b4 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 b1afb82..8e1346d 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



More information about the lede-commits mailing list