arm64: dts: allwinner: pinephone: Add support for Bluetooth audio
authorSamuel Holland <samuel@sholland.org>
Fri, 30 Apr 2021 03:58:58 +0000 (22:58 -0500)
committerMaxime Ripard <maxime@cerno.tech>
Tue, 11 May 2021 08:17:52 +0000 (10:17 +0200)
The PinePhone has a Bluetooth chip with its PCM interface connected to
AIF3. Add the DAI link so headeset audio can be routed in hardware.

Even though the link is 16 bit PCM, configuring the link a 32-bit slot
is required for compatibility with AIF2, which also uses a 32-bit slot,
and which shares clock dividers with AIF3. Using equal clock frequencies
allows the modem and headset to be used at the same time.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20210430035859.3487-7-samuel@sholland.org
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi

index 79adea3f8cc16aaf42f64568f164d35d4251b209..4759cd97684389efb5a020bf0decc6327cb8562c 100644 (file)
                /* Backlight configuration differs per PinePhone revision. */
        };
 
+       bt_sco_codec: bt-sco-codec {
+               #sound-dai-cells = <1>;
+               compatible = "linux,bt-sco";
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
@@ -91,6 +96,8 @@
 };
 
 &codec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&aif3_pins>;
        status = "okay";
 };
 
                        "MIC1", "Internal Microphone",
                        "Headset Microphone", "HBIAS",
                        "MIC2", "Headset Microphone";
+
+       simple-audio-card,dai-link@2 {
+               format = "dsp_a";
+               frame-master = <&link2_codec>;
+               bitclock-master = <&link2_codec>;
+               bitclock-inversion;
+
+               link2_cpu: cpu {
+                       sound-dai = <&bt_sco_codec 0>;
+               };
+
+               link2_codec: codec {
+                       sound-dai = <&codec 2>;
+                       dai-tdm-slot-num = <1>;
+                       dai-tdm-slot-width = <32>;
+               };
+       };
 };
 
 &uart0 {