[PATCH 0/3] Enable audio output on AM62-SK
This patch series adds support for audio output via headphone jack on the AM62-SK board. The jack is wired to TLV320AIC3106 (codec), which is connected to McASP (serializer).
The same 3.5mm jack can be used for combined playback+recording, but audio input is currently disabled on McASP until further testing and debugging.
Please apply this series on top of https://lore.kernel.org/all/20220415131917.431137-1-vigneshr@ti.com/
Jai Luthra (1): arm64: dts: ti: am625-sk: Add audio output support
Jayesh Choudhary (2): arm64: dts: ti: k3-am62-main: Add McASP nodes ASoC: ti: davinci-mcasp: Add dma-type for bcdma
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 51 ++++++++++++++ arch/arm64/boot/dts/ti/k3-am625-sk.dts | 89 ++++++++++++++++++++++++ sound/soc/ti/davinci-mcasp.c | 2 + 3 files changed, 142 insertions(+)
From: Jayesh Choudhary j-choudhary@ti.com
Add the nodes for McASP 0-2.
Signed-off-by: Jayesh Choudhary j-choudhary@ti.com Signed-off-by: Jai Luthra j-luthra@ti.com --- arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 51 ++++++++++++++++++++++++ 1 file changed, 51 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi index 4b6ba98dd0a2..2014c0ca599c 100644 --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi @@ -530,4 +530,55 @@ ti,mbox-num-users = <4>; ti,mbox-num-fifos = <16>; }; + + mcasp0: mcasp@2b00000 { + compatible = "ti,am33xx-mcasp-audio"; + reg = <0x00 0x02b00000 0x00 0x2000>, + <0x00 0x02b08000 0x00 0x400>; + reg-names = "mpu","dat"; + interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "tx", "rx"; + + dmas = <&main_bcdma 0 0xc500 0>, <&main_bcdma 0 0x4500 0>; + dma-names = "tx", "rx"; + + clocks = <&k3_clks 190 0>; + clock-names = "fck"; + power-domains = <&k3_pds 190 TI_SCI_PD_EXCLUSIVE>; + }; + + mcasp1: mcasp@2b10000 { + compatible = "ti,am33xx-mcasp-audio"; + reg = <0x00 0x02b10000 0x00 0x2000>, + <0x00 0x02b18000 0x00 0x400>; + reg-names = "mpu","dat"; + interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "tx", "rx"; + + dmas = <&main_bcdma 0 0xc501 0>, <&main_bcdma 0 0x4501 0>; + dma-names = "tx", "rx"; + + clocks = <&k3_clks 191 0>; + clock-names = "fck"; + power-domains = <&k3_pds 191 TI_SCI_PD_EXCLUSIVE>; + }; + + mcasp2: mcasp@2b20000 { + compatible = "ti,am33xx-mcasp-audio"; + reg = <0x00 0x02b20000 0x00 0x2000>, + <0x00 0x02b28000 0x00 0x400>; + reg-names = "mpu","dat"; + interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "tx", "rx"; + + dmas = <&main_bcdma 0 0xc502 0>, <&main_bcdma 0 0x4502 0>; + dma-names = "tx", "rx"; + + clocks = <&k3_clks 192 0>; + clock-names = "fck"; + power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>; + }; };
From: Jayesh Choudhary j-choudhary@ti.com
Set DMA type for ti-bcdma controller for AM62-SK.
Signed-off-by: Jayesh Choudhary j-choudhary@ti.com Signed-off-by: Jai Luthra j-luthra@ti.com --- sound/soc/ti/davinci-mcasp.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/soc/ti/davinci-mcasp.c b/sound/soc/ti/davinci-mcasp.c index 2c146b91fca3..377be2e2b6ee 100644 --- a/sound/soc/ti/davinci-mcasp.c +++ b/sound/soc/ti/davinci-mcasp.c @@ -2047,6 +2047,8 @@ static int davinci_mcasp_get_dma_type(struct davinci_mcasp *mcasp) return PCM_SDMA; else if (strstr(tmp, "udmap")) return PCM_UDMA; + else if (strstr(tmp, "bcdma")) + return PCM_UDMA;
return PCM_EDMA; }
Add nodes for audio codec and sound card, enable the audio serializer (McASP1) under use and update pinmux. Disable all other McASP nodes.
Audio input is currently not working properly, so the RX port on McASP1 is disabled for now, until the issue is debugged.
The serializer is shared between HDMI and codec. By default codec is used for output, but it can be toggled to HDMI using a FET switch connected to the MCASP1_FET_SEL (J24) header on the board.
Signed-off-by: Jai Luthra j-luthra@ti.com --- arch/arm64/boot/dts/ti/k3-am625-sk.dts | 89 ++++++++++++++++++++++++++ 1 file changed, 89 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts index a0ea2cc66b31..414f27d4a9dd 100644 --- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts +++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts @@ -119,6 +119,46 @@ <3300000 0x1>; };
+ vcc_1v8: fixedregulator-vcc-1v8 { + /* output of TPS6282518DMQ */ + compatible = "regulator-fixed"; + regulator-name = "vcc_1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc_3v3_sys>; + regulator-always-on; + regulator-boot-on; + }; + + tlv320_mclk: tlv320-mclk { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12288000>; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "AM62x-SKEVM"; + simple-audio-card,widgets = + "Headphone", "Headphone Jack"; + simple-audio-card,routing = + "Headphone Jack", "HPLOUT", + "Headphone Jack", "HPROUT"; + 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 = <&tlv320_mclk>; + }; + }; + leds { compatible = "gpio-leds"; pinctrl-names = "default"; @@ -264,6 +304,15 @@ AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */ >; }; + + main_mcasp1_pins_default: main-mcasp1-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0N_CLE.MCASP1_ACLKX */ + AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */ + AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEN.MCASP1_AXR0 */ + AM62X_IOPAD(0x0084, PIN_INPUT, 2) /* (L23) GPMC0_ADVN_ALE.MCASP1_AXR2 */ + >; + }; };
&wkup_uart0 { @@ -350,6 +399,18 @@ pinctrl-names = "default"; pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>; }; + + tlv320aic3106: tlv320aic3106@1b { + #sound-dai-cells = <0>; + compatible = "ti,tlv320aic3106"; + reg = <0x1b>; + + /* Regulators */ + AVDD-supply = <&vcc_3v3_sys>; + IOVDD-supply = <&vcc_3v3_sys>; + DRVDD-supply = <&vcc_3v3_sys>; + DVDD-supply = <&vcc_1v8>; + }; };
&main_i2c2 { @@ -410,6 +471,34 @@ }; };
+&mcasp0 { + status = "disabled"; +}; + +&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 0 0 + 0 0 0 0 + 0 0 0 0 + 0 0 0 0 + >; + tx-num-evt = <32>; + rx-num-evt = <32>; +}; + +&mcasp2 { + status = "disabled"; +}; + &mailbox0_cluster0 { mbox_m4_0: mbox-m4-0 { ti,mbox-rx = <0 0 0>;
On 18:52-20220421, Jai Luthra wrote:
This patch series adds support for audio output via headphone jack on the AM62-SK board. The jack is wired to TLV320AIC3106 (codec), which is connected to McASP (serializer).
The same 3.5mm jack can be used for combined playback+recording, but audio input is currently disabled on McASP until further testing and debugging.
Please apply this series on top of https://lore.kernel.org/all/20220415131917.431137-1-vigneshr@ti.com/
Jai Luthra (1): arm64: dts: ti: am625-sk: Add audio output support
Jayesh Choudhary (2): arm64: dts: ti: k3-am62-main: Add McASP nodes ASoC: ti: davinci-mcasp: Add dma-type for bcdma
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 51 ++++++++++++++ arch/arm64/boot/dts/ti/k3-am625-sk.dts | 89 ++++++++++++++++++++++++ sound/soc/ti/davinci-mcasp.c | 2 + 3 files changed, 142 insertions(+)
Please split this series up. Send out the sound/soc/ti/davinci-mcasp.c patch as it's own.
dts changes are their own series.
participants (2)
-
Jai Luthra
-
Nishanth Menon