* [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema
@ 2026-07-07 21:29 Bhargav Joshi
2026-07-07 21:36 ` sashiko-bot
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Bhargav Joshi @ 2026-07-07 21:29 UTC (permalink / raw)
To: Vinod Koul, Frank Li, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Vignesh Raghavendra, Peter Ujfalusi
Cc: dmaengine, devicetree, linux-kernel, goledhruva, m-chawdhry,
daniel.baluta, simona.toaca, j.bhargav.u
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 000000000000..287260396098
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml
@@ -0,0 +1,105 @@
+# 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 1f9831540c97..000000000000
--- a/Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-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
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema
2026-07-07 21:29 [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema Bhargav Joshi
@ 2026-07-07 21:36 ` sashiko-bot
2026-07-07 22:33 ` Rob Herring (Arm)
2026-07-08 5:15 ` kernel test robot
2 siblings, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-07-07 21:36 UTC (permalink / raw)
To: Bhargav Joshi; +Cc: conor+dt, robh, Frank.Li, dmaengine, vkoul, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Low] The YAML conversion drops critical documentation detailing the DMA specifier layout for clients (formatting and meaning of the `#dma-cells` parameters).
- [Low] The `ti,reserved-dma-request-ranges` property is defined as a `uint32-matrix` but lacks constraints on its inner tuple dimensions.
--
--- Patch [1]: [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema ---
commit adc2900e39482ff7d8433cdf6ef2cabd79619bea
Author: Bhargav Joshi <j.bhargav.u@gmail.com>
dt-bindings: dma: ti,dma-crossbar: Convert to DT schema
Convert Texas Instruments DMA Crossbar from text to DT schema
> 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 0000000000000..287260396098f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.yaml
> @@ -0,0 +1,105 @@
> +# 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
> +
[Severity: Low]
Does this conversion unintentionally drop the documentation explaining the DMA
specifier layout for clients?
The deleted text binding included details about the formatting and meaning of
the parameters, which device tree authors need to correctly formulate the dmas
property:
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.
Could this description be preserved in the YAML schema, either in the
top-level description or under this #dma-cells property?
> + 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.
[Severity: Low]
Should this uint32-matrix property include constraints on its inner tuple
dimensions?
Without items definitions to enforce a tuple length of 2 (start and length),
schema validation might fail to reject device trees that have incorrect
tuple sizes like <10 5 99>.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260708-ti-dma-crossbar-v1-1-f62796428f13@gmail.com?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema
2026-07-07 21:29 [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema Bhargav Joshi
2026-07-07 21:36 ` sashiko-bot
@ 2026-07-07 22:33 ` Rob Herring (Arm)
2026-07-08 5:15 ` kernel test robot
2 siblings, 0 replies; 4+ messages in thread
From: Rob Herring (Arm) @ 2026-07-07 22:33 UTC (permalink / raw)
To: Bhargav Joshi
Cc: dmaengine, Frank Li, Vignesh Raghavendra, Conor Dooley,
Krzysztof Kozlowski, Peter Ujfalusi, daniel.baluta, goledhruva,
linux-kernel, simona.toaca, m-chawdhry, devicetree, Vinod Koul
On Wed, 08 Jul 2026 02:59:01 +0530, Bhargav Joshi wrote:
> 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(-)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/dma/ti,dra7-dma-crossbar.example.dtb: /example-0/dma-controller@4a056000: failed to match any schema with compatible: ['ti,omap4430-sdma']
doc reference errors (make refcheckdocs):
Warning: MAINTAINERS references a file that doesn't exist: Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt
MAINTAINERS: Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt
See https://patchwork.kernel.org/project/devicetree/patch/20260708-ti-dma-crossbar-v1-1-f62796428f13@gmail.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema
2026-07-07 21:29 [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema Bhargav Joshi
2026-07-07 21:36 ` sashiko-bot
2026-07-07 22:33 ` Rob Herring (Arm)
@ 2026-07-08 5:15 ` kernel test robot
2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2026-07-08 5:15 UTC (permalink / raw)
To: Bhargav Joshi, Vinod Koul, Frank Li, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Vignesh Raghavendra,
Peter Ujfalusi
Cc: oe-kbuild-all, dmaengine, devicetree, linux-kernel, goledhruva,
m-chawdhry, daniel.baluta, simona.toaca, j.bhargav.u
Hi Bhargav,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53]
url: https://github.com/intel-lab-lkp/linux/commits/Bhargav-Joshi/dt-bindings-dma-ti-dma-crossbar-Convert-to-DT-schema/20260708-053027
base: 0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53
patch link: https://lore.kernel.org/r/20260708-ti-dma-crossbar-v1-1-f62796428f13%40gmail.com
patch subject: [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema
compiler: clang version 22.1.8 (https://github.com/llvm/llvm-project ca7933e47d3a3451d81e72ac174dcb5aa28b59d1)
docutils: docutils (Docutils 0.21.2, Python 3.13.5, on linux)
reproduce: (https://download.01.org/0day-ci/archive/20260708/202607080708.nM6GUXuA-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202607080708.nM6GUXuA-lkp@intel.com/
All warnings (new ones prefixed by >>):
Warning: Documentation/translations/zh_CN/how-to.rst references a file that doesn't exist: Documentation/xxx/xxx.rst
Warning: Documentation/translations/zh_CN/networking/xfrm_proc.rst references a file that doesn't exist: Documentation/networking/xfrm_proc.rst
Warning: Documentation/translations/zh_CN/scsi/scsi_mid_low_api.rst references a file that doesn't exist: Documentation/Configure.help
Warning: MAINTAINERS references a file that doesn't exist: Documentation/ABI/testing/sysfs-platform-ayaneo
Warning: MAINTAINERS references a file that doesn't exist: Documentation/devicetree/bindings/display/bridge/megachips-stdpxxxx-ge-b850v3-fw.txt
>> Warning: MAINTAINERS references a file that doesn't exist: Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt
Warning: arch/powerpc/sysdev/mpic.c references a file that doesn't exist: Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
Warning: drivers/net/ethernet/smsc/Kconfig references a file that doesn't exist: file:Documentation/networking/device_drivers/ethernet/smsc/smc9.rst
Warning: rust/kernel/sync/atomic/ordering.rs references a file that doesn't exist: srctree/tools/memory-model/Documentation/explanation.txt
Warning: tools/docs/documentation-file-ref-check references a file that doesn't exist: Documentation/virtual/lguest/lguest.c
Warning: tools/docs/documentation-file-ref-check references a file that doesn't exist: m,\b(\S*)(Documentation/[A-Za-z0-9
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-08 5:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-07 21:29 [PATCH] dt-bindings: dma: ti,dma-crossbar: Convert to DT schema Bhargav Joshi
2026-07-07 21:36 ` sashiko-bot
2026-07-07 22:33 ` Rob Herring (Arm)
2026-07-08 5:15 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox