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

Paresh Bhagat p-bhagat at ti.com
Sat Feb 14 00:23:43 PST 2026


From: Vishnu Singh <v-singh1 at ti.com>

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 at ti.com>
Signed-off-by: Sen Wang <sen at ti.com>
Signed-off-by: Paresh Bhagat <p-bhagat at ti.com>
---
 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 at 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 at 20 {
 				  "CPLD2_TDO", "ADDR1_IO_EXP",
 				  "SoC_I2C0_SCL", "SoC_I2C0_SDA";
 	};
+
+	pcm6240: adc at 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




More information about the linux-arm-kernel mailing list