2023-03-29 10:39:29

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v9 0/6] arm64: ti: Enable audio on AM62 and AM62A

This patch series adds support for audio via headphone jack on SK-AM62
(E2+) and SK-AM62A boards. The jack is wired to TLV320AIC3106 (codec),
which is connected to McASP1 (serializer) on the SoC.

The TRRS 3.5mm jack can be used for simultaneous playback and recording.

Signed-off-by: Jai Luthra <[email protected]>
---
Changes in v9:
- Use correct codec 1.8V supply (PMIC) for SK-AM62-LP
- Link to v8: https://lore.kernel.org/r/[email protected]

The range-diff between v9 and v8 is given below:

1: 7555632dc2cc = 1: 321a9a26699b arm64: defconfig: Enable audio drivers for TI K3 SoCs
2: d79f2aebfcc3 = 2: 56253cd6ba31 arm64: dts: ti: k3-am62-main: Add McASP nodes
3: 1fc7976b17aa ! 3: c437bbe97ff7 arm64: dts: ti: k3-am625-sk: Enable audio on AM62 SK
@@ Commit message
Reviewed-by: Jayesh Choudhary <[email protected]>

## arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts ##
-@@ arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts: vddshv_sdio: regulator-4 {
- states = <1800000 0x0>,
- <3300000 0x1>;
+@@ arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts: ldo4_reg: ldo4 {
+ };
};
-+
-+ vcc_1v8: regulator-5 {
-+ /* output of TPS62824DMQ */
-+ 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 = <&buck2_reg>;
++};

## arch/arm64/boot/dts/ti/k3-am625-sk.dts ##
@@ arch/arm64/boot/dts/ti/k3-am625-sk.dts: vdd_sd_dv: regulator-4 {
@@ arch/arm64/boot/dts/ti/k3-am625-sk.dts: vdd_sd_dv: regulator-4 {
};

&main_pmx0 {
+@@ arch/arm64/boot/dts/ti/k3-am625-sk.dts: partition@3fc0000 {
+ };
+ };
+ };
++
++&tlv320aic3106 {
++ DVDD-supply = <&vcc_1v8>;
++};

## arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi ##
@@ arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi: led-0 {
@@ arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi: &main_i2c1 {
+ AVDD-supply = <&vcc_3v3_sys>;
+ IOVDD-supply = <&vcc_3v3_sys>;
+ DRVDD-supply = <&vcc_3v3_sys>;
-+ DVDD-supply = <&vcc_1v8>;
+ };
};

4: f08c0107849f = 4: de37e1738c5c arm64: dts: ti: k3-am62a-main: Add nodes for McASP
5: 70087cabf258 = 5: e2419b8646a7 arm64: dts: ti: k3-am62a7-sk: Split vcc_3v3 regulators
6: 411f0e171eec = 6: ca8472bcecb4 arm64: dts: ti: k3-am62a7-sk: Enable audio on AM62A

---
Jai Luthra (5):
arm64: defconfig: Enable audio drivers for TI K3 SoCs
arm64: dts: ti: k3-am625-sk: Enable audio on AM62 SK
arm64: dts: ti: k3-am62a-main: Add nodes for McASP
arm64: dts: ti: k3-am62a7-sk: Split vcc_3v3 regulators
arm64: dts: ti: k3-am62a7-sk: Enable audio on AM62A

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

arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts | 4 ++
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 60 +++++++++++++++++
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 15 +++++
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 60 +++++++++++++++++
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 92 +++++++++++++++++++++++++-
arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 76 +++++++++++++++++++++
arch/arm64/configs/defconfig | 2 +
7 files changed, 307 insertions(+), 2 deletions(-)
---
base-commit: f3910d4b06af57669b77c0afe829deca6d5a3ed2
change-id: 20230313-mcasp_upstream-0e137013059b

Best regards,
--
Jai Luthra <[email protected]>


2023-03-29 10:39:40

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v9 4/6] arm64: dts: ti: k3-am62a-main: Add nodes for McASP

Same as AM62, AM62A has three instances of McASP which can be used for
transmitting or receiving digital audio in various formats.

Signed-off-by: Jai Luthra <[email protected]>
Reviewed-by: Jayesh Choudhary <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 60 +++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
index 393a1a40b68b..50e4fcb1d678 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
@@ -660,4 +660,64 @@ ecap2: pwm@23120000 {
clock-names = "fck";
status = "disabled";
};
+
+ mcasp0: audio-controller@2b00000 {
+ compatible = "ti,am33xx-mcasp-audio";
+ reg = <0x00 0x02b00000 0x00 0x2000>,
+ <0x00 0x02b08000 0x00 0x400>;
+ reg-names = "mpu", "dat";
+ interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "tx", "rx";
+
+ dmas = <&main_bcdma 0 0xc500 0>, <&main_bcdma 0 0x4500 0>;
+ dma-names = "tx", "rx";
+
+ clocks = <&k3_clks 190 0>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 190 0>;
+ assigned-clock-parents = <&k3_clks 190 2>;
+ power-domains = <&k3_pds 190 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
+
+ mcasp1: audio-controller@2b10000 {
+ compatible = "ti,am33xx-mcasp-audio";
+ reg = <0x00 0x02b10000 0x00 0x2000>,
+ <0x00 0x02b18000 0x00 0x400>;
+ reg-names = "mpu", "dat";
+ interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "tx", "rx";
+
+ dmas = <&main_bcdma 0 0xc501 0>, <&main_bcdma 0 0x4501 0>;
+ dma-names = "tx", "rx";
+
+ clocks = <&k3_clks 191 0>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 191 0>;
+ assigned-clock-parents = <&k3_clks 191 2>;
+ power-domains = <&k3_pds 191 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
+
+ mcasp2: audio-controller@2b20000 {
+ compatible = "ti,am33xx-mcasp-audio";
+ reg = <0x00 0x02b20000 0x00 0x2000>,
+ <0x00 0x02b28000 0x00 0x400>;
+ reg-names = "mpu", "dat";
+ interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "tx", "rx";
+
+ dmas = <&main_bcdma 0 0xc502 0>, <&main_bcdma 0 0x4502 0>;
+ dma-names = "tx", "rx";
+
+ clocks = <&k3_clks 192 0>;
+ clock-names = "fck";
+ assigned-clocks = <&k3_clks 192 0>;
+ assigned-clock-parents = <&k3_clks 192 2>;
+ power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
};

--
2.40.0

2023-03-29 10:39:52

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v9 5/6] arm64: dts: ti: k3-am62a7-sk: Split vcc_3v3 regulators

VCC_3V3_MAIN is the output of LM5141-Q1, and it serves as an input to
TPS22965DSGT which produces VCC_3V3_SYS. [1]

Link: https://www.ti.com/lit/zip/sprr459 [1]
Signed-off-by: Jai Luthra <[email protected]>
Reviewed-by: Devarsh Thakkar <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index f6a67f072dca..2296d656323c 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -77,10 +77,10 @@ vcc_5v0: regulator-1 {
regulator-boot-on;
};

- vcc_3v3_sys: regulator-2 {
+ vcc_3v3_main: regulator-2 {
/* output of LM5141-Q1 */
compatible = "regulator-fixed";
- regulator-name = "vcc_3v3_sys";
+ regulator-name = "vcc_3v3_main";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vmain_pd>;
@@ -99,6 +99,17 @@ vdd_mmc1: regulator-3 {
gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
};

+ vcc_3v3_sys: regulator-4 {
+ /* output of TPS222965DSGT */
+ compatible = "regulator-fixed";
+ regulator-name = "vcc_3v3_sys";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&vcc_3v3_main>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";

--
2.40.0

2023-03-29 10:39:58

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v9 1/6] arm64: defconfig: Enable audio drivers for TI K3 SoCs

TI's K3 platform uses McASP as the digital audio interface on the SoCs.
AM62x and AM62A based starter kits also use the TLV320AIC3106 codec with
a 3.5mm jack for analog audio input and output.

Signed-off-by: Jai Luthra <[email protected]>
Reviewed-by: Devarsh Thakkar <[email protected]>
---
arch/arm64/configs/defconfig | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index ca3569261713..aa36792b6822 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -904,6 +904,8 @@ CONFIG_SND_SOC_LPASS_WSA_MACRO=m
CONFIG_SND_SOC_LPASS_VA_MACRO=m
CONFIG_SND_SOC_LPASS_RX_MACRO=m
CONFIG_SND_SOC_LPASS_TX_MACRO=m
+CONFIG_SND_SOC_DAVINCI_MCASP=m
+CONFIG_SND_SOC_TLV320AIC3X_I2C=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD2=m

--
2.40.0

2023-03-29 10:40:15

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v9 6/6] arm64: dts: ti: k3-am62a7-sk: Enable audio on AM62A

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

The codec (TLV320AIC3106) is also supplied with a DVDD 1.8V supply from
the PMIC (TPS6593x) on the SK. [1] As the PMIC driver and devicetree
node is missing, skip describing DVDD for now and manually set the OCMV
voltage.

Link: https://www.ti.com/lit/zip/sprr459 [1]
Signed-off-by: Jai Luthra <[email protected]>
Reviewed-by: Jayesh Choudhary <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 77 +++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index 2296d656323c..8d7087e5f9e4 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -123,6 +123,41 @@ led-0 {
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 = "AM62Ax-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 {
@@ -201,6 +236,15 @@ AM62AX_IOPAD(0x130, PIN_INPUT, 0) /* (AB17) RGMII1_TXC */
AM62AX_IOPAD(0x12c, PIN_INPUT, 0) /* (W16) RGMII1_TX_CTL */
>;
};
+
+ main_mcasp1_pins_default: main-mcasp1-pins-default {
+ pinctrl-single,pins = <
+ AM62AX_IOPAD(0x090, PIN_INPUT, 2) /* (L19) GPMC0_BE0n_CLE.MCASP1_ACLKX */
+ AM62AX_IOPAD(0x098, PIN_INPUT, 2) /* (R18) GPMC0_WAIT0.MCASP1_AFSX */
+ AM62AX_IOPAD(0x08c, PIN_OUTPUT, 2) /* (K19) GPMC0_WEn.MCASP1_AXR0 */
+ AM62AX_IOPAD(0x084, PIN_INPUT, 2) /* (L18) GPMC0_ADVn_ALE.MCASP1_AXR2 */
+ >;
+ };
};

&main_i2c0 {
@@ -235,6 +279,19 @@ exp1: gpio@22 {
"MCASP1_FET_SEL", "UART1_FET_SEL",
"PD_I2C_IRQ", "IO_EXP_TEST_LED";
};
+
+ tlv320aic3106: audio-codec@1b {
+ #sound-dai-cells = <0>;
+ compatible = "ti,tlv320aic3106";
+ reg = <0x1b>;
+ ai3x-micbias-vg = <1>; /* 2.0V */
+ ai3x-ocmv = <1>; /* 1.5V */
+
+ /* Regulators */
+ AVDD-supply = <&vcc_3v3_sys>;
+ IOVDD-supply = <&vcc_3v3_sys>;
+ DRVDD-supply = <&vcc_3v3_sys>;
+ };
};

&sdhci1 {
@@ -303,3 +360,23 @@ cpsw3g_phy0: ethernet-phy@0 {
ti,min-output-impedance;
};
};
+
+&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>;
+};

--
2.40.0

2023-03-29 10:40:20

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v9 3/6] arm64: dts: ti: k3-am625-sk: Enable audio on AM62 SK

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.

Link: https://www.ti.com/lit/zip/sprr448 [1]
Signed-off-by: Jai Luthra <[email protected]>
Reviewed-by: Jayesh Choudhary <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts | 4 ++
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 15 +++++
arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 76 ++++++++++++++++++++++++++
3 files changed, 95 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
index b2ca19e3042e..4b94f7a86316 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
@@ -225,3 +225,7 @@ ldo4_reg: ldo4 {
};
};
};
+
+&tlv320aic3106 {
+ DVDD-supply = <&buck2_reg>;
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
index cdc0858dd1b2..2a1adda9bff6 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
@@ -87,6 +87,17 @@ vdd_sd_dv: regulator-4 {
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 {
@@ -256,3 +267,7 @@ partition@3fc0000 {
};
};
};
+
+&tlv320aic3106 {
+ DVDD-supply = <&vcc_1v8>;
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index 54318a07d50c..e197ea5fa448 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -81,6 +81,41 @@ led-0 {
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 {
@@ -175,6 +210,15 @@ main_usb1_pins_default: main-usb1-pins-default {
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 {
@@ -205,6 +249,18 @@ &main_i2c1 {
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 {
@@ -272,3 +328,23 @@ &usb1 {
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>;
+};

--
2.40.0

2023-03-30 02:55:00

by Nishanth Menon

[permalink] [raw]
Subject: Re: [PATCH v9 6/6] arm64: dts: ti: k3-am62a7-sk: Enable audio on AM62A

On 16:01-20230329, Jai Luthra wrote:
> Add nodes for audio codec and sound card, enable the audio serializer
> (McASP1) under use and update pinmux.
>
> The codec (TLV320AIC3106) is also supplied with a DVDD 1.8V supply from
> the PMIC (TPS6593x) on the SK. [1] As the PMIC driver and devicetree
> node is missing, skip describing DVDD for now and manually set the OCMV
> voltage.

Please drop the am62a7 series from this patch series. once you add PMIC
device tree property, then lets add the dvdd properly rather than
reworking this again.

>
> Link: https://www.ti.com/lit/zip/sprr459 [1]
> Signed-off-by: Jai Luthra <[email protected]>
> Reviewed-by: Jayesh Choudhary <[email protected]>
> ---
> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 77 +++++++++++++++++++++++++++++++++
> 1 file changed, 77 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> index 2296d656323c..8d7087e5f9e4 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
> @@ -123,6 +123,41 @@ led-0 {
> 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 = "AM62Ax-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 {
> @@ -201,6 +236,15 @@ AM62AX_IOPAD(0x130, PIN_INPUT, 0) /* (AB17) RGMII1_TXC */
> AM62AX_IOPAD(0x12c, PIN_INPUT, 0) /* (W16) RGMII1_TX_CTL */
> >;
> };
> +
> + main_mcasp1_pins_default: main-mcasp1-pins-default {
> + pinctrl-single,pins = <
> + AM62AX_IOPAD(0x090, PIN_INPUT, 2) /* (L19) GPMC0_BE0n_CLE.MCASP1_ACLKX */
> + AM62AX_IOPAD(0x098, PIN_INPUT, 2) /* (R18) GPMC0_WAIT0.MCASP1_AFSX */
> + AM62AX_IOPAD(0x08c, PIN_OUTPUT, 2) /* (K19) GPMC0_WEn.MCASP1_AXR0 */
> + AM62AX_IOPAD(0x084, PIN_INPUT, 2) /* (L18) GPMC0_ADVn_ALE.MCASP1_AXR2 */
> + >;
> + };
> };
>
> &main_i2c0 {
> @@ -235,6 +279,19 @@ exp1: gpio@22 {
> "MCASP1_FET_SEL", "UART1_FET_SEL",
> "PD_I2C_IRQ", "IO_EXP_TEST_LED";
> };
> +
> + tlv320aic3106: audio-codec@1b {
> + #sound-dai-cells = <0>;
> + compatible = "ti,tlv320aic3106";
> + reg = <0x1b>;
> + ai3x-micbias-vg = <1>; /* 2.0V */
> + ai3x-ocmv = <1>; /* 1.5V */
> +
> + /* Regulators */
> + AVDD-supply = <&vcc_3v3_sys>;
> + IOVDD-supply = <&vcc_3v3_sys>;
> + DRVDD-supply = <&vcc_3v3_sys>;
> + };
> };
>
> &sdhci1 {
> @@ -303,3 +360,23 @@ cpsw3g_phy0: ethernet-phy@0 {
> ti,min-output-impedance;
> };
> };
> +
> +&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>;
> +};
>
> --
> 2.40.0
>

--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D

2023-03-30 02:56:25

by Nishanth Menon

[permalink] [raw]
Subject: Re: [PATCH v9 1/6] arm64: defconfig: Enable audio drivers for TI K3 SoCs

$subject: I think you meant to state TLV320AIC3106 is needed for AM62 SK
boards than K3 SoCs ;)

On 16:00-20230329, Jai Luthra wrote:
> TI's K3 platform uses McASP as the digital audio interface on the SoCs.
> AM62x and AM62A based starter kits also use the TLV320AIC3106 codec with
> a 3.5mm jack for analog audio input and output.
>
> Signed-off-by: Jai Luthra <[email protected]>
> Reviewed-by: Devarsh Thakkar <[email protected]>
> ---
> arch/arm64/configs/defconfig | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
> index ca3569261713..aa36792b6822 100644
> --- a/arch/arm64/configs/defconfig
> +++ b/arch/arm64/configs/defconfig
> @@ -904,6 +904,8 @@ CONFIG_SND_SOC_LPASS_WSA_MACRO=m
> CONFIG_SND_SOC_LPASS_VA_MACRO=m
> CONFIG_SND_SOC_LPASS_RX_MACRO=m
> CONFIG_SND_SOC_LPASS_TX_MACRO=m
> +CONFIG_SND_SOC_DAVINCI_MCASP=m
> +CONFIG_SND_SOC_TLV320AIC3X_I2C=m
> CONFIG_SND_SIMPLE_CARD=m
> CONFIG_SND_AUDIO_GRAPH_CARD=m
> CONFIG_SND_AUDIO_GRAPH_CARD2=m
>
> --
> 2.40.0
>

please pay attention to savedefconfig output.

Something like this is more appropriate?

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index ca3569261713..a13119aecaa1 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -877,6 +877,7 @@ CONFIG_SND_SOC_TEGRA210_AMX=m
CONFIG_SND_SOC_TEGRA210_ADX=m
CONFIG_SND_SOC_TEGRA210_MIXER=m
CONFIG_SND_SOC_TEGRA_AUDIO_GRAPH_CARD=m
+CONFIG_SND_SOC_DAVINCI_MCASP=m
CONFIG_SND_SOC_AK4613=m
CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES7241=m
@@ -891,6 +892,7 @@ CONFIG_SND_SOC_SIMPLE_MUX=m
CONFIG_SND_SOC_TAS2552=m
CONFIG_SND_SOC_TAS571X=m
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC3X_I2C=m
CONFIG_SND_SOC_WCD9335=m
CONFIG_SND_SOC_WCD934X=m
CONFIG_SND_SOC_WM8524=m
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D