[PATCH 2/2] arm64: dts: ti: k3-am62d2-evm: Add PCM6240 ADC support

From: Paresh Bhagat

Date: Sat Feb 14 2026 - 03:25:18 EST


From: Vishnu Singh <v-singh1@xxxxxx>

Enable multi-channel audio record functionality for AM62D2-EVM with
PCM6240 ADC enablement, McASP2 interface, and corresponding pin
multiplexing.

Audio recording for AM62D2-EVM is managed by 2 PCM6240 ADC devices with
each supporting 4 channel audio input with selectable profiles for
different I2C addresses. These are connected through McASP2 and AXR14
serializer.

Tech Ref Manual-https://www.ti.com/lit/pdf/sprujd4
Schematics Link-https://www.ti.com/lit/zip/sprcal5

Signed-off-by: Vishnu Singh <v-singh1@xxxxxx>
Signed-off-by: Sen Wang <sen@xxxxxx>
Signed-off-by: Paresh Bhagat <p-bhagat@xxxxxx>
---
arch/arm64/boot/dts/ti/k3-am62d2-evm.dts | 63 ++++++++++++++++++++++++
1 file changed, 63 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
index a5d5dc0a7bec..156fca927164 100644
--- a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
@@ -181,6 +181,29 @@ vddshv_sdio: regulator-6 {
bootph-all;
};

+ codec_audio: sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "AM62D2-EVM";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ simple-audio-card,dai-link@0 {
+ reg = <0>;
+ format = "dsp_a";
+ bitclock-master = <&master0>;
+ frame-master = <&master0>;
+
+ master0: cpu {
+ sound-dai = <&mcasp2>;
+ system-clock-direction-out;
+ };
+
+ codec {
+ sound-dai = <&pcm6240>;
+ };
+ };
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@@ -337,6 +360,20 @@ AM62DX_IOPAD(0x0164, PIN_OUTPUT, 0) /* (Y19) RGMII2_TX_CTL */
bootph-all;
};

+ main_mcasp2_pins_default: main-mcasp2-default-pins {
+ pinctrl-single,pins = <
+ AM62DX_IOPAD(0x0078, PIN_INPUT, 3) /* (T21) GPMC0_AD15.MCASP2_ACLKR */
+ AM62DX_IOPAD(0x0070, PIN_INPUT, 3) /* (R21) GPMC0_AD13.MCASP2_ACLKX */
+ AM62DX_IOPAD(0x0074, PIN_INPUT, 3) /* (T20) GPMC0_AD14.MCASP2_AFSR */
+ AM62DX_IOPAD(0x006c, PIN_INPUT, 3) /* (T22) GPMC0_AD12.MCASP2_AFSX */
+ AM62DX_IOPAD(0x005c, PIN_INPUT, 3) /* (P22) GPMC0_AD8.MCASP2_AXR0 */
+ AM62DX_IOPAD(0x0060, PIN_INPUT, 3) /* (R19) GPMC0_AD9.MCASP2_AXR1 */
+ AM62DX_IOPAD(0x0068, PIN_INPUT, 3) /* (R22) GPMC0_AD11.MCASP2_AXR3 */
+ AM62DX_IOPAD(0x003c, PIN_INPUT, 3) /* (N21) GPMC0_AD0.MCASP2_AXR4 */
+ AM62DX_IOPAD(0x00a8, PIN_INPUT, 3) /* (M19) GPMC0_CSn0.MCASP2_AXR14 */
+ >;
+ };
+
main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins {
pinctrl-single,pins = <
AM62DX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C15) UART0_RTSn.GPIO1_23 */
@@ -453,6 +490,12 @@ exp2: gpio@20 {
"CPLD2_TDO", "ADDR1_IO_EXP",
"SoC_I2C0_SCL", "SoC_I2C0_SDA";
};
+
+ pcm6240: adc@48 {
+ compatible = "ti,pcm6240";
+ reg = <0x48>, <0x49>;
+ #sound-dai-cells = <0>;
+ };
};

&main_i2c1 {
@@ -469,6 +512,26 @@ &main_i2c2 {
status = "okay";
};

+&mcasp2 {
+ status = "okay";
+ #sound-dai-cells = <0>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_mcasp2_pins_default>;
+
+ auxclk-fs-ratio = <2177>;
+ op-mode = <0>; /* MCASP_IIS_MODE */
+ tdm-slots = <2>;
+ tdm-slots-rx = <8>;
+ ti,async-mode;
+ serial-dir = <
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 2 0
+ >;
+};
+
&wkup_i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&wkup_i2c0_pins_default>;
--
2.34.1