2023-03-13 14:51:35

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v5 0/6] arm64: ti: Enable audio on AM62 and AM62A

This patch series adds support for audio output via headphone jack on
SK-AM62 and SK-AM62A boards. The jack is wired to TLV320AIC3106 (codec),
which is connected to McASP1 (serializer) on the SoC.

The TRRS 3.5mm jack can be used for simultaneous playback and recording.

v5:
- Ported codec bindings to dtschema
- Add audio drivers in arm64 defconfig
- Keep McASP nodes disabled in SoC dtsi
- Enable audio-input for AM62
- Enable same feature-set for AM62A

v4: https://lore.kernel.org/all/[email protected]/

Signed-off-by: Jai Luthra <[email protected]>
---
Jai Luthra (5):
arm64: defconfig: Enable audio drivers for TI K3 SoCs
arm64: dts: ti: k3-am625-sk: Enable audio on AM62 SK
arm64: dts: ti: k3-am62a-main: Add nodes for McASP
arm64: dts: ti: k3-am62a7-sk: Split vcc_3v3 regulators
arm64: dts: ti: k3-am62a7-sk: Enable audio on AM62A

Jayesh Choudhary (1):
arm64: dts: ti: k3-am62-main: Add McASP nodes

arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 60 ++++++++++++++++++++
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 88 +++++++++++++++++++++++++++++
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 60 ++++++++++++++++++++
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 92 ++++++++++++++++++++++++++++++-
arch/arm64/configs/defconfig | 2 +
5 files changed, 300 insertions(+), 2 deletions(-)
---
base-commit: 24469a0e5052ba01a35a15f104717a82b7a4798b
change-id: 20230313-mcasp_upstream-0e137013059b

Best regards,
--
Jai Luthra <[email protected]>


2023-03-13 14:51:39

by Jai Luthra

[permalink] [raw]
Subject: [PATCH v5 2/6] arm64: dts: ti: k3-am62-main: Add McASP nodes

From: Jayesh Choudhary <[email protected]>

Add the nodes for McASP 0-2.

Use the audio-friendly 96MHz main_1_hsdivout6_clk as clock parent
instead of the default 100Mhz main_2_hsdivout8_clk source.

Signed-off-by: Jayesh Choudhary <[email protected]>
Signed-off-by: Jai Luthra <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 60 ++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
index ea683fd77d6a..4da5747987bb 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
@@ -787,4 +787,64 @@ epwm2: pwm@23020000 {
clock-names = "tbclk", "fck";
status = "disabled";
};
+
+ 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";
+ assigned-clocks = <&k3_clks 190 0>;
+ assigned-clock-parents = <&k3_clks 190 2>;
+ power-domains = <&k3_pds 190 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
+
+ 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";
+ assigned-clocks = <&k3_clks 191 0>;
+ assigned-clock-parents = <&k3_clks 191 2>;
+ power-domains = <&k3_pds 191 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
+
+ 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";
+ assigned-clocks = <&k3_clks 192 0>;
+ assigned-clock-parents = <&k3_clks 192 2>;
+ power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
};

--
2.39.2

2023-03-13 17:12:13

by Andrew Davis

[permalink] [raw]
Subject: Re: [PATCH v5 2/6] arm64: dts: ti: k3-am62-main: Add McASP nodes

On 3/13/23 9:49 AM, Jai Luthra wrote:
> From: Jayesh Choudhary <[email protected]>
>
> Add the nodes for McASP 0-2.
>
> Use the audio-friendly 96MHz main_1_hsdivout6_clk as clock parent
> instead of the default 100Mhz main_2_hsdivout8_clk source.
>
> Signed-off-by: Jayesh Choudhary <[email protected]>
> Signed-off-by: Jai Luthra <[email protected]>
> ---
> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 60 ++++++++++++++++++++++++++++++++
> 1 file changed, 60 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> index ea683fd77d6a..4da5747987bb 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
> @@ -787,4 +787,64 @@ epwm2: pwm@23020000 {
> clock-names = "tbclk", "fck";
> status = "disabled";
> };
> +
> + mcasp0: mcasp@2b00000 {

I wonder if we want to switch to generic node naming here, audio-controller@..

> + compatible = "ti,am33xx-mcasp-audio";
> + reg = <0x00 0x02b00000 0x00 0x2000>,
> + <0x00 0x02b08000 0x00 0x400>;
> + reg-names = "mpu","dat";

Space after ,

> + interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>;

Align with space, indent with tab, as you did with "reg" property.

Same for McASP 1/2.

Reviewed-by: Andrew Davis <[email protected]>

> + 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";
> + assigned-clocks = <&k3_clks 190 0>;
> + assigned-clock-parents = <&k3_clks 190 2>;
> + power-domains = <&k3_pds 190 TI_SCI_PD_EXCLUSIVE>;
> + status = "disabled";
> + };
> +
> + 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";
> + assigned-clocks = <&k3_clks 191 0>;
> + assigned-clock-parents = <&k3_clks 191 2>;
> + power-domains = <&k3_pds 191 TI_SCI_PD_EXCLUSIVE>;
> + status = "disabled";
> + };
> +
> + 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";
> + assigned-clocks = <&k3_clks 192 0>;
> + assigned-clock-parents = <&k3_clks 192 2>;
> + power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
> + status = "disabled";
> + };
> };
>