arm64: dts: rockchip: Add analog audio on Quartz64
authorNicolas Frattaroli <frattaroli.nicolas@gmail.com>
Sat, 16 Oct 2021 10:53:53 +0000 (12:53 +0200)
committerHeiko Stuebner <heiko@sntech.de>
Sun, 17 Oct 2021 12:35:05 +0000 (14:35 +0200)
On the Quartz64 Model A, the I2S1 TDM controller is connected
to the rk817 codec in I2S mode. Enabling it and adding the
necessary simple-sound-card and codec nodes allows for analog
audio output on the PINE64 Quartz64 Model A SBC.

Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
Link: https://lore.kernel.org/r/20211016105354.116513-5-frattaroli.nicolas@gmail.com
[some property sorting]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts

index b862d10b04f39018002b50d370c624af2054883b..4d4b2a301b1a460fcf0124d1126d3b174157243b 100644 (file)
                };
        };
 
+       rk817-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Analog RK817";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk817>;
+               };
+       };
+
        spdif_dit: spdif-dit {
                compatible = "linux,spdif-dit";
                #sound-dai-cells = <0>;
                reg = <0x20>;
                interrupt-parent = <&gpio0>;
                interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+               assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+               clock-names = "mclk";
+               clocks = <&cru I2S1_MCLKOUT_TX>;
                clock-output-names = "rk808-clkout1", "rk808-clkout2";
-
+               #clock-cells = <1>;
                pinctrl-names = "default";
-               pinctrl-0 = <&pmic_int_l>;
+               pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
                rockchip,system-power-controller;
+               #sound-dai-cells = <0>;
                wakeup-source;
-               #clock-cells = <1>;
 
                vcc1-supply = <&vcc_sys>;
                vcc2-supply = <&vcc_sys>;
        };
 };
 
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx
+                    &i2s1m0_lrcktx
+                    &i2s1m0_sdi0
+                    &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
 &mdio1 {
        rgmii_phy1: ethernet-phy@0 {
                compatible = "ethernet-phy-ieee802.3-c22";