Commit 15f76096 authored by Sameer Pujar's avatar Sameer Pujar Committed by Thierry Reding
Browse files

dt-bindings: dma: Convert ADMA doc to json-schema



Move ADMA documentation to YAML format.

Signed-off-by: default avatarSameer Pujar <spujar@nvidia.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 3394f984
Loading
Loading
Loading
Loading
+0 −56
Original line number Diff line number Diff line
* NVIDIA Tegra Audio DMA (ADMA) controller

The Tegra Audio DMA controller that is used for transferring data
between system memory and the Audio Processing Engine (APE).

Required properties:
- compatible: Should contain one of the following:
  - "nvidia,tegra210-adma": for Tegra210
  - "nvidia,tegra186-adma": for Tegra186 and Tegra194
- reg: Should contain DMA registers location and length. This should be
  a single entry that includes all of the per-channel registers in one
  contiguous bank.
- interrupts: Should contain all of the per-channel DMA interrupts in
  ascending order with respect to the DMA channel index.
- clocks: Must contain one entry for the ADMA module clock
  (TEGRA210_CLK_D_AUDIO).
- clock-names: Must contain the name "d_audio" for the corresponding
  'clocks' entry.
- #dma-cells : Must be 1. The first cell denotes the receive/transmit
  request number and should be between 1 and the maximum number of
  requests supported. This value corresponds to the RX/TX_REQUEST_SELECT
  fields in the ADMA_CHn_CTRL register.


Example:

adma: dma@702e2000 {
	compatible = "nvidia,tegra210-adma";
	reg = <0x0 0x702e2000 0x0 0x2000>;
	interrupt-parent = <&tegra_agic>;
	interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
		     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
	clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
	clock-names = "d_audio";
	#dma-cells = <1>;
};
+99 −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/nvidia,tegra210-adma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA Tegra Audio DMA (ADMA) controller

description: |
  The Tegra Audio DMA controller is used for transferring data
  between system memory and the Audio Processing Engine (APE).

maintainers:
  - Jon Hunter <jonathanh@nvidia.com>

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

properties:
  compatible:
    oneOf:
      - enum:
          - nvidia,tegra210-adma
          - nvidia,tegra186-adma
      - items:
          - const: nvidia,tegra194-adma
          - const: nvidia,tegra186-adma

  reg:
    maxItems: 1

  interrupts:
    description: |
      Should contain all of the per-channel DMA interrupts in
      ascending order with respect to the DMA channel index.
    minItems: 1
    maxItems: 32

  clocks:
    description: Must contain one entry for the ADMA module clock
    maxItems: 1

  clock-names:
    const: d_audio

  "#dma-cells":
    description: |
      The first cell denotes the receive/transmit request number and
      should be between 1 and the maximum number of requests supported.
      This value corresponds to the RX/TX_REQUEST_SELECT fields in the
      ADMA_CHn_CTRL register.
    const: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include<dt-bindings/clock/tegra210-car.h>

    dma-controller@702e2000 {
        compatible = "nvidia,tegra210-adma";
        reg = <0x702e2000 0x2000>;
        interrupt-parent = <&tegra_agic>;
        interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
        clock-names = "d_audio";
        #dma-cells = <1>;
    };

...