Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: dma: convert bcm2835-dma bindings to YAML

Convert the DT binding document for bcm2835-dma from .txt to YAML.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230617133620.53129-3-stefan.wahren@i2se.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Stefan Wahren and committed by
Vinod Koul
dfcfe386 fbac8ceb

+102 -83
-83
Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
··· 1 - * BCM2835 DMA controller 2 - 3 - The BCM2835 DMA controller has 16 channels in total. 4 - Only the lower 13 channels have an associated IRQ. 5 - Some arbitrary channels are used by the firmware 6 - (1,3,6,7 in the current firmware version). 7 - The channels 0,2 and 3 have special functionality 8 - and should not be used by the driver. 9 - 10 - Required properties: 11 - - compatible: Should be "brcm,bcm2835-dma". 12 - - reg: Should contain DMA registers location and length. 13 - - interrupts: Should contain the DMA interrupts associated 14 - to the DMA channels in ascending order. 15 - - interrupt-names: Should contain the names of the interrupt 16 - in the form "dmaXX". 17 - Use "dma-shared-all" for the common interrupt line 18 - that is shared by all dma channels. 19 - - #dma-cells: Must be <1>, the cell in the dmas property of the 20 - client device represents the DREQ number. 21 - - brcm,dma-channel-mask: Bit mask representing the channels 22 - not used by the firmware in ascending order, 23 - i.e. first channel corresponds to LSB. 24 - 25 - Example: 26 - 27 - dma: dma@7e007000 { 28 - compatible = "brcm,bcm2835-dma"; 29 - reg = <0x7e007000 0xf00>; 30 - interrupts = <1 16>, 31 - <1 17>, 32 - <1 18>, 33 - <1 19>, 34 - <1 20>, 35 - <1 21>, 36 - <1 22>, 37 - <1 23>, 38 - <1 24>, 39 - <1 25>, 40 - <1 26>, 41 - /* dma channel 11-14 share one irq */ 42 - <1 27>, 43 - <1 27>, 44 - <1 27>, 45 - <1 27>, 46 - /* unused shared irq for all channels */ 47 - <1 28>; 48 - interrupt-names = "dma0", 49 - "dma1", 50 - "dma2", 51 - "dma3", 52 - "dma4", 53 - "dma5", 54 - "dma6", 55 - "dma7", 56 - "dma8", 57 - "dma9", 58 - "dma10", 59 - "dma11", 60 - "dma12", 61 - "dma13", 62 - "dma14", 63 - "dma-shared-all"; 64 - 65 - #dma-cells = <1>; 66 - brcm,dma-channel-mask = <0x7f35>; 67 - }; 68 - 69 - 70 - DMA clients connected to the BCM2835 DMA controller must use the format 71 - described in the dma.txt file, using a two-cell specifier for each channel. 72 - 73 - Example: 74 - 75 - bcm2835_i2s: i2s@7e203000 { 76 - compatible = "brcm,bcm2835-i2s"; 77 - reg = < 0x7e203000 0x24>; 78 - clocks = <&clocks BCM2835_CLOCK_PCM>; 79 - 80 - dmas = <&dma 2>, 81 - <&dma 3>; 82 - dma-names = "tx", "rx"; 83 - };
+102
Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/dma/brcm,bcm2835-dma.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: BCM2835 DMA controller 8 + 9 + maintainers: 10 + - Nicolas Saenz Julienne <nsaenz@kernel.org> 11 + 12 + description: 13 + The BCM2835 DMA controller has 16 channels in total. Only the lower 14 + 13 channels have an associated IRQ. Some arbitrary channels are used by the 15 + VideoCore firmware (1,3,6,7 in the current firmware version). The channels 16 + 0, 2 and 3 have special functionality and should not be used by the driver. 17 + 18 + allOf: 19 + - $ref: dma-controller.yaml# 20 + 21 + properties: 22 + compatible: 23 + const: brcm,bcm2835-dma 24 + 25 + reg: 26 + maxItems: 1 27 + 28 + interrupts: 29 + description: 30 + Should contain the DMA interrupts associated to the DMA channels in 31 + ascending order. 32 + minItems: 1 33 + maxItems: 16 34 + 35 + interrupt-names: 36 + minItems: 1 37 + maxItems: 16 38 + 39 + '#dma-cells': 40 + description: The single cell represents the DREQ number. 41 + const: 1 42 + 43 + brcm,dma-channel-mask: 44 + $ref: /schemas/types.yaml#/definitions/uint32 45 + description: 46 + Bitmask of available DMA channels in ascending order that are 47 + not reserved by firmware and are available to the 48 + kernel. i.e. first channel corresponds to LSB. 49 + 50 + unevaluatedProperties: false 51 + 52 + required: 53 + - compatible 54 + - reg 55 + - interrupts 56 + - "#dma-cells" 57 + - brcm,dma-channel-mask 58 + 59 + examples: 60 + - | 61 + dma-controller@7e007000 { 62 + compatible = "brcm,bcm2835-dma"; 63 + reg = <0x7e007000 0xf00>; 64 + interrupts = <1 16>, 65 + <1 17>, 66 + <1 18>, 67 + <1 19>, 68 + <1 20>, 69 + <1 21>, 70 + <1 22>, 71 + <1 23>, 72 + <1 24>, 73 + <1 25>, 74 + <1 26>, 75 + /* dma channel 11-14 share one irq */ 76 + <1 27>, 77 + <1 27>, 78 + <1 27>, 79 + <1 27>, 80 + /* unused shared irq for all channels */ 81 + <1 28>; 82 + interrupt-names = "dma0", 83 + "dma1", 84 + "dma2", 85 + "dma3", 86 + "dma4", 87 + "dma5", 88 + "dma6", 89 + "dma7", 90 + "dma8", 91 + "dma9", 92 + "dma10", 93 + "dma11", 94 + "dma12", 95 + "dma13", 96 + "dma14", 97 + "dma-shared-all"; 98 + #dma-cells = <1>; 99 + brcm,dma-channel-mask = <0x7f35>; 100 + }; 101 + 102 + ...