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

Linux 6.18.37 · Devicetree Bindings

NXP LPC32xx SLC NAND

LPC32xx SLC의 Ready delay, read·write timing과 on-flash BBT입니다.

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

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

1. 요약·해설

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

요약과 해설

lpc32xx-slc.txt:1-52

여덟 timing 속성과 phy3250 boot partition을 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 NXP LPC32xx SoC NAND SLC controller
2
3 Required properties:
4 - compatible: "nxp,lpc3220-slc"
5 - reg: Address and size of the controller
6 - nand-on-flash-bbt: Use bad block table on flash
7 - gpios: GPIO specification for NAND write protect
8
9 The following required properties are very controller specific. See the LPC32xx
10 User Manual:
11 - nxp,wdr-clks: Delay before Ready signal is tested on write (W_RDY)
12 - nxp,rdr-clks: Delay before Ready signal is tested on read (R_RDY)
13 (The following values are specified in Hz, to make them independent of actual
14 clock speed:)
15 - nxp,wwidth: Write pulse width (W_WIDTH)
16 - nxp,whold: Write hold time (W_HOLD)
17 - nxp,wsetup: Write setup time (W_SETUP)
18 - nxp,rwidth: Read pulse width (R_WIDTH)
19 - nxp,rhold: Read hold time (R_HOLD)
20 - nxp,rsetup: Read setup time (R_SETUP)
21
22 Optional subnodes:
23 - Partitions, see Documentation/devicetree/bindings/mtd/mtd.yaml
24
25 Example:
26
27 slc: flash@20020000 {
28 compatible = "nxp,lpc3220-slc";
29 reg = <0x20020000 0x1000>;
30 #address-cells = <1>;
31 #size-cells = <1>;
32
33 nxp,wdr-clks = <14>;
34 nxp,wwidth = <40000000>;
35 nxp,whold = <100000000>;
36 nxp,wsetup = <100000000>;
37 nxp,rdr-clks = <14>;
38 nxp,rwidth = <40000000>;
39 nxp,rhold = <66666666>;
40 nxp,rsetup = <100000000>;
41 nand-on-flash-bbt;
42 gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */
43
44 mtd0@00000000 {
45 label = "phy3250-boot";
46 reg = <0x00000000 0x00064000>;
47 read-only;
48 };
49
50 ...
51
52 };
53

3. 한국어 전문 번역

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

LPC32xx SLC controller

1-2

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

Controller와 on-flash BBT

3-8

필수 `compatible`은 `nxp,lpc3220-slc`, `reg`는 controller 주소와 크기입니다. `nand-on-flash-bbt`는 bad-block table을 flash에 저장해 사용하게 하며, `gpios`는 NAND write-protect GPIO specifier입니다.

LPC32xx SLC 저장 구조
LPC32xx SLC controllerSLC NAND data
On-flash BBTLPC32xx SLC controller
Write-protect GPIOSLC NAND

Controller가 on-flash BBT를 참조하고 GPIO로 write protect를 제어합니다.

Ready delay와 read·write timing

9-24

Controller 전용 필수 속성은 LPC32xx User Manual을 따릅니다. `nxp,wdr-clks`는 write 시 Ready signal을 검사하기 전 delay인 `W_RDY`, `nxp,rdr-clks`는 read 시 delay인 `R_RDY`입니다.

나머지 값은 실제 clock 속도와 독립적이도록 Hz 단위입니다. `nxp,wwidth`, `nxp,whold`, `nxp,wsetup`은 각각 write pulse width `W_WIDTH`, hold `W_HOLD`, setup `W_SETUP`입니다. `nxp,rwidth`, `nxp,rhold`, `nxp,rsetup`은 read 측 `R_WIDTH`, `R_HOLD`, `R_SETUP`입니다.

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

LPC32xx SLC timing
경로속성
Ready delaynxp,wdr-clks / nxp,rdr-clks
Writenxp,wwidth / nxp,whold / nxp,wsetup
Readnxp,rwidth / nxp,rhold / nxp,rsetup

Ready 검사 delay와 read·write pulse timing입니다.

LPC32xx SLC boot partition 예제

25-52

예제는 `0x20020000`의 SLC controller, Ready delay 14, read·write timing, on-flash BBT와 active-low GPO_P3 19 write protect를 설정합니다. Read-only `phy3250-boot` partition의 크기는 `0x00064000`입니다.

slc: flash@20020000 {
        compatible = "nxp,lpc3220-slc";
        reg = <0x20020000 0x1000>;
        #address-cells = <1>;
        #size-cells = <1>;

        nxp,wdr-clks = <14>;
        nxp,wwidth = <40000000>;
        nxp,whold = <100000000>;
        nxp,wsetup = <100000000>;
        nxp,rdr-clks = <14>;
        nxp,rwidth = <40000000>;
        nxp,rhold = <66666666>;
        nxp,rsetup = <100000000>;
        nand-on-flash-bbt;
        gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */

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

        ...

};