From: Michael Lee Date: Mon, 2 May 2016 03:57:40 +0000 (+0800) Subject: ramips: Add support for D-Link DCH-M225 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c3e420f28cf1ed229753f94bafdb0d5851748af3;p=librecmc%2Flibrecmc.git 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 --- 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"; + }; + }; + }; +}; + +ðernet { + 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