← Documents Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

MOXA ART DMA

MOXART DMA request line과 peripheral handshake identifier 바인딩입니다.

Source pathDocumentation/devicetree/bindings/dma/moxa,moxart-dma.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

moxa,moxart-dma.txt:1-45

Controller specifier와 MMC TX/RX client 예제를 설명합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 MOXA ART DMA Controller
2
3 See dma.txt first
4
5 Required properties:
6
7 - compatible : Must be "moxa,moxart-dma"
8 - reg : Should contain registers location and length
9 - interrupts : Should contain an interrupt-specifier for the sole
10 interrupt generated by the device
11 - #dma-cells : Should be 1, a single cell holding a line request number
12
13 Example:
14
15 dma: dma@90500000 {
16 compatible = "moxa,moxart-dma";
17 reg = <0x90500080 0x40>;
18 interrupts = <24 0>;
19 #dma-cells = <1>;
20 };
21
22
23 Clients:
24
25 DMA clients connected to the MOXA ART DMA controller must use the format
26 described in the dma.txt file, using a two-cell specifier for each channel:
27 a phandle plus one integer cells.
28 The two cells in order are:
29
30 1. A phandle pointing to the DMA controller.
31 2. Peripheral identifier for the hardware handshaking interface.
32
33 Example:
34 Use specific request line passing from dma
35 For example, MMC request line is 5
36
37 mmc: mmc@98e00000 {
38 compatible = "moxa,moxart-mmc";
39 reg = <0x98e00000 0x5C>;
40 interrupts = <5 0>;
41 clocks = <&clk_apb>;
42 dmas = <&dma 5>,
43 <&dma 5>;
44 dma-names = "tx", "rx";
45 };
46

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

MOXA ART DMA controller 속성

1-22

MOXA ART DMA Controller 바인딩이며 먼저 `dma.txt`를 참조합니다. 필수 `compatible`은 `moxa,moxart-dma`, `reg`는 register 위치와 길이, `interrupts`는 device가 생성하는 유일한 interrupt specifier입니다.

`#dma-cells = <1>`이며 단일 cell은 line request 번호를 담습니다. Controller 예제는 register 영역, interrupt `<24 0>`과 단일-cell specifier를 사용합니다.

dma: dma@90500000 {
        compatible = "moxa,moxart-dma";
        reg = <0x90500080 0x40>;
        interrupts = <24 0>;
        #dma-cells = <1>;
};
MOXART DMA request
DMA clientdmas = <&dma request>
MOXART DMASingle request cell
Hardware handshakePeripheral identifier
Shared device IRQTransfer event

Client의 peripheral identifier가 hardware handshaking request line을 선택합니다.

MOXART client specifier

23-36

MOXA ART DMA client는 `dma.txt` 형식에 따라 channel마다 두 요소를 사용합니다. 첫 요소는 DMA controller phandle이고 두 번째 integer cell은 hardware handshaking interface의 peripheral identifier입니다.

특정 request line을 DMA에서 전달하며, 이어지는 예제의 MMC request line은 5입니다.

MMC TX/RX 예제

37-45

MMC client는 controller와 interrupt, APB clock을 선언하고 TX와 RX 양쪽에 request line 5를 전달합니다.

mmc: mmc@98e00000 {
        compatible = "moxa,moxart-mmc";
        reg = <0x98e00000 0x5C>;
        interrupts = <5 0>;
        clocks = <&clk_apb>;
        dmas =  <&dma 5>,
                <&dma 5>;
        dma-names = "tx", "rx";
};