On Tue, 21 Mar 2023 23:56:15 +0200, Cristian Ciocaltea wrote: > Commit 370f696e4474 ("dt-bindings: serial: snps-dw-apb-uart: add dma & > dma-names properties") documented dma-names property to handle Allwinner > D1 dtbs_check warnings, but relies on the rx->tx ordering, which is the > reverse of what a different board expects: > > rk3326-odroid-go2.dtb: serial@ff030000: dma-names:0: 'rx' was expected > > A quick and incomplete check shows the inconsistency is present in many > other DTS files: > > $ git grep -A10 snps,dw-apb-uart | grep dma-names | sort -u > arch/arm64/boot/dts/rockchip/px30.dtsi- dma-names = "tx", "rx"; > arch/arm64/boot/dts/rockchip/rk3328.dtsi- dma-names = "tx", "rx"; > arch/arm64/boot/dts/rockchip/rk3588s.dtsi- dma-names = "tx", "rx"; > arch/arm/boot/dts/rk3066a.dtsi- dma-names = "tx", "rx"; > arch/arm/boot/dts/rk3128.dtsi- dma-names = "tx", "rx"; > arch/arm/boot/dts/rk3288.dtsi- dma-names = "tx", "rx"; > arch/arm/boot/dts/rv1126.dtsi- dma-names = "tx", "rx"; > arch/arm/boot/dts/socfpga.dtsi- dma-names = "tx", "rx"; > arch/arm/boot/dts/sun6i-a31.dtsi- dma-names = "rx", "tx"; > arch/arm/boot/dts/sun8i-a23-a33.dtsi- dma-names = "rx", "tx"; > arch/arm/boot/dts/sun8i-v3s.dtsi- dma-names = "rx", "tx"; > arch/arm/boot/dts/sunxi-h3-h5.dtsi- dma-names = "rx", "tx"; > arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi- dma-names = "rx", "tx"; > > The initial proposed solution was to allow a flexible dma-names order in > the binding, due to potential ABI breakage concerns after fixing the DTS > files. But luckily the Allwinner boards are not really affected, since > all of them are using a shared DMA channel for rx and tx: > > $ git grep -A10 snps,dw-apb-uart | grep 'sun.*dmas' | sort -u > arch/arm/boot/dts/sun6i-a31.dtsi- dmas = <&dma 10>, <&dma 10>; > arch/arm/boot/dts/sun6i-a31.dtsi- dmas = <&dma 22>, <&dma 22>; > arch/arm/boot/dts/sun6i-a31.dtsi- dmas = <&dma 6>, <&dma 6>; > arch/arm/boot/dts/sun6i-a31.dtsi- dmas = <&dma 7>, <&dma 7>; > arch/arm/boot/dts/sun6i-a31.dtsi- dmas = <&dma 8>, <&dma 8>; > arch/arm/boot/dts/sun6i-a31.dtsi- dmas = <&dma 9>, <&dma 9>; > arch/arm/boot/dts/sun8i-a23-a33.dtsi- dmas = <&dma 10>, <&dma 10>; > arch/arm/boot/dts/sun8i-a23-a33.dtsi- dmas = <&dma 6>, <&dma 6>; > arch/arm/boot/dts/sun8i-a23-a33.dtsi- dmas = <&dma 7>, <&dma 7>; > arch/arm/boot/dts/sun8i-a23-a33.dtsi- dmas = <&dma 8>, <&dma 8>; > arch/arm/boot/dts/sun8i-a23-a33.dtsi- dmas = <&dma 9>, <&dma 9>; > arch/arm/boot/dts/sun8i-v3s.dtsi- dmas = <&dma 6>, <&dma 6>; > arch/arm/boot/dts/sun8i-v3s.dtsi- dmas = <&dma 7>, <&dma 7>; > arch/arm/boot/dts/sun8i-v3s.dtsi- dmas = <&dma 8>, <&dma 8>; > arch/arm/boot/dts/sunxi-h3-h5.dtsi- dmas = <&dma 6>, <&dma 6>; > arch/arm/boot/dts/sunxi-h3-h5.dtsi- dmas = <&dma 7>, <&dma 7>; > arch/arm/boot/dts/sunxi-h3-h5.dtsi- dmas = <&dma 8>, <&dma 8>; > arch/arm/boot/dts/sunxi-h3-h5.dtsi- dmas = <&dma 9>, <&dma 9>; > arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi- dmas = <&dma 14>, <&dma 14>; > arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi- dmas = <&dma 15>, <&dma 15>; > arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi- dmas = <&dma 16>, <&dma 16>; > arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi- dmas = <&dma 17>, <&dma 17>; > arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi- dmas = <&dma 18>, <&dma 18>; > arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi- dmas = <&dma 19>, <&dma 19>; > > Switch dma-names order to tx->rx as the first step in fixing the > inconsistency. The remaining DTS fixes will be handled by separate > patches. > > Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx> > --- > Documentation/devicetree/bindings/serial/snps-dw-apb-uart.yaml | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Reviewed-by: Rob Herring <robh@xxxxxxxxxx>