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.ujfalusi@xxxxxx> >> --- >> .../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 <vkoul@xxxxxxxxxx> >> + >> +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