Documentation/devicetree/bindings/mtd/flctl-nand.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Renesas FLCTL NAND

Renesas FLCTL의 16-bit bus, DMA 이름과 partition 바인딩입니다.

Source pathDocumentation/devicetree/bindings/mtd/flctl-nand.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.

1. 요약·해설

원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.

요약과 해설

flctl-nand.txt:1-49

Data·ECC DMA channel과 system·userdata·cache partition을 설명합니다.

2. 영어 원문 전체

번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.

원문 전체 펼치기
1 FLCTL NAND controller
2
3 Required properties:
4 - compatible : "renesas,shmobile-flctl-sh7372"
5 - reg : Address range of the FLCTL
6 - interrupts : flste IRQ number
7 - nand-bus-width : bus width to NAND chip
8
9 Optional properties:
10 - dmas: DMA specifier(s)
11 - dma-names: name for each DMA specifier. Valid names are
12 "data_tx", "data_rx", "ecc_tx", "ecc_rx"
13
14 The DMA fields are not used yet in the driver but are listed here for
15 completing the bindings.
16
17 The device tree may optionally contain sub-nodes describing partitions of the
18 address space. See mtd.yaml for more detail.
19
20 Example:
21
22 flctl@e6a30000 {
23 #address-cells = <1>;
24 #size-cells = <1>;
25 compatible = "renesas,shmobile-flctl-sh7372";
26 reg = <0xe6a30000 0x100>;
27 interrupts = <0x0d80>;
28
29 nand-bus-width = <16>;
30
31 dmas = <&dmac 1 /* data_tx */
32 &dmac 2;> /* data_rx */
33 dma-names = "data_tx", "data_rx";
34
35 system@0 {
36 label = "system";
37 reg = <0x0 0x8000000>;
38 };
39
40 userdata@8000000 {
41 label = "userdata";
42 reg = <0x8000000 0x10000000>;
43 };
44
45 cache@18000000 {
46 label = "cache";
47 reg = <0x18000000 0x8000000>;
48 };
49 };
50

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.

Renesas FLCTL NAND controller

1-2

이 문서는 FLCTL NAND controller 바인딩입니다.

Bus·interrupt·DMA와 partition

3-19

필수 `compatible`은 `renesas,shmobile-flctl-sh7372`입니다. `reg`는 FLCTL address 범위, `interrupts`는 `flste` IRQ 번호, `nand-bus-width`는 NAND chip의 bus width입니다.

선택 `dmas`에는 DMA specifier를 넣고 `dma-names`에는 각 specifier의 이름을 넣습니다. 유효한 이름은 `data_tx`, `data_rx`, `ecc_tx`, `ecc_rx`입니다.

Driver는 아직 DMA field를 사용하지 않지만 바인딩을 완성하기 위해 목록에 포함되어 있습니다. Device tree에는 address space partition을 설명하는 subnode를 선택적으로 둘 수 있으며 자세한 형식은 `mtd.yaml`을 따릅니다.

FLCTL DMA 이름
경로TX / RX
Datadata_tx / data_rx
ECCecc_tx / ecc_rx

Data path와 ECC path의 송수신 channel을 구분합니다.

16-bit FLCTL과 세 partition

20-49

예제는 `0xe6a30000`의 FLCTL에 interrupt `0x0d80`, 16-bit NAND bus와 data TX·RX DMA를 지정합니다. Address space는 `system`, `userdata`, `cache`의 세 partition으로 나뉩니다.

FLCTL partition map
Partition시작 / 크기
system0x0 / 0x8000000
userdata0x8000000 / 0x10000000
cache0x18000000 / 0x8000000

예제의 연속 address 영역입니다.

flctl@e6a30000 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "renesas,shmobile-flctl-sh7372";
        reg = <0xe6a30000 0x100>;
        interrupts = <0x0d80>;

        nand-bus-width = <16>;

        dmas = <&dmac 1 /* data_tx */
                &dmac 2;> /* data_rx */
        dma-names = "data_tx", "data_rx";

        system@0 {
                label = "system";
                reg = <0x0 0x8000000>;
        };

        userdata@8000000 {
                label = "userdata";
                reg = <0x8000000 0x10000000>;
        };

        cache@18000000 {
                label = "cache";
                reg = <0x18000000 0x8000000>;
        };
};