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>
This commit is contained in:
Michael Lee 2016-05-02 11:57:40 +08:00 committed by John Crispin
parent 36d98e6c7a
commit c3e420f28c
9 changed files with 233 additions and 0 deletions

View file

@ -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"

View file

@ -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)

View file

@ -19,6 +19,7 @@ get_status_led() {
asl26555|\
br-6425|\
br-6475nd|\
dch-m225|\
dir-860l-b1|\
e1700|\
fonera20n|\

View file

@ -15,6 +15,7 @@ board=$(ramips_board_name)
case "$board" in
cy-swr1100 | \
dch-m225 | \
dir-645 | \
dir-860l-b1)
fix_seama_header

View file

@ -106,6 +106,9 @@ ramips_board_detect() {
*"DB-WRT01")
name="db-wrt01"
;;
*"DCH-M225")
name="dch-m225"
;;
*"DCS-930")
name="dcs-930"
;;

View file

@ -193,6 +193,7 @@ platform_check_image() {
return 0
;;
cy-swr1100|\
dch-m225|\
dir-610-a1|\
dir-645|\
dir-860l-b1)

View file

@ -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>;
};

View file

@ -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";

View file

@ -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