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

Wadim Egorov w.egorov at phytec.de
Tue Apr 9 10:10:44 PDT 2024



Am 04.04.24 um 20:42 schrieb Garrett Giordano:
> 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: Garrett Giordano <ggiordano at phytec.com>


Reviewed-by: Wadim Egorov <w.egorov at phytec.de>


> ---
>   .../dts/ti/k3-am625-phyboard-lyra-rdk.dts     | 99 +++++++++++++++++++
>   1 file changed, 99 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am625-phyboard-lyra-rdk.dts b/arch/arm64/boot/dts/ti/k3-am625-phyboard-lyra-rdk.dts
> index a83a90497857..dfc78995d30a 100644
> --- a/arch/arm64/boot/dts/ti/k3-am625-phyboard-lyra-rdk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am625-phyboard-lyra-rdk.dts
> @@ -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 at 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 at 21 {
>   		pinctrl-names = "default";
>   		pinctrl-0 = <&gpio_exp_int_pins_default>;
> @@ -329,6 +406,28 @@ &main_uart1 {
>   	status = "okay";
>   };
>   
> +&mcasp2 {
> +	status = "okay";
> +	#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>;
> +};
> +
>   &sdhci1 {
>   	vmmc-supply = <&vcc_3v3_mmc>;
>   	vqmmc-supply = <&vddshv5_sdio>;



More information about the linux-arm-kernel mailing list