← Documents Documentation/devicetree/bindings/mtd/lpc32xx-mlc.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

NXP LPC32xx MLC NAND

LPC32xx MLC의 일곱 timing field와 boot partition 바인딩입니다.

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

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

1. 요약·해설

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

요약과 해설

lpc32xx-mlc.txt:1-50

Hz 기반 timing과 active-low write-protect 예제를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 NXP LPC32xx SoC NAND MLC controller
2
3 Required properties:
4 - compatible: "nxp,lpc3220-mlc"
5 - reg: Address and size of the controller
6 - interrupts: The NAND interrupt specification
7 - gpios: GPIO specification for NAND write protect
8
9 The following required properties are very controller specific. See the LPC32xx
10 User Manual 7.5.14 MLC NAND Timing Register (the values here are specified in
11 Hz, to make them independent of actual clock speed and to provide for good
12 accuracy:)
13 - nxp,tcea_delay: TCEA_DELAY
14 - nxp,busy_delay: BUSY_DELAY
15 - nxp,nand_ta: NAND_TA
16 - nxp,rd_high: RD_HIGH
17 - nxp,rd_low: RD_LOW
18 - nxp,wr_high: WR_HIGH
19 - nxp,wr_low: WR_LOW
20
21 Optional subnodes:
22 - Partitions, see Documentation/devicetree/bindings/mtd/mtd.yaml
23
24 Example:
25
26 mlc: flash@200a8000 {
27 compatible = "nxp,lpc3220-mlc";
28 reg = <0x200A8000 0x11000>;
29 interrupts = <11 0>;
30 #address-cells = <1>;
31 #size-cells = <1>;
32
33 nxp,tcea-delay = <333333333>;
34 nxp,busy-delay = <10000000>;
35 nxp,nand-ta = <18181818>;
36 nxp,rd-high = <31250000>;
37 nxp,rd-low = <45454545>;
38 nxp,wr-high = <40000000>;
39 nxp,wr-low = <83333333>;
40 gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */
41
42 mtd0@00000000 {
43 label = "boot";
44 reg = <0x00000000 0x00064000>;
45 read-only;
46 };
47
48 ...
49
50 };
51

3. 한국어 전문 번역

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

LPC32xx MLC controller

1-2

이 문서는 NXP LPC32xx SoC NAND MLC controller 바인딩입니다.

Controller 자원과 write protect

3-8

필수 `compatible`은 `nxp,lpc3220-mlc`, `reg`는 controller 주소와 크기, `interrupts`는 NAND interrupt specifier입니다. `gpios`는 NAND write-protect GPIO specifier입니다.

LPC32xx MLC 연결
MLC register rangeLPC32xx MLC controller
NAND interruptLPC32xx MLC controller
Write-protect GPIOMLC NAND

Controller register, interrupt와 active-low write-protect GPIO가 MLC NAND를 구동합니다.

MLC NAND timing register

9-23

다음 필수 속성은 controller에 매우 특화되어 있으며 LPC32xx User Manual 7.5.14의 MLC NAND Timing Register를 따릅니다. 값은 실제 clock 속도와 독립적이고 정확도를 확보하도록 Hz 단위로 지정합니다.

원문 목록은 underscore가 있는 `nxp,tcea_delay`, `nxp,busy_delay`, `nxp,nand_ta`, `nxp,rd_high`, `nxp,rd_low`, `nxp,wr_high`, `nxp,wr_low`를 각각 `TCEA_DELAY`, `BUSY_DELAY`, `NAND_TA`, `RD_HIGH`, `RD_LOW`, `WR_HIGH`, `WR_LOW`에 대응시킵니다. 예제에서는 같은 이름을 hyphen 형식으로 표기합니다.

선택 subnode로 partition을 둘 수 있으며 `Documentation/devicetree/bindings/mtd/mtd.yaml`을 참조합니다.

LPC32xx MLC timing
속성Field
nxp,tcea-delayTCEA_DELAY
nxp,busy-delayBUSY_DELAY
nxp,nand-taNAND_TA
nxp,rd-high / nxp,rd-lowRD_HIGH / RD_LOW
nxp,wr-high / nxp,wr-lowWR_HIGH / WR_LOW

일곱 device-tree 속성과 timing register field의 대응입니다.

LPC32xx MLC boot partition 예제

24-50

예제는 `0x200A8000`의 MLC controller와 interrupt 11, 일곱 timing 값을 정의합니다. GPO_P3 19를 active-low write protect로 쓰고, offset 0의 크기 `0x00064000`인 read-only `boot` partition을 둡니다.

mlc: flash@200a8000 {
        compatible = "nxp,lpc3220-mlc";
        reg = <0x200A8000 0x11000>;
        interrupts = <11 0>;
        #address-cells = <1>;
        #size-cells = <1>;

        nxp,tcea-delay = <333333333>;
        nxp,busy-delay = <10000000>;
        nxp,nand-ta = <18181818>;
        nxp,rd-high = <31250000>;
        nxp,rd-low = <45454545>;
        nxp,wr-high = <40000000>;
        nxp,wr-low = <83333333>;
        gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */

        mtd0@00000000 {
                label = "boot";
                reg = <0x00000000 0x00064000>;
                read-only;
        };

        ...

};