[PATCH v5 12/18] dt-bindings: dma: ti: Add K3 BCDMA V2

Sai Sree Kartheek Adivi s-adivi at ti.com
Wed Mar 4 02:52:54 PST 2026


On 23/02/26 23:50, Rob Herring wrote:
> On Thu, Feb 19, 2026 at 05:45:46PM +0530, Sai Sree Kartheek Adivi wrote:
>> On 19/02/26 13:13, Krzysztof Kozlowski wrote:
>>
>> Hi Krzysztof,
>>
>> Thanks for the review.
>>> On Wed, Feb 18, 2026 at 03:22:37PM +0530, Sai Sree Kartheek Adivi wrote:
>>>> New binding document for
>>> Fix wrapping - it's wrapped too early.
>> Ack. will fix it in v6.
>>>> Texas Instruments K3 Block Copy DMA (BCDMA) V2.
>>>>
>>>> BCDMA V2 is introduced as part of AM62L.
>>>>
>>>> Signed-off-by: Sai Sree Kartheek Adivi <s-adivi at ti.com>
>>>> ---
>>>>   .../bindings/dma/ti/ti,am62l-dmss-bcdma.yaml  | 120 ++++++++++++++++++
>>>>   1 file changed, 120 insertions(+)
>>>>   create mode 100644 Documentation/devicetree/bindings/dma/ti/ti,am62l-dmss-bcdma.yaml
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/dma/ti/ti,am62l-dmss-bcdma.yaml b/Documentation/devicetree/bindings/dma/ti/ti,am62l-dmss-bcdma.yaml
>>>> new file mode 100644
>>>> index 0000000000000..6fa08f22df375
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/dma/ti/ti,am62l-dmss-bcdma.yaml
>>>> @@ -0,0 +1,120 @@
>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>>> +# Copyright (C) 2024-25 Texas Instruments Incorporated
>>>> +# Author: Sai Sree Kartheek Adivi <s-adivi at ti.com>
>>>> +%YAML 1.2
>>>> +---
>>>> +$id: http://devicetree.org/schemas/dma/ti/ti,am62l-dmss-bcdma.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: Texas Instruments K3 DMSS BCDMA V2
>>>> +
>>>> +maintainers:
>>>> +  - Sai Sree Kartheek Adivi <s-adivi at ti.com>
>>>> +
>>>> +description:
>>>> +  The BCDMA V2 is intended to perform similar functions as the TR
>>>> +  mode channels of K3 UDMA-P.
>>>> +  BCDMA V2 includes block copy channels and Split channels.
>>>> +
>>>> +  Block copy channels mainly used for memory to memory transfers, but with
>>>> +  optional triggers a block copy channel can service peripherals by accessing
>>>> +  directly to memory mapped registers or area.
>>>> +
>>>> +  Split channels can be used to service PSI-L based peripherals.
>>>> +  The peripherals can be PSI-L native or legacy, non PSI-L native peripherals
>>>> +  with PDMAs. PDMA is tasked to act as a bridge between the PSI-L fabric and the
>>>> +  legacy peripheral.
>>>> +
>>>> +allOf:
>>>> +  - $ref: /schemas/dma/dma-controller.yaml#
>>>> +
>>>> +properties:
>>>> +  compatible:
>>>> +    const: ti,am62l-dmss-bcdma
>>>> +
>>>> +  reg:
>>>> +    items:
>>>> +      - description: BCDMA Control & Status Registers region
>>>> +      - description: Block Copy Channel Realtime Registers region
>>>> +      - description: Channel Realtime Registers region
>>>> +      - description: Ring Realtime Registers region
>>>> +
>>>> +  reg-names:
>>>> +    items:
>>>> +      - const: gcfg
>>>> +      - const: bchanrt
>>>> +      - const: chanrt
>>>> +      - const: ringrt
>>>> +
>>>> +  "#address-cells":
>>>> +    const: 0
>>>> +
>>>> +  "#interrupt-cells":
>>>> +    const: 1
>>> I don't get why this is nexus but not a interrupt-controller.
>>>
>>> Can you point me to DTS with complete picture using this?
>> Please refer https://github.com/sskartheekadivi/linux/commit/4a7078a6892bfbc4c620b9668e3421b4c7405ca4
>>
>> for the dt nodes of AM62L BCDMA and PKTDMA.
>>
>> Refer to the below tree for full set of driver, dt-binding and dts changes
>>
>> https://github.com/sskartheekadivi/linux/commits/dma-upstream-v5/
> Whether this is an interrupt-map or a chained interrupt controller 
> entirely depends on whether the interrupts are transparent to the 
> DMA controller (i.e. do they have to be acked?). interrupt-map is 
> generally for transparent cases.
>
> If not transparent, then just 'interrupts' and 'interrupt-controller' 
> should work for you. You can map 'interrupts' entries to channels like 
> many other DMA controllers do that have per channel interrupts.

Thanks for the clarification, Rob.


To answer your question: the interrupts are definitely not transparent. They

have to be explicitly acked by writing to the BCDMA registers.

Given that, interrupt-map is the wrong approach here. I'll drop the nexus

properties and figure out the best way to map the per-channel interrupts

using standard interrupts in v6.


Regards,

Kartheek

>
> Rob



More information about the linux-arm-kernel mailing list