diff --git a/Documentation/devicetree/bindings/dma/hisilicon,k3-dma-1.0.yaml b/Documentation/devicetree/bindings/dma/hisilicon,k3-dma-1.0.yaml new file mode 100644 index 000000000000..e60f2a572272 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/hisilicon,k3-dma-1.0.yaml @@ -0,0 +1,87 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/dma/hisilicon,k3-dma-1.0.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Hisilicon K3 DMA controller + +maintainers: + - Wei Xu + +properties: + compatible: + items: + - enum: + - hisilicon,k3-dma-1.0 + - hisilicon,hisi-pcm-asp-dma-1.0 + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + interrupts: + maxItems: 1 + + '#dma-cells': + const: 1 + + dma-channels: + description: Number of physical DMA channels supported. + maximum: 32 + + dma-requests: + description: Number of virtual DMA request lines supported. + maximum: 32 + + dma-channel-mask: + description: Bitmask of usable DMA channels. + + dma-no-cci: + type: boolean + description: DMA is not coherent with the CCI. + + dma-type: + $ref: /schemas/types.yaml#/definitions/string + description: SoC-specific DMA type name. + enum: + - hi3660_dma + - hi6220_dma + + interrupt-names: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - '#dma-cells' + - dma-channels + - dma-requests + +allOf: + - $ref: dma-controller.yaml# + - if: + properties: + compatible: + contains: + const: hisilicon,k3-dma-1.0 + then: + required: + - clocks + +additionalProperties: false + +examples: + - | + dma-controller@fcd02000 { + compatible = "hisilicon,k3-dma-1.0"; + reg = <0xfcd02000 0x1000>; + #dma-cells = <1>; + dma-channels = <16>; + dma-requests = <27>; + interrupts = <0 12 4>; + clocks = <&pclk>; + }; diff --git a/Documentation/devicetree/bindings/dma/k3dma.txt b/Documentation/devicetree/bindings/dma/k3dma.txt deleted file mode 100644 index 10a2f15b08a3..000000000000 --- a/Documentation/devicetree/bindings/dma/k3dma.txt +++ /dev/null @@ -1,47 +0,0 @@ -* Hisilicon K3 DMA controller - -See dma.txt first - -Required properties: -- compatible: Must be one of -- "hisilicon,k3-dma-1.0" -- "hisilicon,hisi-pcm-asp-dma-1.0" -- reg: Should contain DMA registers location and length. -- interrupts: Should contain one interrupt shared by all channel -- #dma-cells: see dma.txt, should be 1, para number -- dma-channels: physical channels supported -- dma-requests: virtual channels supported, each virtual channel - have specific request line -- clocks: clock required - -Example: - -Controller: - dma0: dma@fcd02000 { - compatible = "hisilicon,k3-dma-1.0"; - reg = <0xfcd02000 0x1000>; - #dma-cells = <1>; - dma-channels = <16>; - dma-requests = <27>; - interrupts = <0 12 4>; - clocks = <&pclk>; - }; - -Client: -Use specific request line passing from dmax -For example, i2c0 read channel request line is 18, while write channel use 19 - - i2c0: i2c@fcb08000 { - compatible = "snps,designware-i2c"; - dmas = <&dma0 18 /* read channel */ - &dma0 19>; /* write channel */ - dma-names = "rx", "tx"; - }; - - i2c1: i2c@fcb09000 { - compatible = "snps,designware-i2c"; - dmas = <&dma0 20 /* read channel */ - &dma0 21>; /* write channel */ - dma-names = "rx", "tx"; - }; -