On Wed, Mar 19, 2025 at 03:04:49PM +0800, jiebing chen wrote: > 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#L597 > > Signed-off-by: jiebing chen <jiebing.chen@xxxxxxxxxxx> ... > + > + dai-link-12 { > + sound-dai = <&toacodec TOACODEC_OUT>; > + > + codec { > + sound-dai = <&acodec>; > + }; > + }; > + }; > + Do not add stray blank lines. > }; > > &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? > +#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. > / { > 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? > 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