:p
atchew
Login
Convert Texas Instruments DMA Crossbar from text to DT schema Signed-off-by: Bhargav Joshi <j.bhargav.u@gmail.com> --- .../bindings/dma/ti,dra7-dma-crossbar.yaml | 105 +++++++++++++++++++++ .../devicetree/bindings/dma/ti-dma-crossbar.txt | 68 ------------- 2 files changed, 105 insertions(+), 68 deletions(-) diff --git a/Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml b/Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml @@ -XXX,XX +XXX,XX @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/dma/ti,dra7-dma-crossbar.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments DMA Crossbar (DMA request router) + +maintainers: + - Bhargav Joshi <j.bhargav.u@gmail.com> + - Peter Ujfalusi <peter.ujfalusi@gmail.com> + +properties: + compatible: + enum: + - ti,dra7-dma-crossbar + - ti,am335x-edma-crossbar + + reg: + maxItems: 1 + + "#dma-cells": + minimum: 1 + maximum: 3 + + dma-requests: + minimum: 1 + maximum: 256 + + dma-masters: + maxItems: 1 + + ti,dma-safe-map: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Safe routing value for unused request lines + + ti,reserved-dma-request-ranges: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + description: + DMA request ranges which should not be used when mapping xbar input to + DMA request, they are either allocated to be used by for example the DSP + or they are used as memcpy channels in eDMA. + +required: + - compatible + - reg + - "#dma-cells" + - dma-requests + - dma-masters + +allOf: + - $ref: dma-router.yaml# + + - if: + properties: + compatible: + contains: + const: ti,am335x-edma-crossbar + then: + properties: + "#dma-cells": + const: 3 + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + + /* DMA controller */ + sdma: dma-controller@4a056000 { + compatible = "ti,omap4430-sdma"; + reg = <0x4a056000 0x1000>; + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; + #dma-cells = <1>; + dma-channels = <32>; + dma-requests = <127>; + }; + + /* DMA crossbar */ + sdma_xbar: dma-router@4a002b78 { + compatible = "ti,dra7-dma-crossbar"; + reg = <0x4a002b78 0xfc>; + #dma-cells = <1>; + dma-requests = <205>; + ti,dma-safe-map = <0>; + /* Protect the sDMA request ranges: 10-14 and 100-126 */ + ti,reserved-dma-request-ranges = <10 5>, <100 27>; + dma-masters = <&sdma>; + }; + + /* DMA client */ + serial@4806a000 { + compatible = "ti,omap4-uart"; + reg = <0x4806a000 0x100>; + interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; + ti,hwmods = "uart1"; + clock-frequency = <48000000>; + /* Requesting crossbar input 49 and 50 */ + dmas = <&sdma_xbar 49>, <&sdma_xbar 50>; + dma-names = "tx", "rx"; + }; diff --git a/Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt b/Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt +++ /dev/null @@ -XXX,XX +XXX,XX @@ -Texas Instruments DMA Crossbar (DMA request router) - -Required properties: -- compatible: "ti,dra7-dma-crossbar" for DRA7xx DMA crossbar - "ti,am335x-edma-crossbar" for AM335x and AM437x -- reg: Memory map for accessing module -- #dma-cells: Should be set to match with the DMA controller's dma-cells - for ti,dra7-dma-crossbar and <3> for ti,am335x-edma-crossbar. -- dma-requests: Number of DMA requests the crossbar can receive -- dma-masters: phandle pointing to the DMA controller - -The DMA controller node need to have the following poroperties: -- dma-requests: Number of DMA requests the controller can handle - -Optional properties: -- ti,dma-safe-map: Safe routing value for unused request lines -- ti,reserved-dma-request-ranges: DMA request ranges which should not be used - when mapping xbar input to DMA request, they are either - allocated to be used by for example the DSP or they are used as - memcpy channels in eDMA. - -Notes: -When requesting channel via ti,dra7-dma-crossbar, the DMA client must request -the DMA event number as crossbar ID (input to the DMA crossbar). - -For ti,am335x-edma-crossbar: the meaning of parameters of dmas for clients: -dmas = <&edma_xbar 12 0 1>; where <12> is the DMA request number, <0> is the TC -the event should be assigned and <1> is the mux selection for in the crossbar. -When mux 0 is used the DMA channel can be requested directly from edma node. - -Example: - -/* DMA controller */ -sdma: dma-controller@4a056000 { - compatible = "ti,omap4430-sdma"; - reg = <0x4a056000 0x1000>; - interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; - #dma-cells = <1>; - dma-channels = <32>; - dma-requests = <127>; -}; - -/* DMA crossbar */ -sdma_xbar: dma-router@4a002b78 { - compatible = "ti,dra7-dma-crossbar"; - reg = <0x4a002b78 0xfc>; - #dma-cells = <1>; - dma-requests = <205>; - ti,dma-safe-map = <0>; - /* Protect the sDMA request ranges: 10-14 and 100-126 */ - ti,reserved-dma-request-ranges = <10 5>, <100 27>; - dma-masters = <&sdma>; -}; - -/* DMA client */ -uart1: serial@4806a000 { - compatible = "ti,omap4-uart"; - reg = <0x4806a000 0x100>; - interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; - ti,hwmods = "uart1"; - clock-frequency = <48000000>; - /* Requesting crossbar input 49 and 50 */ - dmas = <&sdma_xbar 49>, <&sdma_xbar 50>; - dma-names = "tx", "rx"; -}; --- base-commit: 0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53 change-id: 20260708-ti-dma-crossbar-ae8411c5d982 Best regards, -- Bhargav
Convert Texas Instruments DMA Crossbar from text to DT schema. Modify MAINTAINERS file to correctly point to new yaml file. Signed-off-by: Bhargav Joshi <j.bhargav.u@gmail.com> --- Changes in v2: - Removed the unmatched `ti,omap4430-sdma` compatible string from the example block and trim down example - Restored dropped documentation regarding client dma-cells configuration into the top-level description block. - Updated the MAINTAINERS file to replace the old .txt reference with the new .yaml file path. - Added constraints on its inner tuple dimensions of ti,reserved-dma-request-ranges - Link to v1: https://lore.kernel.org/r/20260708-ti-dma-crossbar-v1-1-f62796428f13@gmail.com --- .../bindings/dma/ti,dra7-dma-crossbar.yaml | 89 ++++++++++++++++++++++ .../devicetree/bindings/dma/ti-dma-crossbar.txt | 68 ----------------- MAINTAINERS | 2 +- 3 files changed, 90 insertions(+), 69 deletions(-) diff --git a/Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml b/Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml @@ -XXX,XX +XXX,XX @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/dma/ti,dra7-dma-crossbar.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments DMA Crossbar (DMA request router) + +maintainers: + - Vignesh Raghavendra <vigneshr@ti.com> + - Bhargav Joshi <j.bhargav.u@gmail.com> + +description: + When requesting channel via ti,dra7-dma-crossbar, the DMA client must request + the DMA event number as crossbar ID (input to the DMA crossbar). For + ti,am335x-edma-crossbar the meaning of parameters of dmas for clients dmas = + <&edma_xbar 12 0 1>; where <12> is the DMA request number, <0> is the TC the + event should be assigned and <1> is the mux selection for in the crossbar. + When mux 0 is used the DMA channel can be requested directly from edma node. + +properties: + compatible: + enum: + - ti,dra7-dma-crossbar + - ti,am335x-edma-crossbar + + reg: + maxItems: 1 + + "#dma-cells": + minimum: 1 + maximum: 3 + + dma-requests: + minimum: 1 + maximum: 256 + + dma-masters: + maxItems: 1 + + ti,dma-safe-map: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Safe routing value for unused request lines + + ti,reserved-dma-request-ranges: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + description: + DMA request ranges which should not be used when mapping xbar input to + DMA request, they are either allocated to be used by for example the DSP + or they are used as memcpy channels in eDMA. + items: + items: + - description: starting DMA request line number + - description: number of consecutive lines to reserve + +required: + - compatible + - reg + - "#dma-cells" + - dma-requests + - dma-masters + +allOf: + - $ref: dma-router.yaml# + + - if: + properties: + compatible: + contains: + const: ti,am335x-edma-crossbar + then: + properties: + "#dma-cells": + const: 3 + +unevaluatedProperties: false + +examples: + - | + dma-router@4a002b78 { + compatible = "ti,dra7-dma-crossbar"; + reg = <0x4a002b78 0xfc>; + #dma-cells = <1>; + dma-requests = <205>; + ti,dma-safe-map = <0>; + /* Protect the sDMA request ranges: 10-14 and 100-126 */ + ti,reserved-dma-request-ranges = <10 5>, <100 27>; + dma-masters = <&sdma>; + }; diff --git a/Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt b/Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt deleted file mode 100644 index XXXXXXX..XXXXXXX --- a/Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt +++ /dev/null @@ -XXX,XX +XXX,XX @@ -Texas Instruments DMA Crossbar (DMA request router) - -Required properties: -- compatible: "ti,dra7-dma-crossbar" for DRA7xx DMA crossbar - "ti,am335x-edma-crossbar" for AM335x and AM437x -- reg: Memory map for accessing module -- #dma-cells: Should be set to match with the DMA controller's dma-cells - for ti,dra7-dma-crossbar and <3> for ti,am335x-edma-crossbar. -- dma-requests: Number of DMA requests the crossbar can receive -- dma-masters: phandle pointing to the DMA controller - -The DMA controller node need to have the following poroperties: -- dma-requests: Number of DMA requests the controller can handle - -Optional properties: -- ti,dma-safe-map: Safe routing value for unused request lines -- ti,reserved-dma-request-ranges: DMA request ranges which should not be used - when mapping xbar input to DMA request, they are either - allocated to be used by for example the DSP or they are used as - memcpy channels in eDMA. - -Notes: -When requesting channel via ti,dra7-dma-crossbar, the DMA client must request -the DMA event number as crossbar ID (input to the DMA crossbar). - -For ti,am335x-edma-crossbar: the meaning of parameters of dmas for clients: -dmas = <&edma_xbar 12 0 1>; where <12> is the DMA request number, <0> is the TC -the event should be assigned and <1> is the mux selection for in the crossbar. -When mux 0 is used the DMA channel can be requested directly from edma node. - -Example: - -/* DMA controller */ -sdma: dma-controller@4a056000 { - compatible = "ti,omap4430-sdma"; - reg = <0x4a056000 0x1000>; - interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; - #dma-cells = <1>; - dma-channels = <32>; - dma-requests = <127>; -}; - -/* DMA crossbar */ -sdma_xbar: dma-router@4a002b78 { - compatible = "ti,dra7-dma-crossbar"; - reg = <0x4a002b78 0xfc>; - #dma-cells = <1>; - dma-requests = <205>; - ti,dma-safe-map = <0>; - /* Protect the sDMA request ranges: 10-14 and 100-126 */ - ti,reserved-dma-request-ranges = <10 5>, <100 27>; - dma-masters = <&sdma>; -}; - -/* DMA client */ -uart1: serial@4806a000 { - compatible = "ti,omap4-uart"; - reg = <0x4806a000 0x100>; - interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; - ti,hwmods = "uart1"; - clock-frequency = <48000000>; - /* Requesting crossbar input 49 and 50 */ - dmas = <&sdma_xbar 49>, <&sdma_xbar 50>; - dma-names = "tx", "rx"; -}; diff --git a/MAINTAINERS b/MAINTAINERS index XXXXXXX..XXXXXXX 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -XXX,XX +XXX,XX @@ TEXAS INSTRUMENTS DMA DRIVERS M: Vignesh Raghavendra <vigneshr@ti.com> L: dmaengine@vger.kernel.org S: Maintained -F: Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt +F: Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml F: Documentation/devicetree/bindings/dma/ti-edma.txt F: Documentation/devicetree/bindings/dma/ti/ F: drivers/dma/ti/ --- base-commit: 0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53 change-id: 20260708-ti-dma-crossbar-ae8411c5d982 Best regards, -- Bhargav