Commit 28c0cf16 authored by Garrett Giordano's avatar Garrett Giordano Committed by Nishanth Menon

arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Add Audio Codec

The Audio Codec runs over the MCASP (Multichannel Audio Serial Port).

Add pinmux for the Audio Reference Clock and MCASP2.

Add DT nodes for Audio Codec, MCASP2, VCC 1v8 and VCC 3v3 regulators.

Additionally, create a sound node that connects our sound card and the
MCASP2.
Signed-off-by: default avatarGarrett Giordano <ggiordano@phytec.com>
Reviewed-by: default avatarWadim Egorov <w.egorov@phytec.de>
Link: https://lore.kernel.org/r/20240404184250.3772829-1-ggiordano@phytec.comSigned-off-by: default avatarNishanth Menon <nm@ti.com>
parent b3f62948
......@@ -66,6 +66,35 @@ key-menu {
};
};
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "phyBOARD-Lyra";
simple-audio-card,widgets =
"Microphone", "Mic Jack",
"Headphone", "Headphone Jack",
"Speaker", "External Speaker";
simple-audio-card,routing =
"MIC3R", "Mic Jack",
"Mic Jack", "Mic Bias",
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"External Speaker", "SPOP",
"External Speaker", "SPOM";
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 = <&mcasp2>;
};
sound_master: simple-audio-card,codec {
sound-dai = <&audio_codec>;
clocks = <&audio_refclk1>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
......@@ -82,6 +111,15 @@ led-2 {
};
};
vcc_1v8: regulator-vcc-1v8 {
compatible = "regulator-fixed";
regulator-name = "VCC_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
};
vcc_3v3_mmc: regulator-vcc-3v3-mmc {
compatible = "regulator-fixed";
regulator-name = "VCC_3V3_MMC";
......@@ -90,9 +128,24 @@ vcc_3v3_mmc: regulator-vcc-3v3-mmc {
regulator-always-on;
regulator-boot-on;
};
vcc_3v3_sw: regulator-vcc-3v3-sw {
compatible = "regulator-fixed";
regulator-name = "VCC_3V3_SW";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-boot-on;
};
};
&main_pmx0 {
audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x0a0, PIN_OUTPUT, 1) /* (K25) GPMC0_WPn.AUDIO_EXT_REFCLK1 */
>;
};
gpio_keys_pins_default: gpio-keys-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x1d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
......@@ -150,6 +203,15 @@ AM62X_IOPAD(0x1d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */
>;
};
main_mcasp2_pins_default: main-mcasp2-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x070, PIN_INPUT, 3) /* (T24) GPMC0_AD13.MCASP2_ACLKX */
AM62X_IOPAD(0x06c, PIN_INPUT, 3) /* (T22) GPMC0_AD12.MCASP2_AFSX */
AM62X_IOPAD(0x064, PIN_OUTPUT, 3) /* (T25) GPMC0_AD10.MCASP2_AXR2 */
AM62X_IOPAD(0x068, PIN_INPUT, 3) /* (R21) GPMC0_AD11.MCASP2_AXR3 */
>;
};
main_mmc1_pins_default: main-mmc1-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x23c, PIN_INPUT_PULLUP, 0) /* (A21) MMC1_CMD */
......@@ -254,6 +316,21 @@ &main_i2c1 {
clock-frequency = <100000>;
status = "okay";
audio_codec: audio-codec@18 {
pinctrl-names = "default";
pinctrl-0 = <&audio_ext_refclk1_pins_default>;
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3007";
reg = <0x18>;
ai3x-micbias-vg = <2>;
AVDD-supply = <&vcc_3v3_sw>;
IOVDD-supply = <&vcc_3v3_sw>;
DRVDD-supply = <&vcc_3v3_sw>;
DVDD-supply = <&vcc_1v8>;
};
gpio_exp: gpio-expander@21 {
pinctrl-names = "default";
pinctrl-0 = <&gpio_exp_int_pins_default>;
......@@ -329,6 +406,28 @@ &main_uart1 {
status = "okay";
};
&mcasp2 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp2_pins_default>;
/* MCASP_IIS_MODE */
op-mode = <0>;
tdm-slots = <2>;
/* 0: INACTIVE, 1: TX, 2: RX */
serial-dir = <
0 0 1 2
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
status = "okay";
};
&sdhci1 {
vmmc-supply = <&vcc_3v3_mmc>;
vqmmc-supply = <&vddshv5_sdio>;
......
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