Commit 3a36c535 authored by Jayesh Choudhary's avatar Jayesh Choudhary Committed by Vignesh Raghavendra
Browse files

arm64: dts: ti: k3-j722s-evm: Enable analog audio support

The audio support on J722S-EVM is using TLV320AIC3106[0] codec
connected to McASP1 serializers.

- Add the nodes for sound-card, audio codec and McASP1.
- Add hog for TRC_MUX_SEL to select between McASP and TRACE signals
- Add hogs for GPIO_AUD_RSTn and MCASP1_FET_SEL which is used to
  switch between HDMI audio and codec audio.
- Add pinmux for MCASP1 and AUDIO_EXT_REFCLK1.

[0]: <https://www.ti.com/lit/gpn/TLV320AIC3106

>

Signed-off-by: default avatarJayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: default avatarJai Luthra <j-luthra@ti.com>
Link: https://lore.kernel.org/r/20240625113301.217369-3-j-choudhary@ti.com


Signed-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
parent a5cd7067
Loading
Loading
Loading
Loading
+109 −0
Original line number Diff line number Diff line
@@ -107,6 +107,15 @@ vdd_sd_dv: regulator-TLV71033 {
			 <3300000 0x1>;
	};

	vsys_io_3v3: regulator-vsys-io-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "vsys_io_3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
	};

	vsys_io_1v8: regulator-vsys-io-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "vsys_io_1v8";
@@ -124,6 +133,35 @@ vsys_io_1v2: regulator-vsys-io-1v2 {
		regulator-always-on;
		regulator-boot-on;
	};

	codec_audio: sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "J722S-EVM";
		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 = <&audio_refclk1>;
		};
	};
};

&main_pmx0 {
@@ -210,6 +248,21 @@ main_usb1_pins_default: main-usb1-default-pins {
			J722S_IOPAD(0x0258, PIN_INPUT, 0) /* (B27) USB1_DRVVBUS */
		>;
	};

	main_mcasp1_pins_default: main-mcasp1-default-pins {
		pinctrl-single,pins = <
			J722S_IOPAD(0x0090, PIN_INPUT, 2) /* (P27) GPMC0_BE0n_CLE.MCASP1_ACLKX */
			J722S_IOPAD(0x0098, PIN_INPUT, 2) /* (V21) GPMC0_WAIT0.MCASP1_AFSX */
			J722S_IOPAD(0x008c, PIN_OUTPUT, 2) /* (N23) GPMC0_WEn.MCASP1_AXR0 */
			J722S_IOPAD(0x0084, PIN_INPUT, 2) /* (N21) GPMC0_ADVn_ALE.MCASP1_AXR2 */
		>;
	};

	audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
		pinctrl-single,pins = <
			J722S_IOPAD(0x00a0, PIN_OUTPUT, 1) /* (N24) GPMC0_WPn.AUDIO_EXT_REFCLK1 */
		>;
	};
};

&cpsw3g {
@@ -285,6 +338,12 @@ &wkup_i2c0 {
	bootph-all;
};

&k3_clks {
	/* Configure AUDIO_EXT_REFCLK1 pin as output */
	pinctrl-names = "default";
	pinctrl-0 = <&audio_ext_refclk1_pins_default>;
};

&main_i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c0_pins_default>;
@@ -316,6 +375,41 @@ p05-hog {
			gpios = <5 GPIO_ACTIVE_HIGH>;
			output-high;
		};

		p01_hog: p01-hog {
			/* P01 - TRC_MUX_SEL */
			gpio-hog;
			gpios = <0 GPIO_ACTIVE_HIGH>;
			output-low;
			line-name = "TRC_MUX_SEL";
		};

		p02_hog: p02-hog {
			/* P02 - MCASP1_FET_SEL */
			gpio-hog;
			gpios = <2 GPIO_ACTIVE_HIGH>;
			output-high;
			line-name = "MCASP1_FET_SEL";
		};

		p13_hog: p13-hog {
			/* P13 - GPIO_AUD_RSTn */
			gpio-hog;
			gpios = <13 GPIO_ACTIVE_HIGH>;
			output-high;
			line-name = "GPIO_AUD_RSTn";
		};
	};

	tlv320aic3106: audio-codec@1b {
		#sound-dai-cells = <0>;
		compatible = "ti,tlv320aic3106";
		reg = <0x1b>;
		ai3x-micbias-vg = <1>;  /* 2.0V */
		AVDD-supply = <&vsys_io_3v3>;
		IOVDD-supply = <&vsys_io_3v3>;
		DRVDD-supply = <&vsys_io_3v3>;
		DVDD-supply = <&vsys_io_1v8>;
	};
};

@@ -457,3 +551,18 @@ &usb1 {
	phys = <&serdes0_usb_link>;
	phy-names = "cdns3,usb3-phy";
};

&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
	>;
};