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

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.comSigned-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
parent a5cd7067
......@@ -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
>;
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment