dt-bindings: dma: ti,cppi41: Convert to DT schema

Convert TI CPPI 4.1 DMA controller text bindings to DT schema. Add
ti,am3359-cppi41 and ti,da830-cppi41 into single schema since they share
the same hardware IP block and driver. Add undocumented #dma-requests
and power-domains properties to match existing DTS usage.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Bhargav Joshi <j.bhargav.u@gmail.com>
Link: https://patch.msgid.link/20260901-ti-am33-usb-v3-1-5e15c617d2e9@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Bhargav Joshi 2026-09-01 04:53:05 +05:30 committed by Vinod Koul
parent 6ba190e3b2
commit c64189e977
3 changed files with 109 additions and 26 deletions

View File

@ -0,0 +1,109 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/ti/ti,cppi41.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI CPPI41 DMA Controller
maintainers:
- Sebastian Andrzej Siewior <bigeasy@linutronix.de>
properties:
compatible:
enum:
- ti,am3359-cppi41
- ti,da830-cppi41
reg:
minItems: 3
maxItems: 4
reg-names:
minItems: 3
maxItems: 4
interrupts:
maxItems: 1
interrupt-names:
const: glue
"#dma-cells":
const: 2
dma-channels:
description: Number of DMA channels supported.
$ref: /schemas/types.yaml#/definitions/uint32
dma-requests:
description: Number of DMA requests supported.
$ref: /schemas/types.yaml#/definitions/uint32
power-domains:
maxItems: 1
"#dma-channels":
description: Deprecated, use dma-channels instead.
deprecated: true
"#dma-requests":
description: Deprecated, use dma-requests instead.
deprecated: true
required:
- compatible
- reg
- reg-names
- "#dma-cells"
- dma-channels
allOf:
- $ref: /schemas/dma/dma-controller.yaml#
- if:
properties:
compatible:
contains:
const: ti,am3359-cppi41
then:
properties:
reg:
minItems: 4
reg-names:
items:
- const: glue
- const: controller
- const: scheduler
- const: queuemgr
power-domains: false
required:
- interrupt-names
- interrupts
- dma-requests
else:
properties:
reg:
maxItems: 3
reg-names:
items:
- const: controller
- const: scheduler
- const: queuemgr
unevaluatedProperties: false
examples:
- |
dma-controller@7402000 {
compatible = "ti,am3359-cppi41";
reg = <0x47400000 0x1000>,
<0x47402000 0x1000>,
<0x47403000 0x1000>,
<0x47404000 0x4000>;
reg-names = "glue", "controller", "scheduler", "queuemgr";
interrupts = <17>;
interrupt-names = "glue";
#dma-cells = <2>;
dma-channels = <30>;
dma-requests = <256>;
};

View File

@ -51,20 +51,6 @@ USB
The controller should have an "usb" alias numbered properly in the alias
node.
DMA
~~~
- compatible: ti,am3359-cppi41
- reg: offset and length of the following register spaces: USBSS, USB
CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager
- reg-names: glue, controller, scheduler, queuemgr
- #dma-cells: should be set to 2. The first number represents the
endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29
for endpoints 1 … 15 on instance 1). The second number is 0 for RX and
1 for TX transfers.
- dma-channels: should be set to 30 representing the 15 endpoints for
each USB instance.
- #dma-channels: deprecated
Example:
~~~~~~~~
The following example contains all the nodes as used on am335x-evm:

View File

@ -27,18 +27,6 @@ Optional properties:
~~~~~~~~~~~~~~~~~~~~
- vbus-supply: Phandle to a regulator providing the USB bus power.
DMA
~~~
- compatible: ti,da830-cppi41
- reg: offset and length of the following register spaces: CPPI DMA Controller,
CPPI DMA Scheduler, Queue Manager
- reg-names: "controller", "scheduler", "queuemgr"
- #dma-cells: should be set to 2. The first number represents the
channel number (0 … 3 for endpoints 1 … 4).
The second number is 0 for RX and 1 for TX transfers.
- dma-channels: should be set to 4 representing the 4 endpoints.
- #dma-channels: deprecated
Example:
usb_phy: usb-phy {
compatible = "ti,da830-usb-phy";