2022-04-27 11:36:16

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v3 0/2] arm64: ti: k3-am62: Enable audio output

This patch series adds support for audio output via headphone jack on the
AM62-SK board. The jack is wired to TLV320AIC3106 (codec), which is
connected to McASP (serializer).

The same 3.5mm jack can be used for combined playback+recording, but audio
input is currently disabled on McASP until further testing and debugging.

For testing, please apply this series on top of
https://lore.kernel.org/all/[email protected]/ and
https://lore.kernel.org/alsa-devel/[email protected]/

v3:
Fix regulator, clock and codec node names

v2:
Move out the patch for sound/soc/ti/davinici-mcasp.c into a separate series

v2: https://lore.kernel.org/all/[email protected]/
v1: https://lore.kernel.org/all/[email protected]/

Jai Luthra (1):
arm64: dts: ti: am625-sk: Add audio output support

Jayesh Choudhary (1):
arm64: dts: ti: k3-am62-main: Add McASP nodes

arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 51 ++++++++++++++
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 89 ++++++++++++++++++++++++
2 files changed, 140 insertions(+)

--
2.17.1


2022-04-27 11:36:20

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v3 2/2] arm64: dts: ti: am625-sk: Add audio output support

Add nodes for audio codec and sound card, enable the audio serializer
(McASP1) under use and update pinmux. Disable all other McASP nodes.

Audio input is currently not working properly, so the RX port on McASP1
is disabled for now, until the issue is debugged.

The serializer is shared between HDMI and codec. By default codec is
used for output, but it can be toggled to HDMI using a FET switch
connected to the MCASP1_FET_SEL (J24) header on the board.

Signed-off-by: Jai Luthra <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 89 ++++++++++++++++++++++++++
1 file changed, 89 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
index 5c38ee5ff9b2..d082099b4efb 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
@@ -121,6 +121,46 @@
<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;
+ };
+
+ tlv320_mclk: clk-0 {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <12288000>;
+ };
+
+ sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "AM62x-SKEVM";
+ simple-audio-card,widgets =
+ "Headphone", "Headphone Jack";
+ simple-audio-card,routing =
+ "Headphone Jack", "HPLOUT",
+ "Headphone Jack", "HPROUT";
+ 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>;
+ };
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@@ -266,6 +306,15 @@
AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
>;
};
+
+ main_mcasp1_pins_default: main-mcasp1-pins-default {
+ pinctrl-single,pins = <
+ AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0N_CLE.MCASP1_ACLKX */
+ AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
+ AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEN.MCASP1_AXR0 */
+ AM62X_IOPAD(0x0084, PIN_INPUT, 2) /* (L23) GPMC0_ADVN_ALE.MCASP1_AXR2 */
+ >;
+ };
};

&wkup_uart0 {
@@ -352,6 +401,18 @@
pinctrl-names = "default";
pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
};
+
+ tlv320aic3106: audio-codec@1b {
+ #sound-dai-cells = <0>;
+ compatible = "ti,tlv320aic3106";
+ reg = <0x1b>;
+
+ /* Regulators */
+ AVDD-supply = <&vcc_3v3_sys>;
+ IOVDD-supply = <&vcc_3v3_sys>;
+ DRVDD-supply = <&vcc_3v3_sys>;
+ DVDD-supply = <&vcc_1v8>;
+ };
};

&main_i2c2 {
@@ -412,6 +473,34 @@
};
};

+&mcasp0 {
+ status = "disabled";
+};
+
+&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 0 0
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+ >;
+ tx-num-evt = <32>;
+ rx-num-evt = <32>;
+};
+
+&mcasp2 {
+ status = "disabled";
+};
+
&mailbox0_cluster0 {
mbox_m4_0: mbox-m4-0 {
ti,mbox-rx = <0 0 0>;
--
2.17.1

2022-05-06 18:47:52

by Devarsh Thakkar

[permalink] [raw]
Subject: Re: [PATCH v3 0/2] arm64: ti: k3-am62: Enable audio output

On 27/04/22 14:20, Jai Luthra wrote:
> This patch series adds support for audio output via headphone jack on the
> AM62-SK board. The jack is wired to TLV320AIC3106 (codec), which is
> connected to McASP (serializer).
>
> The same 3.5mm jack can be used for combined playback+recording, but audio
> input is currently disabled on McASP until further testing and debugging.
>
> For testing, please apply this series on top of
> https://lore.kernel.org/all/[email protected]/ and
> https://lore.kernel.org/alsa-devel/[email protected]/
>
> v3:
> Fix regulator, clock and codec node names

The series looks good to me.

Reviewed-by: Devarsh Thakkar <[email protected]>

>
> v2:
> Move out the patch for sound/soc/ti/davinici-mcasp.c into a separate series
>
> v2: https://lore.kernel.org/all/[email protected]/
> v1: https://lore.kernel.org/all/[email protected]/
>
> Jai Luthra (1):
> arm64: dts: ti: am625-sk: Add audio output support
>
> Jayesh Choudhary (1):
> arm64: dts: ti: k3-am62-main: Add McASP nodes
>
> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 51 ++++++++++++++
> arch/arm64/boot/dts/ti/k3-am625-sk.dts | 89 ++++++++++++++++++++++++
> 2 files changed, 140 insertions(+)
>