diff mbox series

[2/6] arm64: dts: meson-gx: add aiu support

Message ID 20200421163935.775935-3-jbrunet@baylibre.com (mailing list archive)
State Mainlined
Commit 4cc1b2659dd2f33a3b4999fc002e72cc801724b6
Headers show
Series arm64: dts: meson-gx: add initial playback support | expand

Commit Message

Jerome Brunet April 21, 2020, 4:39 p.m. UTC
Add the AIU audio device to the Amlogic GX SoC family DT.
ATM, this device provides the i2s and spdif output stages and also
the hdmi and internal codec glues.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
 arch/arm64/boot/dts/amlogic/meson-gx.dtsi   | 13 ++++++++++++
 arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 23 +++++++++++++++++++++
 arch/arm64/boot/dts/amlogic/meson-gxl.dtsi  | 23 +++++++++++++++++++++
 3 files changed, 59 insertions(+)

Comments

Neil Armstrong April 22, 2020, 1:12 p.m. UTC | #1
On 21/04/2020 18:39, Jerome Brunet wrote:
> Add the AIU audio device to the Amlogic GX SoC family DT.
> ATM, this device provides the i2s and spdif output stages and also
> the hdmi and internal codec glues.
> 
> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
> ---
>  arch/arm64/boot/dts/amlogic/meson-gx.dtsi   | 13 ++++++++++++
>  arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 23 +++++++++++++++++++++
>  arch/arm64/boot/dts/amlogic/meson-gxl.dtsi  | 23 +++++++++++++++++++++
>  3 files changed, 59 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> index 03f79fe045b7..a8dc8f810253 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> @@ -278,6 +278,17 @@ reset: reset-controller@4404 {
>  				#reset-cells = <1>;
>  			};
>  
> +			aiu: audio-controller@5400 {
> +				compatible = "amlogic,aiu";
> +				#sound-dai-cells = <2>;
> +				sound-name-prefix = "AIU";
> +				reg = <0x0 0x5400 0x0 0x2ac>;
> +				interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
> +					     <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
> +				interrupt-names = "i2s", "spdif";
> +				status = "disabled";
> +			};
> +
>  			uart_A: serial@84c0 {
>  				compatible = "amlogic,meson-gx-uart";
>  				reg = <0x0 0x84c0 0x0 0x18>;
> @@ -626,6 +637,8 @@ hdmi_tx: hdmi-tx@c883a000 {
>  			interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> +			#sound-dai-cells = <0>;
> +			sound-name-prefix = "HDMITX";

sound-name-prefix is not a valid property in Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml

It should be added.

AFAIK sound-name-prefix is not present on g12-common, is it missing ?

Neil

>  			status = "disabled";
>  
>  			/* VPU VENC Input */
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
> index 0cb40326b0d3..234490d3ee68 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
> @@ -60,6 +60,29 @@ usb1: usb@c9100000 {
>  	};
>  };
>  
> +&aiu {
> +	compatible = "amlogic,aiu-gxbb", "amlogic,aiu";
> +	clocks = <&clkc CLKID_AIU_GLUE>,
> +		 <&clkc CLKID_I2S_OUT>,
> +		 <&clkc CLKID_AOCLK_GATE>,
> +		 <&clkc CLKID_CTS_AMCLK>,
> +		 <&clkc CLKID_MIXER_IFACE>,
> +		 <&clkc CLKID_IEC958>,
> +		 <&clkc CLKID_IEC958_GATE>,
> +		 <&clkc CLKID_CTS_MCLK_I958>,
> +		 <&clkc CLKID_CTS_I958>;
> +	clock-names = "pclk",
> +		      "i2s_pclk",
> +		      "i2s_aoclk",
> +		      "i2s_mclk",
> +		      "i2s_mixer",
> +		      "spdif_pclk",
> +		      "spdif_aoclk",
> +		      "spdif_mclk",
> +		      "spdif_mclk_sel";
> +	resets = <&reset RESET_AIU>;
> +};
> +
>  &aobus {
>  	pinctrl_aobus: pinctrl@14 {
>  		compatible = "amlogic,meson-gxbb-aobus-pinctrl";
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> index 259d86399390..d9f00c5a9a5c 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> @@ -49,6 +49,29 @@ crypto: crypto@c883e000 {
>  	};
>  };
>  
> +&aiu {
> +	compatible = "amlogic,aiu-gxl", "amlogic,aiu";
> +	clocks = <&clkc CLKID_AIU_GLUE>,
> +		 <&clkc CLKID_I2S_OUT>,
> +		 <&clkc CLKID_AOCLK_GATE>,
> +		 <&clkc CLKID_CTS_AMCLK>,
> +		 <&clkc CLKID_MIXER_IFACE>,
> +		 <&clkc CLKID_IEC958>,
> +		 <&clkc CLKID_IEC958_GATE>,
> +		 <&clkc CLKID_CTS_MCLK_I958>,
> +		 <&clkc CLKID_CTS_I958>;
> +	clock-names = "pclk",
> +		      "i2s_pclk",
> +		      "i2s_aoclk",
> +		      "i2s_mclk",
> +		      "i2s_mixer",
> +		      "spdif_pclk",
> +		      "spdif_aoclk",
> +		      "spdif_mclk",
> +		      "spdif_mclk_sel";
> +	resets = <&reset RESET_AIU>;
> +};
> +
>  &apb {
>  	usb2_phy0: phy@78000 {
>  		compatible = "amlogic,meson-gxl-usb2-phy";
>
Jerome Brunet April 22, 2020, 2:38 p.m. UTC | #2
On Wed 22 Apr 2020 at 15:12, Neil Armstrong <narmstrong@baylibre.com> wrote:

> On 21/04/2020 18:39, Jerome Brunet wrote:
>> Add the AIU audio device to the Amlogic GX SoC family DT.
>> ATM, this device provides the i2s and spdif output stages and also
>> the hdmi and internal codec glues.
>> 
>> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
>> ---
>>  arch/arm64/boot/dts/amlogic/meson-gx.dtsi   | 13 ++++++++++++
>>  arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 23 +++++++++++++++++++++
>>  arch/arm64/boot/dts/amlogic/meson-gxl.dtsi  | 23 +++++++++++++++++++++
>>  3 files changed, 59 insertions(+)
>> 
>> diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
>> index 03f79fe045b7..a8dc8f810253 100644
>> --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
>> +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
>> @@ -278,6 +278,17 @@ reset: reset-controller@4404 {
>>  				#reset-cells = <1>;
>>  			};
>>  
>> +			aiu: audio-controller@5400 {
>> +				compatible = "amlogic,aiu";
>> +				#sound-dai-cells = <2>;
>> +				sound-name-prefix = "AIU";
>> +				reg = <0x0 0x5400 0x0 0x2ac>;
>> +				interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
>> +					     <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
>> +				interrupt-names = "i2s", "spdif";
>> +				status = "disabled";
>> +			};
>> +
>>  			uart_A: serial@84c0 {
>>  				compatible = "amlogic,meson-gx-uart";
>>  				reg = <0x0 0x84c0 0x0 0x18>;
>> @@ -626,6 +637,8 @@ hdmi_tx: hdmi-tx@c883a000 {
>>  			interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
>>  			#address-cells = <1>;
>>  			#size-cells = <0>;
>> +			#sound-dai-cells = <0>;
>> +			sound-name-prefix = "HDMITX";
>
> sound-name-prefix is not a valid property in Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
>
> It should be added.

Not sure it should be explicitly added. It should be valid for any
device providing a sound-dai (sound-dai-cell)

>
> AFAIK sound-name-prefix is not present on g12-common, is it missing ?

It might not be strictly required, as long as there is no name colision
in the ASoC widget and Control, it is OK. IMHO, it is a good practice to
set one to avoid those colision.

>
> Neil
>
>>  			status = "disabled";
>>  
>>  			/* VPU VENC Input */
>> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
>> index 0cb40326b0d3..234490d3ee68 100644
>> --- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
>> +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
>> @@ -60,6 +60,29 @@ usb1: usb@c9100000 {
>>  	};
>>  };
>>  
>> +&aiu {
>> +	compatible = "amlogic,aiu-gxbb", "amlogic,aiu";
>> +	clocks = <&clkc CLKID_AIU_GLUE>,
>> +		 <&clkc CLKID_I2S_OUT>,
>> +		 <&clkc CLKID_AOCLK_GATE>,
>> +		 <&clkc CLKID_CTS_AMCLK>,
>> +		 <&clkc CLKID_MIXER_IFACE>,
>> +		 <&clkc CLKID_IEC958>,
>> +		 <&clkc CLKID_IEC958_GATE>,
>> +		 <&clkc CLKID_CTS_MCLK_I958>,
>> +		 <&clkc CLKID_CTS_I958>;
>> +	clock-names = "pclk",
>> +		      "i2s_pclk",
>> +		      "i2s_aoclk",
>> +		      "i2s_mclk",
>> +		      "i2s_mixer",
>> +		      "spdif_pclk",
>> +		      "spdif_aoclk",
>> +		      "spdif_mclk",
>> +		      "spdif_mclk_sel";
>> +	resets = <&reset RESET_AIU>;
>> +};
>> +
>>  &aobus {
>>  	pinctrl_aobus: pinctrl@14 {
>>  		compatible = "amlogic,meson-gxbb-aobus-pinctrl";
>> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
>> index 259d86399390..d9f00c5a9a5c 100644
>> --- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
>> +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
>> @@ -49,6 +49,29 @@ crypto: crypto@c883e000 {
>>  	};
>>  };
>>  
>> +&aiu {
>> +	compatible = "amlogic,aiu-gxl", "amlogic,aiu";
>> +	clocks = <&clkc CLKID_AIU_GLUE>,
>> +		 <&clkc CLKID_I2S_OUT>,
>> +		 <&clkc CLKID_AOCLK_GATE>,
>> +		 <&clkc CLKID_CTS_AMCLK>,
>> +		 <&clkc CLKID_MIXER_IFACE>,
>> +		 <&clkc CLKID_IEC958>,
>> +		 <&clkc CLKID_IEC958_GATE>,
>> +		 <&clkc CLKID_CTS_MCLK_I958>,
>> +		 <&clkc CLKID_CTS_I958>;
>> +	clock-names = "pclk",
>> +		      "i2s_pclk",
>> +		      "i2s_aoclk",
>> +		      "i2s_mclk",
>> +		      "i2s_mixer",
>> +		      "spdif_pclk",
>> +		      "spdif_aoclk",
>> +		      "spdif_mclk",
>> +		      "spdif_mclk_sel";
>> +	resets = <&reset RESET_AIU>;
>> +};
>> +
>>  &apb {
>>  	usb2_phy0: phy@78000 {
>>  		compatible = "amlogic,meson-gxl-usb2-phy";
>>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index 03f79fe045b7..a8dc8f810253 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -278,6 +278,17 @@  reset: reset-controller@4404 {
 				#reset-cells = <1>;
 			};
 
+			aiu: audio-controller@5400 {
+				compatible = "amlogic,aiu";
+				#sound-dai-cells = <2>;
+				sound-name-prefix = "AIU";
+				reg = <0x0 0x5400 0x0 0x2ac>;
+				interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
+					     <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
+				interrupt-names = "i2s", "spdif";
+				status = "disabled";
+			};
+
 			uart_A: serial@84c0 {
 				compatible = "amlogic,meson-gx-uart";
 				reg = <0x0 0x84c0 0x0 0x18>;
@@ -626,6 +637,8 @@  hdmi_tx: hdmi-tx@c883a000 {
 			interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
 			#address-cells = <1>;
 			#size-cells = <0>;
+			#sound-dai-cells = <0>;
+			sound-name-prefix = "HDMITX";
 			status = "disabled";
 
 			/* VPU VENC Input */
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index 0cb40326b0d3..234490d3ee68 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -60,6 +60,29 @@  usb1: usb@c9100000 {
 	};
 };
 
+&aiu {
+	compatible = "amlogic,aiu-gxbb", "amlogic,aiu";
+	clocks = <&clkc CLKID_AIU_GLUE>,
+		 <&clkc CLKID_I2S_OUT>,
+		 <&clkc CLKID_AOCLK_GATE>,
+		 <&clkc CLKID_CTS_AMCLK>,
+		 <&clkc CLKID_MIXER_IFACE>,
+		 <&clkc CLKID_IEC958>,
+		 <&clkc CLKID_IEC958_GATE>,
+		 <&clkc CLKID_CTS_MCLK_I958>,
+		 <&clkc CLKID_CTS_I958>;
+	clock-names = "pclk",
+		      "i2s_pclk",
+		      "i2s_aoclk",
+		      "i2s_mclk",
+		      "i2s_mixer",
+		      "spdif_pclk",
+		      "spdif_aoclk",
+		      "spdif_mclk",
+		      "spdif_mclk_sel";
+	resets = <&reset RESET_AIU>;
+};
+
 &aobus {
 	pinctrl_aobus: pinctrl@14 {
 		compatible = "amlogic,meson-gxbb-aobus-pinctrl";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index 259d86399390..d9f00c5a9a5c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -49,6 +49,29 @@  crypto: crypto@c883e000 {
 	};
 };
 
+&aiu {
+	compatible = "amlogic,aiu-gxl", "amlogic,aiu";
+	clocks = <&clkc CLKID_AIU_GLUE>,
+		 <&clkc CLKID_I2S_OUT>,
+		 <&clkc CLKID_AOCLK_GATE>,
+		 <&clkc CLKID_CTS_AMCLK>,
+		 <&clkc CLKID_MIXER_IFACE>,
+		 <&clkc CLKID_IEC958>,
+		 <&clkc CLKID_IEC958_GATE>,
+		 <&clkc CLKID_CTS_MCLK_I958>,
+		 <&clkc CLKID_CTS_I958>;
+	clock-names = "pclk",
+		      "i2s_pclk",
+		      "i2s_aoclk",
+		      "i2s_mclk",
+		      "i2s_mixer",
+		      "spdif_pclk",
+		      "spdif_aoclk",
+		      "spdif_mclk",
+		      "spdif_mclk_sel";
+	resets = <&reset RESET_AIU>;
+};
+
 &apb {
 	usb2_phy0: phy@78000 {
 		compatible = "amlogic,meson-gxl-usb2-phy";