요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
NXP LPC32xx SoC NAND MLC controller
Required properties:
- compatible: "nxp,lpc3220-mlc"
- reg: Address and size of the controller
- interrupts: The NAND interrupt specification
- gpios: GPIO specification for NAND write protect
The following required properties are very controller specific. See the LPC32xx
User Manual 7.5.14 MLC NAND Timing Register (the values here are specified in
Hz, to make them independent of actual clock speed and to provide for good
accuracy:)
- nxp,tcea_delay: TCEA_DELAY
- nxp,busy_delay: BUSY_DELAY
- nxp,nand_ta: NAND_TA
- nxp,rd_high: RD_HIGH
- nxp,rd_low: RD_LOW
- nxp,wr_high: WR_HIGH
- nxp,wr_low: WR_LOW
Optional subnodes:
- Partitions, see Documentation/devicetree/bindings/mtd/mtd.yaml
Example:
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;
};
...
};
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입니다.
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`을 참조합니다.
일곱 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;
};
...
};
요약과 해설
lpc32xx-mlc.txt:1-50Hz 기반 timing과 active-low write-protect 예제를 설명합니다.