# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/loongson,ls1b-apbdma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Loongson-1 APB DMA Controller

maintainers:
  - Keguang Zhang <keguang.zhang@gmail.com>

description:
  Loongson-1 APB DMA controller provides 3 independent channels for
  peripherals such as NAND, audio playback and capture.

properties:
  compatible:
    oneOf:
      - const: loongson,ls1b-apbdma
      - items:
          - enum:
              - loongson,ls1a-apbdma
              - loongson,ls1c-apbdma
          - const: loongson,ls1b-apbdma

  reg:
    maxItems: 1

  interrupts:
    items:
      - description: NAND interrupt
      - description: Audio playback interrupt
      - description: Audio capture interrupt

  interrupt-names:
    items:
      - const: ch0
      - const: ch1
      - const: ch2

  '#dma-cells':
    const: 1

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - '#dma-cells'

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    dma-controller@1fd01160 {
        compatible = "loongson,ls1b-apbdma";
        reg = <0x1fd01160 0x4>;
        interrupt-parent = <&intc0>;
        interrupts = <13 IRQ_TYPE_EDGE_RISING>,
                     <14 IRQ_TYPE_EDGE_RISING>,
                     <15 IRQ_TYPE_EDGE_RISING>;
        interrupt-names = "ch0", "ch1", "ch2";
        #dma-cells = <1>;
    };
