1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/dma/ti/k3-bcdma.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Texas Instruments K3 DMSS BCDMA Device Tree Bindings 8 9maintainers: 10 - Peter Ujfalusi <peter.ujfalusi@ti.com> 11 12description: | 13 The Block Copy DMA (BCDMA) is intended to perform similar functions as the TR 14 mode channels of K3 UDMA-P. 15 BCDMA includes block copy channels and Split channels. 16 17 Block copy channels mainly used for memory to memory transfers, but with 18 optional triggers a block copy channel can service peripherals by accessing 19 directly to memory mapped registers or area. 20 21 Split channels can be used to service PSI-L based peripherals. 22 The peripherals can be PSI-L native or legacy, non PSI-L native peripherals 23 with PDMAs. PDMA is tasked to act as a bridge between the PSI-L fabric and the 24 legacy peripheral. 25 26 PDMAs can be configured via BCDMA split channel's peer registers to match with 27 the configuration of the legacy peripheral. 28 29allOf: 30 - $ref: /schemas/dma/dma-controller.yaml# 31 32properties: 33 compatible: 34 const: ti,am64-dmss-bcdma 35 36 "#dma-cells": 37 const: 3 38 description: | 39 cell 1: type of the BCDMA channel to be used to service the peripheral: 40 0 - split channel 41 1 - block copy channel using global trigger 1 42 2 - block copy channel using global trigger 2 43 3 - block copy channel using local trigger 44 45 cell 2: parameter for the channel: 46 if cell 1 is 0 (split channel): 47 PSI-L thread ID of the remote (to BCDMA) end. 48 Valid ranges for thread ID depends on the data movement direction: 49 for source thread IDs (rx): 0 - 0x7fff 50 for destination thread IDs (tx): 0x8000 - 0xffff 51 52 Please refer to the device documentation for the PSI-L thread map and 53 also the PSI-L peripheral chapter for the correct thread ID. 54 if cell 1 is 1 or 2 (block copy channel using global trigger): 55 Unused, ignored 56 57 The trigger must be configured for the channel externally to BCDMA, 58 channels using global triggers should not be requested directly, but 59 via DMA event router. 60 if cell 1 is 3 (block copy channel using local trigger): 61 bchan number of the locally triggered channel 62 63 cell 3: ASEL value for the channel 64 65 reg: 66 maxItems: 5 67 68 reg-names: 69 items: 70 - const: gcfg 71 - const: bchanrt 72 - const: rchanrt 73 - const: tchanrt 74 - const: ringrt 75 76 msi-parent: true 77 78 ti,asel: 79 $ref: /schemas/types.yaml#/definitions/uint32 80 description: ASEL value for non slave channels 81 82 ti,sci-rm-range-bchan: 83 $ref: /schemas/types.yaml#/definitions/uint32-array 84 description: | 85 Array of BCDMA block-copy channel resource subtypes for resource 86 allocation for this host 87 minItems: 1 88 # Should be enough 89 maxItems: 255 90 items: 91 maximum: 0x3f 92 93 ti,sci-rm-range-tchan: 94 $ref: /schemas/types.yaml#/definitions/uint32-array 95 description: | 96 Array of BCDMA split tx channel resource subtypes for resource allocation 97 for this host 98 minItems: 1 99 # Should be enough 100 maxItems: 255 101 items: 102 maximum: 0x3f 103 104 ti,sci-rm-range-rchan: 105 $ref: /schemas/types.yaml#/definitions/uint32-array 106 description: | 107 Array of BCDMA split rx channel resource subtypes for resource allocation 108 for this host 109 minItems: 1 110 # Should be enough 111 maxItems: 255 112 items: 113 maximum: 0x3f 114 115required: 116 - compatible 117 - "#dma-cells" 118 - reg 119 - reg-names 120 - msi-parent 121 - ti,sci 122 - ti,sci-dev-id 123 - ti,sci-rm-range-bchan 124 - ti,sci-rm-range-tchan 125 - ti,sci-rm-range-rchan 126 127unevaluatedProperties: false 128 129examples: 130 - |+ 131 cbass_main { 132 #address-cells = <2>; 133 #size-cells = <2>; 134 135 main_dmss { 136 compatible = "simple-mfd"; 137 #address-cells = <2>; 138 #size-cells = <2>; 139 dma-ranges; 140 ranges; 141 142 ti,sci-dev-id = <25>; 143 144 main_bcdma: dma-controller@485c0100 { 145 compatible = "ti,am64-dmss-bcdma"; 146 147 reg = <0x0 0x485c0100 0x0 0x100>, 148 <0x0 0x4c000000 0x0 0x20000>, 149 <0x0 0x4a820000 0x0 0x20000>, 150 <0x0 0x4aa40000 0x0 0x20000>, 151 <0x0 0x4bc00000 0x0 0x100000>; 152 reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt"; 153 msi-parent = <&inta_main_dmss>; 154 #dma-cells = <3>; 155 156 ti,sci = <&dmsc>; 157 ti,sci-dev-id = <26>; 158 159 ti,sci-rm-range-bchan = <0x20>; /* BLOCK_COPY_CHAN */ 160 ti,sci-rm-range-rchan = <0x21>; /* SPLIT_TR_RX_CHAN */ 161 ti,sci-rm-range-tchan = <0x22>; /* SPLIT_TR_TX_CHAN */ 162 }; 163 }; 164 }; 165