On 08/09/2019 15.06, Vinod Koul wrote:
> On 06-09-19, 17:18, Peter Ujfalusi wrote:
>> On systems where multiple DMA controllers available, none Slave (for example
> 
> On systems with multiple DMA controllers, non Slave...

Sure.

>> memcpy operation) users can not be described in DT as there is no device
>> involved from the DMA controller's point of view, DMA binding is not usable.
>> However in these systems still a peripheral might need to be serviced by or
>> it is better to serviced by specific DMA controller.
>> When a memcpy is used to/from a memory mapped region for example a DMA in the
>> same domain can perform better.
>> For generic software modules doing mem 2 mem operations it also matter that
>> they will get a channel from a controller which is faster in DDR to DDR mode
>> rather then from the first controller happen to be loaded.
>>
>> This property is inherited, so it may be specified in a device node or in any
>> of its parent nodes.
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfal...@ti.com>
>> ---
>>  .../devicetree/bindings/dma/dma-domain.yaml   | 59 +++++++++++++++++++
>>  1 file changed, 59 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/dma/dma-domain.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/dma/dma-domain.yaml 
>> b/Documentation/devicetree/bindings/dma/dma-domain.yaml
>> new file mode 100644
>> index 000000000000..c2f182f30081
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/dma/dma-domain.yaml
>> @@ -0,0 +1,59 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/dma/dma-controller.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: DMA Domain Controller Definition
>> +
>> +maintainers:
>> +  - Vinod Koul <vk...@kernel.org>
>> +
>> +allOf:
>> +  - $ref: "dma-controller.yaml#"
>> +
>> +description:
>> +  On systems where multiple DMA controllers available, none Slave (for 
>> example
>> +  memcpy operation) users can not be described in DT as there is no device
>> +  involved from the DMA controller's point of view, DMA binding is not 
>> usable.
>> +  However in these systems still a peripheral might need to be serviced by 
>> or
>> +  it is better to serviced by specific DMA controller.
>> +  When a memcpy is used to/from a memory mapped region for example a DMA in 
>> the
>> +  same domain can perform better.
>> +  For generic software modules doing mem 2 mem operations it also matter 
>> that
>> +  they will get a channel from a controller which is faster in DDR to DDR 
>> mode
>> +  rather then from the first controller happen to be loaded.
>> +
>> +  This property is inherited, so it may be specified in a device node or in 
>> any
>> +  of its parent nodes.
>> +
>> +properties:
>> +  $dma-domain-controller:
>> +    $ref: /schemas/types.yaml#definitions/phandle
>> +    description:
>> +      phande to the DMA controller node which should be used for the device 
>> or
>> +      domain.
>> +
>> +examples:
>> +  - |
>> +    / {
>> +        model = "Texas Instruments K3 AM654 SoC";
>> +        compatible = "ti,am654";
>> +        interrupt-parent = <&gic500>;
>> +        /* For modules without device, DDR to DDR is faster on main UDMAP */
>> +        dma-domain-controller = <&main_udmap>;
>> +        #address-cells = <2>;
>> +        #size-cells = <2>;
>> +        ...
>> +    };
>> +
>> +    &cbass_main {
>> +        /* For modules within MAIN domain, use main UDMAP */
>> +        dma-domain-controller = <&main_udmap>;
>> +    };
>> +
>> +    &cbass_mcu {
>> +        /* For modules within MCU domain, use mcu UDMAP */
>> +        dma-domain-controller = <&mcu_udmap>;
> 
> perhaps add the example of main_udmap and mcu_udmap as well

I can populate the tree with the main/mcu_udmap and on MCU I can also
add the OSPI node.
The idea is to specify the dma controller to be used for non slave
channels on every device on MAIN/MCU domain.
UDMAPs do not need this property specified, it is needed for clients.

> 
>> +    };
>> +...
>> -- 
>> Peter
>>
>> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
>> Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

Reply via email to