arm64: dts: ti: Enable audio on SK-AM62(-LP)
authorJai Luthra <j-luthra@ti.com>
Thu, 30 Mar 2023 09:44:06 +0000 (15:14 +0530)
committerNishanth Menon <nm@ti.com>
Thu, 30 Mar 2023 17:08:19 +0000 (12:08 -0500)
Add nodes for audio codec and sound card, enable the audio serializer
(McASP1) under use from SK-AM62 E2 [1] onwards and update pinmux.

Keep all audio related nodes in the common dtsi as they are exactly the
same between SK-AM62 and SK-AM62-LP [2].

Link: https://www.ti.com/lit/zip/sprr448
Link: https://www.ti.com/lit/zip/sprr471
Signed-off-by: Jai Luthra <j-luthra@ti.com>
Reviewed-by: Jayesh Choudhary <j-choudhary@ti.com>
Link: https://lore.kernel.org/r/20230313-mcasp_upstream-v10-2-94332149657a@ti.com
Signed-off-by: Nishanth Menon <nm@ti.com>
arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
arch/arm64/boot/dts/ti/k3-am625-sk.dts
arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi

index b2ca19e3042e221e4c3b8f01fcca085b861e2ec2..4b94f7a863166a9b11a823fe7af6d038944f3dcb 100644 (file)
                };
        };
 };
+
+&tlv320aic3106 {
+       DVDD-supply = <&buck2_reg>;
+};
index cdc0858dd1b2c6e9ceb8b136cad1af07669d7b86..2a1adda9bff6a42bdb480daa0da4d3fc1d895209 100644 (file)
                states = <1800000 0x0>,
                         <3300000 0x1>;
        };
+
+       vcc_1v8: regulator-5 {
+               /* output of TPS6282518DMQ */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_3v3_sys>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &main_pmx0 {
                };
        };
 };
+
+&tlv320aic3106 {
+       DVDD-supply = <&vcc_1v8>;
+};
index 80e8b9b9a5f5282d76942b2fbae2fd5da7d9e2de..976f8303c84f40c0addb7a817820a352343a4621 100644 (file)
                        default-state = "off";
                };
        };
+
+       tlv320_mclk: clk-0 {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <12288000>;
+       };
+
+       codec_audio: sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "AM62x-SKEVM";
+               simple-audio-card,widgets =
+                       "Headphone",    "Headphone Jack",
+                       "Line",         "Line In",
+                       "Microphone",   "Microphone Jack";
+               simple-audio-card,routing =
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "LINE1L",               "Line In",
+                       "LINE1R",               "Line In",
+                       "MIC3R",                "Microphone Jack",
+                       "Microphone Jack",      "Mic Bias";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp1>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3106>;
+                       clocks = <&tlv320_mclk>;
+               };
+       };
 };
 
 &main_pmx0 {
                        AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18/E16) USB1_DRVVBUS */
                >;
        };
+
+       main_mcasp1_pins_default: main-mcasp1-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x090, PIN_INPUT, 2) /* (M24) GPMC0_BE0N_CLE.MCASP1_ACLKX */
+                       AM62X_IOPAD(0x098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
+                       AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEN.MCASP1_AXR0 */
+                       AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23) GPMC0_ADVN_ALE.MCASP1_AXR2 */
+               >;
+       };
 };
 
 &wkup_uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_i2c1_pins_default>;
        clock-frequency = <400000>;
+
+       tlv320aic3106: audio-codec@1b {
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3106";
+               reg = <0x1b>;
+               ai3x-micbias-vg = <1>;  /* 2.0V */
+
+               /* Regulators */
+               AVDD-supply = <&vcc_3v3_sys>;
+               IOVDD-supply = <&vcc_3v3_sys>;
+               DRVDD-supply = <&vcc_3v3_sys>;
+       };
 };
 
 &sdhci0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_usb1_pins_default>;
 };
+
+&mcasp1 {
+       status = "okay";
+       #sound-dai-cells = <0>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcasp1_pins_default>;
+
+       op-mode = <0>;          /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+              1 0 2 0
+              0 0 0 0
+              0 0 0 0
+              0 0 0 0
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+};