Message ID | 20241020083124.174724-7-ryan@testtoast.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ASoC: add Allwinner H616 audio codec support | expand |
On Sun, 20 Oct 2024 21:30:56 +1300 Ryan Walklin <ryan@testtoast.com> wrote: Hi, > Now that the sun4i codec driver supports the H616, add a node in the > device tree for it (correcting the spdif block location at the same > time). I can confirm that the spdif block indeed just moved without any changes (to preserve the MMIO base address ordering in the DT), and that the values for the base address, the IRQ, the clocks, the reset gate and the DMA channels of the new audio codec match the manual: > Signed-off-by: Ryan Walklin <ryan@testtoast.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre > > --- > Changelog v1..v2: > - Remove 4x clock from the codec block, this is not used in the driver and does not require a reference. > - Move the codec (and spdif) blocks below the lradc block so that they are in address-order. > --- > .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 44 ++++++++++++------- > 1 file changed, 29 insertions(+), 15 deletions(-) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi > index 0131f9b3132b8..3788f65a7d0eb 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi > @@ -762,21 +762,6 @@ mdio0: mdio { > }; > }; > > - spdif: spdif@5093000 { > - compatible = "allwinner,sun50i-h616-spdif"; > - reg = <0x05093000 0x400>; > - interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; > - clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>; > - clock-names = "apb", "spdif"; > - resets = <&ccu RST_BUS_SPDIF>; > - dmas = <&dma 2>; > - dma-names = "tx"; > - pinctrl-names = "default"; > - pinctrl-0 = <&spdif_tx_pin>; > - #sound-dai-cells = <0>; > - status = "disabled"; > - }; > - > gpadc: adc@5070000 { > compatible = "allwinner,sun50i-h616-gpadc", > "allwinner,sun20i-d1-gpadc"; > @@ -811,6 +796,35 @@ lradc: lradc@5070800 { > status = "disabled"; > }; > > + spdif: spdif@5093000 { > + compatible = "allwinner,sun50i-h616-spdif"; > + reg = <0x05093000 0x400>; > + interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>; > + clock-names = "apb", "spdif"; > + resets = <&ccu RST_BUS_SPDIF>; > + dmas = <&dma 2>; > + dma-names = "tx"; > + pinctrl-names = "default"; > + pinctrl-0 = <&spdif_tx_pin>; > + #sound-dai-cells = <0>; > + status = "disabled"; > + }; > + > + codec: codec@05096000 { > + #sound-dai-cells = <0>; > + compatible = "allwinner,sun50i-h616-codec"; > + reg = <0x05096000 0x31c>; > + interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&ccu CLK_BUS_AUDIO_CODEC>, > + <&ccu CLK_AUDIO_CODEC_1X>; > + clock-names = "apb", "codec"; > + resets = <&ccu RST_BUS_AUDIO_CODEC>; > + dmas = <&dma 6>; > + dma-names = "tx"; > + status = "disabled"; > + }; > + > usbotg: usb@5100000 { > compatible = "allwinner,sun50i-h616-musb", > "allwinner,sun8i-h3-musb";
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi index 0131f9b3132b8..3788f65a7d0eb 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi @@ -762,21 +762,6 @@ mdio0: mdio { }; }; - spdif: spdif@5093000 { - compatible = "allwinner,sun50i-h616-spdif"; - reg = <0x05093000 0x400>; - interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>; - clock-names = "apb", "spdif"; - resets = <&ccu RST_BUS_SPDIF>; - dmas = <&dma 2>; - dma-names = "tx"; - pinctrl-names = "default"; - pinctrl-0 = <&spdif_tx_pin>; - #sound-dai-cells = <0>; - status = "disabled"; - }; - gpadc: adc@5070000 { compatible = "allwinner,sun50i-h616-gpadc", "allwinner,sun20i-d1-gpadc"; @@ -811,6 +796,35 @@ lradc: lradc@5070800 { status = "disabled"; }; + spdif: spdif@5093000 { + compatible = "allwinner,sun50i-h616-spdif"; + reg = <0x05093000 0x400>; + interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>; + clock-names = "apb", "spdif"; + resets = <&ccu RST_BUS_SPDIF>; + dmas = <&dma 2>; + dma-names = "tx"; + pinctrl-names = "default"; + pinctrl-0 = <&spdif_tx_pin>; + #sound-dai-cells = <0>; + status = "disabled"; + }; + + codec: codec@05096000 { + #sound-dai-cells = <0>; + compatible = "allwinner,sun50i-h616-codec"; + reg = <0x05096000 0x31c>; + interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&ccu CLK_BUS_AUDIO_CODEC>, + <&ccu CLK_AUDIO_CODEC_1X>; + clock-names = "apb", "codec"; + resets = <&ccu RST_BUS_AUDIO_CODEC>; + dmas = <&dma 6>; + dma-names = "tx"; + status = "disabled"; + }; + usbotg: usb@5100000 { compatible = "allwinner,sun50i-h616-musb", "allwinner,sun8i-h3-musb";
Now that the sun4i codec driver supports the H616, add a node in the device tree for it (correcting the spdif block location at the same time). Signed-off-by: Ryan Walklin <ryan@testtoast.com> --- Changelog v1..v2: - Remove 4x clock from the codec block, this is not used in the driver and does not require a reference. - Move the codec (and spdif) blocks below the lradc block so that they are in address-order. --- .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 44 ++++++++++++------- 1 file changed, 29 insertions(+), 15 deletions(-)