1*dfcfe386SStefan Wahren# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*dfcfe386SStefan Wahren%YAML 1.2 3*dfcfe386SStefan Wahren--- 4*dfcfe386SStefan Wahren$id: http://devicetree.org/schemas/dma/brcm,bcm2835-dma.yaml# 5*dfcfe386SStefan Wahren$schema: http://devicetree.org/meta-schemas/core.yaml# 6*dfcfe386SStefan Wahren 7*dfcfe386SStefan Wahrentitle: BCM2835 DMA controller 8*dfcfe386SStefan Wahren 9*dfcfe386SStefan Wahrenmaintainers: 10*dfcfe386SStefan Wahren - Nicolas Saenz Julienne <nsaenz@kernel.org> 11*dfcfe386SStefan Wahren 12*dfcfe386SStefan Wahrendescription: 13*dfcfe386SStefan Wahren The BCM2835 DMA controller has 16 channels in total. Only the lower 14*dfcfe386SStefan Wahren 13 channels have an associated IRQ. Some arbitrary channels are used by the 15*dfcfe386SStefan Wahren VideoCore firmware (1,3,6,7 in the current firmware version). The channels 16*dfcfe386SStefan Wahren 0, 2 and 3 have special functionality and should not be used by the driver. 17*dfcfe386SStefan Wahren 18*dfcfe386SStefan WahrenallOf: 19*dfcfe386SStefan Wahren - $ref: dma-controller.yaml# 20*dfcfe386SStefan Wahren 21*dfcfe386SStefan Wahrenproperties: 22*dfcfe386SStefan Wahren compatible: 23*dfcfe386SStefan Wahren const: brcm,bcm2835-dma 24*dfcfe386SStefan Wahren 25*dfcfe386SStefan Wahren reg: 26*dfcfe386SStefan Wahren maxItems: 1 27*dfcfe386SStefan Wahren 28*dfcfe386SStefan Wahren interrupts: 29*dfcfe386SStefan Wahren description: 30*dfcfe386SStefan Wahren Should contain the DMA interrupts associated to the DMA channels in 31*dfcfe386SStefan Wahren ascending order. 32*dfcfe386SStefan Wahren minItems: 1 33*dfcfe386SStefan Wahren maxItems: 16 34*dfcfe386SStefan Wahren 35*dfcfe386SStefan Wahren interrupt-names: 36*dfcfe386SStefan Wahren minItems: 1 37*dfcfe386SStefan Wahren maxItems: 16 38*dfcfe386SStefan Wahren 39*dfcfe386SStefan Wahren '#dma-cells': 40*dfcfe386SStefan Wahren description: The single cell represents the DREQ number. 41*dfcfe386SStefan Wahren const: 1 42*dfcfe386SStefan Wahren 43*dfcfe386SStefan Wahren brcm,dma-channel-mask: 44*dfcfe386SStefan Wahren $ref: /schemas/types.yaml#/definitions/uint32 45*dfcfe386SStefan Wahren description: 46*dfcfe386SStefan Wahren Bitmask of available DMA channels in ascending order that are 47*dfcfe386SStefan Wahren not reserved by firmware and are available to the 48*dfcfe386SStefan Wahren kernel. i.e. first channel corresponds to LSB. 49*dfcfe386SStefan Wahren 50*dfcfe386SStefan WahrenunevaluatedProperties: false 51*dfcfe386SStefan Wahren 52*dfcfe386SStefan Wahrenrequired: 53*dfcfe386SStefan Wahren - compatible 54*dfcfe386SStefan Wahren - reg 55*dfcfe386SStefan Wahren - interrupts 56*dfcfe386SStefan Wahren - "#dma-cells" 57*dfcfe386SStefan Wahren - brcm,dma-channel-mask 58*dfcfe386SStefan Wahren 59*dfcfe386SStefan Wahrenexamples: 60*dfcfe386SStefan Wahren - | 61*dfcfe386SStefan Wahren dma-controller@7e007000 { 62*dfcfe386SStefan Wahren compatible = "brcm,bcm2835-dma"; 63*dfcfe386SStefan Wahren reg = <0x7e007000 0xf00>; 64*dfcfe386SStefan Wahren interrupts = <1 16>, 65*dfcfe386SStefan Wahren <1 17>, 66*dfcfe386SStefan Wahren <1 18>, 67*dfcfe386SStefan Wahren <1 19>, 68*dfcfe386SStefan Wahren <1 20>, 69*dfcfe386SStefan Wahren <1 21>, 70*dfcfe386SStefan Wahren <1 22>, 71*dfcfe386SStefan Wahren <1 23>, 72*dfcfe386SStefan Wahren <1 24>, 73*dfcfe386SStefan Wahren <1 25>, 74*dfcfe386SStefan Wahren <1 26>, 75*dfcfe386SStefan Wahren /* dma channel 11-14 share one irq */ 76*dfcfe386SStefan Wahren <1 27>, 77*dfcfe386SStefan Wahren <1 27>, 78*dfcfe386SStefan Wahren <1 27>, 79*dfcfe386SStefan Wahren <1 27>, 80*dfcfe386SStefan Wahren /* unused shared irq for all channels */ 81*dfcfe386SStefan Wahren <1 28>; 82*dfcfe386SStefan Wahren interrupt-names = "dma0", 83*dfcfe386SStefan Wahren "dma1", 84*dfcfe386SStefan Wahren "dma2", 85*dfcfe386SStefan Wahren "dma3", 86*dfcfe386SStefan Wahren "dma4", 87*dfcfe386SStefan Wahren "dma5", 88*dfcfe386SStefan Wahren "dma6", 89*dfcfe386SStefan Wahren "dma7", 90*dfcfe386SStefan Wahren "dma8", 91*dfcfe386SStefan Wahren "dma9", 92*dfcfe386SStefan Wahren "dma10", 93*dfcfe386SStefan Wahren "dma11", 94*dfcfe386SStefan Wahren "dma12", 95*dfcfe386SStefan Wahren "dma13", 96*dfcfe386SStefan Wahren "dma14", 97*dfcfe386SStefan Wahren "dma-shared-all"; 98*dfcfe386SStefan Wahren #dma-cells = <1>; 99*dfcfe386SStefan Wahren brcm,dma-channel-mask = <0x7f35>; 100*dfcfe386SStefan Wahren }; 101*dfcfe386SStefan Wahren 102*dfcfe386SStefan Wahren... 103