--- bcm2837-rpi-3-b-plus.orig.dts +++ bcm2837-rpi-3-b-plus.rpi-amp.dts @@ -89,7 +89,7 @@ phandle = < 0x1c >; }; - gpio@7e200000 { + gpio: gpio@7e200000 { compatible = "brcm,bcm2835-gpio"; reg = < 0x7e200000 0xb4 >; interrupts = < 0x02 0x11 0x02 0x12 0x02 0x13 0x02 0x14 >; @@ -344,6 +344,12 @@ brcm,pins = < 0x04 0x05 0x07 0x08 0x09 0x0a 0x0b >; brcm,function = < 0x04 >; }; + + i2s_alt0: i2s_alt0 { + brcm,pins = < 18 19 20 21 >; + brcm,function = < 0x04 >; + }; + }; serial@7e201000 { @@ -377,13 +383,16 @@ bus-width = < 0x04 >; }; - i2s@7e203000 { + i2s0: i2s@7e203000 { + #sound-dai-cells= <0>; compatible = "brcm,bcm2835-i2s"; reg = < 0x7e203000 0x24 >; clocks = < 0x06 0x1f >; - status = "disabled"; dmas = < 0x0b 0x02 0x0b 0x03 >; dma-names = "tx\0rx"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2s_alt0>; }; spi@7e204000 { @@ -538,6 +547,13 @@ pinctrl-names = "default"; pinctrl-0 = < 0x15 >; clock-frequency = < 0x186a0 >; + + tas5825m: tas5825m@4c { + compatible = "ti,tas5825m"; + reg = < 0x4c >; + pdn-gpios = < &gpio 27 0x01 >; + #sound-dai-cells = < 0x00 >; + }; }; vec@7e806000 { @@ -837,4 +853,20 @@ reset-gpios = < 0x0a 0x01 0x01 >; phandle = < 0x14 >; }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "tas5825m"; + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&dailink0_master>; + simple-audio-card,frame-master = <&dailink0_master>; + + dailink0_master: simple-audio-card,cpu { + sound-dai = <&i2s0>; + }; + + simple-audio-card,codec { + sound-dai = <&tas5825m>; + }; + }; };