Re: [PATCH v4 6/6] arm64: dts: amlogic: Add Amlogic S4 Audio
From: Jiebing Chen <hidden>
Date: 2025-03-19 08:47:04
Also in:
linux-amlogic, linux-clk, linux-devicetree, linux-sound, lkml
在 2025/3/19 16:26, Krzysztof Kozlowski 写道:
[You don't often get email fromkrzk@kernel.org. Learn why this is important athttps://aka.ms/LearnAboutSenderIdentification ] [ EXTERNAL EMAIL ] On Wed, Mar 19, 2025 at 03:04:49PM +0800, jiebing chen wrote:quoted
Add basic audio driver support for the Amlogic S4 based Amlogic AQ222 board. use hifipll pll (1179648000) to support 768k sample rate and 24 bit (s24_le), 24bit sclk is 48fs, use mpll0 (270950400) to support 705.6k sample rate and 32bit, use mpll1 (338688000) to support 705.6k and 24bit.Please wrap commit message according to Linux coding style / submission process (neither too early nor over the limit): https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597quoted
Signed-off-by: jiebing chen<redacted>...quoted
+ + dai-link-12 { + sound-dai = <&toacodec TOACODEC_OUT>; + + codec { + sound-dai = <&acodec>; + }; + }; + }; +Do not add stray blank lines.quoted
}; &pwm_ef {diff --git a/arch/arm64/boot/dts/amlogic/meson-s4.dtsi b/arch/arm64/boot/dts/amlogic/meson-s4.dtsi index 957577d986c0675a503115e1ccbc4387c2051620..83edafc2646438e3e6b1945fa1c4b327254a4131 100644 --- a/arch/arm64/boot/dts/amlogic/meson-s4.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-s4.dtsi@@ -11,7 +11,11 @@ #include <dt-bindings/clock/amlogic,s4-peripherals-clkc.h> #include <dt-bindings/power/meson-s4-power.h> #include <dt-bindings/reset/amlogic,meson-s4-reset.h> -Why?quoted
+#include <dt-bindings/clock/axg-audio-clkc.h> +#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h> +#include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h> +#include <dt-bindings/sound/meson-g12a-toacodec.h> +#include <dt-bindings/sound/meson-g12a-tohdmitx.h>Old style was correct.quoted
/ { cpus { #address-cells = <2>;@@ -46,6 +50,36 @@ cpu3: cpu@3 { }; }; + tdmif_a: audio-controller-0 { + compatible = "amlogic,axg-tdm-iface"; + #sound-dai-cells = <0>; + sound-name-prefix = "TDM_A"; + clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>, + <&clkc_audio AUD_CLKID_MST_A_LRCLK>, + <&clkc_audio AUD_CLKID_MST_A_MCLK>; + clock-names = "sclk", "lrclk","mclk"; + }; + + tdmif_b: audio-controller-1 { + compatible = "amlogic,axg-tdm-iface"; + #sound-dai-cells = <0>; + sound-name-prefix = "TDM_B"; + clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>, + <&clkc_audio AUD_CLKID_MST_B_LRCLK>, + <&clkc_audio AUD_CLKID_MST_B_MCLK>; + clock-names = "sclk", "lrclk","mclk"; + }; + + tdmif_c: audio-controller-2 { + compatible = "amlogic,axg-tdm-iface"; + #sound-dai-cells = <0>; + sound-name-prefix = "TDM_C"; + clocks = <&clkc_audio AUD_CLKID_MST_C_SCLK>, + <&clkc_audio AUD_CLKID_MST_C_LRCLK>, + <&clkc_audio AUD_CLKID_MST_C_MCLK>; + clock-names = "sclk", "lrclk","mclk"; + }; + timer { compatible = "arm,armv8-timer"; interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,@@ -101,7 +135,6 @@ apb4: bus@fe000000 { #address-cells = <2>; #size-cells = <2>; ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>; -Why? What is happening in this patch - why are you changing so many other pieces?
Hi, Krzysztof
for last versions ,it it not match the amlogic,axg-tdm-iface.yaml
so we must be change the order, otherwise a warning will be thrown,we
copy the dts config from merged dts
the old order not meet the dt-binding rule, Another change, we only add
the audio clock reg
+ compatible = "amlogic,s4-audio-clkc"; + reg = <0x0 0x0 0x0 0xd8>,
add <0x0 0xE80 0x0 0x10>;
We have not made any changes to the rest
arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dtb: audio-controller-0: clock-names:0: 'sclk' was expected
from schema $id:http://devicetree.org/schemas/sound/amlogic,axg-tdm-iface.yaml#
arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dtb: audio-controller-0: clock-names:1: 'lrclk' was expected
from schema $id:http://devicetree.org/schemas/sound/amlogic,axg-tdm-iface.yaml#
arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dtb: audio-controller-0: clock-names:2: 'mclk' was expected
quoted
clkc_periphs: clock-controller@0 { compatible = "amlogic,s4-peripherals-clkc"; reg = <0x0 0x0 0x0 0x49c>;@@ -134,6 +167,17 @@ clkc_pll: clock-controller@8000 { #clock-cells = <1>; }; + acodec: audio-controller@1a000 { + compatible = "amlogic,t9015"; + reg = <0x0 0x1A000 0x0 0x14>; + #sound-dai-cells = <0>; + sound-name-prefix = "ACODEC"; + clocks = <&clkc_periphs CLKID_ACODEC>; + clock-names = "pclk"; + resets = <&reset RESET_ACODEC>; + AVDD-supply = <&vddio_ao1v8>; + }; + watchdog@2100 { compatible = "amlogic,s4-wdt", "amlogic,t7-wdt"; reg = <0x0 0x2100 0x0 0x10>;@@ -850,3 +894,327 @@ emmc: mmc@fe08c000 { }; }; }; + +&apb4 { + audio: bus@330000 { + compatible = "simple-bus"; + reg = <0x0 0x330000 0x0 0x1000>;That's not a simple bus in such case. NAK Best regards, Krzysztof