On Fri, Feb 07, 2025 at 10:30:22PM +0100, J. Neuschäfer via B4 Relay wrote: > From: "J. Neuschäfer" <j.ne@xxxxxxxxxx> > > The devicetree bindings for Freescale DMA engines have so far existed as > a text file. This patch converts them to YAML, and specifies all the > compatible strings currently in use in arch/powerpc/boot/dts. > > Signed-off-by: J. Neuschäfer <j.ne@xxxxxxxxxx> > --- > > V2: > - remove unnecessary multiline markers > - fix additionalProperties to always be false > - add description/maxItems to interrupts > - add missing #address-cells/#size-cells properties > - convert "Note on DMA channel compatible properties" to YAML by listing > fsl,ssi-dma-channel as a valid compatible value > - fix property ordering in examples: compatible and reg come first > - add missing newlines in examples > - trim subject line (remove "bindings") > --- > .../devicetree/bindings/dma/fsl,elo-dma.yaml | 140 ++++++++++++++ > .../devicetree/bindings/dma/fsl,elo3-dma.yaml | 123 +++++++++++++ > .../devicetree/bindings/dma/fsl,eloplus-dma.yaml | 134 ++++++++++++++ > .../devicetree/bindings/powerpc/fsl/dma.txt | 204 --------------------- > 4 files changed, 397 insertions(+), 204 deletions(-) > > diff --git a/Documentation/devicetree/bindings/dma/fsl,elo-dma.yaml b/Documentation/devicetree/bindings/dma/fsl,elo-dma.yaml > new file mode 100644 > index 0000000000000000000000000000000000000000..3d8be9973fb98891a73cb701c1f983a63f444837 > --- /dev/null > +++ b/Documentation/devicetree/bindings/dma/fsl,elo-dma.yaml > @@ -0,0 +1,140 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/dma/fsl,elo-dma.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Freescale Elo DMA Controller > + > +maintainers: > + - J. Neuschäfer <j.ne@xxxxxxxxxx> > + > +description: > + This is a little-endian 4-channel DMA controller, used in Freescale mpc83xx > + series chips such as mpc8315, mpc8349, mpc8379 etc. > + > +properties: > + compatible: > + items: > + - enum: > + - fsl,mpc8313-dma > + - fsl,mpc8315-dma > + - fsl,mpc8323-dma > + - fsl,mpc8347-dma > + - fsl,mpc8349-dma > + - fsl,mpc8360-dma > + - fsl,mpc8377-dma > + - fsl,mpc8378-dma > + - fsl,mpc8379-dma > + - const: fsl,elo-dma > + > + reg: > + maxItems: 1 > + description: > + DMA General Status Register, i.e. DGSR which contains status for > + all the 4 DMA channels. needn't maxItems items: - description: DMA ... > + > + cell-index: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Controller index. 0 for controller @ 0x8100. > + > + ranges: true > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 1 > + > + interrupts: > + maxItems: 1 > + description: Controller interrupt. Needn't description because no any additional informaiton. > + > +required: > + - compatible > + - reg > + > +patternProperties: > + "^dma-channel@.*$": > + type: object > + additionalProperties: false > + > + properties: > + compatible: > + oneOf: > + # native DMA channel > + - items: > + - enum: > + - fsl,mpc8315-dma-channel > + - fsl,mpc8323-dma-channel > + - fsl,mpc8347-dma-channel > + - fsl,mpc8349-dma-channel > + - fsl,mpc8360-dma-channel > + - fsl,mpc8377-dma-channel > + - fsl,mpc8378-dma-channel > + - fsl,mpc8379-dma-channel > + - const: fsl,elo-dma-channel > + > + # audio DMA channel, see fsl,ssi.yaml > + - const: fsl,ssi-dma-channel > + > + reg: > + maxItems: 1 > + > + cell-index: > + description: DMA channel index starts at 0. > + > + interrupts: > + maxItems: 1 > + description: > + Per-channel interrupt. Only necessary if no controller interrupt has > + been provided. > + > +additionalProperties: false Need ref to dma-common.yaml? > + > +examples: > + - | > + dma@82a8 { > + compatible = "fsl,mpc8349-dma", "fsl,elo-dma"; > + reg = <0x82a8 4>; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0 0x8100 0x1a4>; > + interrupt-parent = <&ipic>; > + interrupts = <71 8>; > + cell-index = <0>; > + > + dma-channel@0 { > + compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; > + reg = <0 0x80>; > + cell-index = <0>; > + interrupt-parent = <&ipic>; > + interrupts = <71 8>; '8', use predefine MACRO for irq type. Frank > + }; > + > + dma-channel@80 { > + compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; > + reg = <0x80 0x80>; > + cell-index = <1>; > + interrupt-parent = <&ipic>; > + interrupts = <71 8>; > + }; > + > + dma-channel@100 { > + compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; > + reg = <0x100 0x80>; > + cell-index = <2>; > + interrupt-parent = <&ipic>; > + interrupts = <71 8>; > + }; > + > + dma-channel@180 { > + compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; > + reg = <0x180 0x80>; > + cell-index = <3>; > + interrupt-parent = <&ipic>; > + interrupts = <71 8>; > + }; > + }; > + ... > -- > 2.48.0.rc1.219.gb6b6757d772 > >