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