[PATCH RFC] arm64: dts: allwinner: a523: Add SPDIF to x96qproplus device
Per Larsson <[email protected]>
| Newsgroups | dev.linux.lists.linux-sunxi,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
When spdif support was added for the Allwinner A523 family of SoCs, only two of the three possible pins were added to the dtsi, since the third would clash with the first ethernet port (emac0) However, some devices don't use emac0 and instead use emac1 for the only available ethernet port, leaving the pin free to use for spdif. Add it to the dtsi, and to such a device where this pin is used for spdif Signed-off-by: Per Larsson <[email protected]> --- Marking this as RFC for a few reasons 1. This is my first submission, hoping everything is properly organized. 2. My testing setup is not the best: I get sound with this patch, but the pulseaudio daemon needs to be restarted far too often. Hopefully it's just something on this minirootfs. Testing welcome. 3. Not sure where to get the hash for a fixes tag or if that's even OK --- .../arm64/boot/dts/allwinner/sun55i-a523.dtsi | 7 ++++++ .../dts/allwinner/sun55i-h728-x96qpro+.dts | 24 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi index ca6a16807049..7370e8ed24ec 100644 --- a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi @@ -216,6 +216,13 @@ spdif_out_pb_pin: spdif-pb-pin { allwinner,pinmux = <2>; }; + /omit-if-no-ref/ + spdif_out_ph_pin: spdif-ph-pin { + pins = "PH7"; + function = "spdif"; + allwinner,pinmux = <4>; + }; + /omit-if-no-ref/ spdif_out_pi_pin: spdif-pi-pin { pins = "PI10"; diff --git a/arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts b/arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts index a96927fbdadd..b172985583f8 100644 --- a/arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts +++ b/arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts @@ -44,6 +44,24 @@ reg_vcc3v3: vcc3v3 { vin-supply = <®_vcc5v>; regulator-always-on; }; + + sound-spdif { + compatible = "simple-audio-card"; + simple-audio-card,name = "spdif-out"; + + simple-audio-card,cpu { + sound-dai = <&spdif>; + }; + + simple-audio-card,codec { + sound-dai = <&spdif_out>; + }; + }; + + spdif_out: spdif-out { + #sound-dai-cells = <0>; + compatible = "linux,spdif-dit"; + }; }; &ehci0 { @@ -275,6 +293,12 @@ &r_pio { vcc-pm-supply = <®_aldo3>; }; +&spdif { + pinctrl-names = "default"; + pinctrl-0 = <&spdif_out_ph_pin>; + status = "okay"; +}; + &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; -- 2.48.1