Commit 5bcf6274 authored by Stanislav Jakubek's avatar Stanislav Jakubek Committed by Vinod Koul
Browse files

dt-bindings: dma: sprd,sc9860-dma: convert to YAML



Convert the Spreadtrum SC9860 DMA bindings to DT schema.

Changes during conversion:
  - rename file to match compatible
  - make interrupts optional, the AGCP DMA controller doesn't need it
  - describe the optional ashb_eb clock for the AGCP DMA controller

Signed-off-by: default avatarStanislav Jakubek <stano.jakubek@gmail.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/Zob1+kGW1xeBKehA@standask-GA-A55M-S2HP


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 316d1225
Loading
Loading
Loading
Loading
+92 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/sprd,sc9860-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Spreadtrum SC9860 DMA controller

description: |
  There are three DMA controllers: AP DMA, AON DMA and AGCP DMA. For AGCP
  DMA controller, it can or do not request the IRQ, which will save
  system power without resuming system by DMA interrupts if AGCP DMA
  does not request the IRQ.

maintainers:
  - Orson Zhai <orsonzhai@gmail.com>
  - Baolin Wang <baolin.wang7@gmail.com>
  - Chunyan Zhang <zhang.lyra@gmail.com>

properties:
  compatible:
    const: sprd,sc9860-dma

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: DMA enable clock
      - description: optional ashb_eb clock, only for the AGCP DMA controller

  clock-names:
    minItems: 1
    items:
      - const: enable
      - const: ashb_eb

  '#dma-cells':
    const: 1

  dma-channels:
    const: 32

  '#dma-channels':
    const: 32
    deprecated: true

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - '#dma-cells'
  - dma-channels

allOf:
  - $ref: dma-controller.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/sprd,sc9860-clk.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    /* AP DMA controller */
    dma-controller@20100000 {
      compatible = "sprd,sc9860-dma";
      reg = <0x20100000 0x4000>;
      interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&apahb_gate CLK_DMA_EB>;
      clock-names = "enable";
      #dma-cells = <1>;
      dma-channels = <32>;
    };

    /* AGCP DMA controller */
    dma-controller@41580000 {
      compatible = "sprd,sc9860-dma";
      reg = <0x41580000 0x4000>;
      clocks = <&agcp_gate CLK_AGCP_DMAAP_EB>,
               <&agcp_gate CLK_AGCP_AP_ASHB_EB>;
      clock-names = "enable", "ashb_eb";
      #dma-cells = <1>;
      dma-channels = <32>;
    };
...
+0 −44
Original line number Diff line number Diff line
* Spreadtrum DMA controller

This binding follows the generic DMA bindings defined in dma.txt.

Required properties:
- compatible: Should be "sprd,sc9860-dma".
- reg: Should contain DMA registers location and length.
- interrupts: Should contain one interrupt shared by all channel.
- #dma-cells: must be <1>. Used to represent the number of integer
	cells in the dmas property of client device.
- dma-channels : Number of DMA channels supported. Should be 32.
- clock-names: Should contain the clock of the DMA controller.
- clocks: Should contain a clock specifier for each entry in clock-names.

Deprecated properties:
- #dma-channels : Number of DMA channels supported. Should be 32.

Example:

Controller:
apdma: dma-controller@20100000 {
	compatible = "sprd,sc9860-dma";
	reg = <0x20100000 0x4000>;
	interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
	#dma-cells = <1>;
	dma-channels = <32>;
	clock-names = "enable";
	clocks = <&clk_ap_ahb_gates 5>;
};


Client:
DMA clients connected to the Spreadtrum DMA controller must use the format
described in the dma.txt file, using a two-cell specifier for each channel.
The two cells in order are:
1. A phandle pointing to the DMA controller.
2. The slave id.

spi0: spi@70a00000{
	...
	dma-names = "rx_chn", "tx_chn";
	dmas = <&apdma 11>, <&apdma 12>;
	...
};