openwrtv4/target/linux/ramips/dts/DCH-M225.dts
Mathias Kresin a783185e28 ramips: fix DCH-M225 support
Setting the pins of the UARTF group to GPIO+I2S at the time the I2C
driver loads is to late for the wps GPIO button.

The gpio-keys driver fails to load since the pin used by the wps button
is not yet set to GPIO. The wps button with the rfkill keycode is
essential for this wireless only board.

Add the missing sound and I2C kernel modules corresponding to the
device nodes.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-11-22 08:21:52 +01:00

191 lines
3 KiB
Text

/dts-v1/;
#include "mt7620a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
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 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RFKILL>;
};
reset {
label = "reset";
gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
gpio-leds {
compatible = "gpio-leds";
power {
label = "dch-m225:green:power";
gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
};
status {
label = "dch-m225:red:status";
gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
};
};
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 GPIO_ACTIVE_LOW>;
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 = <&wm8960_mclk_pins>;
};
&spi0 {
status = "okay";
m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
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";
};
gpio_i2s {
ralink,group = "uartf";
ralink,function = "gpio i2s";
};
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>;
};