mirror-linux/Documentation/devicetree/bindings/dma/loongson,ls2k0300-dma.yaml

82 lines
2.0 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/loongson,ls2k0300-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Loongson-2 Multi-Channel DMA controller
description:
The Loongson-2 Multi-Channel DMA controller is used for transferring data
between system memory and the peripherals on the APB bus.
maintainers:
- Binbin Zhou <zhoubinbin@loongson.cn>
allOf:
- $ref: dma-controller.yaml#
properties:
compatible:
enum:
- loongson,ls2k0300-dma
- loongson,ls2k3000-dma
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: 4
maxItems: 8
clocks:
maxItems: 1
'#dma-cells':
const: 2
description: |
DMA request from clients consists of 2 cells:
1. Channel index
2. Transfer request factor number, If no transfer factor, use 0.
The number is SoC-specific, and this should be specified with
relation to the device to use the DMA controller.
dma-channels:
enum: [4, 8]
required:
- compatible
- reg
- interrupts
- clocks
- '#dma-cells'
- dma-channels
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/loongson,ls2k-clk.h>
dma-controller@1612c000 {
compatible = "loongson,ls2k0300-dma";
reg = <0x1612c000 0xff>;
interrupt-parent = <&liointc0>;
interrupts = <23 IRQ_TYPE_LEVEL_HIGH>,
<24 IRQ_TYPE_LEVEL_HIGH>,
<25 IRQ_TYPE_LEVEL_HIGH>,
<26 IRQ_TYPE_LEVEL_HIGH>,
<27 IRQ_TYPE_LEVEL_HIGH>,
<28 IRQ_TYPE_LEVEL_HIGH>,
<29 IRQ_TYPE_LEVEL_HIGH>,
<30 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk LS2K0300_CLK_APB_GATE>;
#dma-cells = <2>;
dma-channels = <8>;
};
...