← Documents Documentation/devicetree/bindings/spi/nuvoton,npcm-fiu.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SPI

Nuvoton NPCM FLASH Interface Unit

NPCM7XX·NPCM8XX FIU의 chip-select 수, memory window와 alias 규칙을 설명합니다.

Source pathDocumentation/devicetree/bindings/spi/nuvoton,npcm-fiu.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

nuvoton,npcm-fiu.txt:1-58

NPCM7XX·NPCM8XX FIU의 chip-select 수, memory window와 alias 규칙을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·interrupt/DMA 순서·수치·예제 코드를 원형대로 유지합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * Nuvoton FLASH Interface Unit (FIU) SPI Controller
2
3 NPCM FIU supports single, dual and quad communication interface.
4
5 The NPCM7XX supports three FIU modules,
6 FIU0 and FIUx supports two chip selects,
7 FIU3 support four chip select.
8
9 The NPCM8XX supports four FIU modules,
10 FIU0 and FIUx supports two chip selects,
11 FIU1 and FIU3 supports four chip selects.
12
13 Required properties:
14 - compatible : "nuvoton,npcm750-fiu" for Poleg NPCM7XX BMC
15 "nuvoton,npcm845-fiu" for Arbel NPCM8XX BMC
16 - #address-cells : should be 1.
17 - #size-cells : should be 0.
18 - reg : the first contains the register location and length,
19 the second contains the memory mapping address and length
20 - reg-names: Should contain the reg names "control" and "memory"
21 - clocks : phandle of FIU reference clock.
22
23 Required properties in case the pins can be muxed:
24 - pinctrl-names : a pinctrl state named "default" must be defined.
25 - pinctrl-0 : phandle referencing pin configuration of the device.
26
27 Optional property:
28 - nuvoton,spix-mode: enable spix-mode for an expansion bus to an ASIC or CPLD.
29
30 Aliases:
31 - All the FIU controller nodes should be represented in the aliases node using
32 the following format 'fiu{n}' where n is a unique number for the alias.
33 In the NPCM7XX BMC:
34 fiu0 represent fiu 0 controller
35 fiu1 represent fiu 3 controller
36 fiu2 represent fiu x controller
37
38 In the NPCM8XX BMC:
39 fiu0 represent fiu 0 controller
40 fiu1 represent fiu 1 controller
41 fiu2 represent fiu 3 controller
42 fiu3 represent fiu x controller
43
44 Example:
45 fiu3: spi@c00000000 {
46 compatible = "nuvoton,npcm750-fiu";
47 #address-cells = <1>;
48 #size-cells = <0>;
49 reg = <0xfb000000 0x1000>, <0x80000000 0x10000000>;
50 reg-names = "control", "memory";
51 clocks = <&clk NPCM7XX_CLK_AHB>;
52 pinctrl-names = "default";
53 pinctrl-0 = <&spi3_pins>;
54 flash@0 {
55 ...
56 };
57 };
58
59

3. 한국어 전문 번역

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

NPCM FLASH Interface Unit

1-12

Nuvoton NPCM FIU SPI controller는 single, dual, quad communication interface를 지원합니다.

NPCM7XX에는 FIU module 세 개가 있습니다. FIU0과 FIUx는 chip-select 두 개, FIU3은 네 개를 지원합니다. NPCM8XX에는 FIU module 네 개가 있으며 FIU0과 FIUx는 두 개, FIU1과 FIU3은 네 개의 chip-select를 지원합니다.

FIU 필수 속성

13-22

Poleg NPCM7XX BMC는 `nuvoton,npcm750-fiu`, Arbel NPCM8XX BMC는 `nuvoton,npcm845-fiu` compatible을 사용합니다. `#address-cells`는 1, `#size-cells`는 0입니다.

`reg`의 첫 항목은 register 위치와 길이, 둘째 항목은 memory-mapping address와 길이입니다. `reg-names`는 같은 순서로 `control`, `memory`이고 `clocks`는 FIU reference clock phandle입니다.

Pin mux와 expansion bus mode

23-29

Pin을 mux할 수 있으면 `pinctrl-names`에 `default` state를 정의하고 `pinctrl-0`에서 장치 pin configuration을 참조해야 합니다.

선택적인 `nuvoton,spix-mode`는 ASIC 또는 CPLD로 이어지는 expansion bus에서 SPIX mode를 활성화합니다.

FIU alias 번호

30-43

모든 FIU controller node는 aliases node에 고유 번호를 붙인 `fiu{n}` 형식으로 나타내야 합니다.

NPCM7XX에서는 `fiu0`이 FIU0, `fiu1`이 FIU3, `fiu2`가 FIUx를 뜻합니다. NPCM8XX에서는 `fiu0`이 FIU0, `fiu1`이 FIU1, `fiu2`가 FIU3, `fiu3`이 FIUx를 뜻합니다.

NPCM7XX FIU3 예제

44-58

예제는 control register와 256MiB memory window, AHB clock, SPI3 pin configuration을 사용하는 NPCM750 FIU를 선언하고 chip-select 0에 flash node를 둡니다.

fiu3: spi@c00000000 {
        compatible = "nuvoton,npcm750-fiu";
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0xfb000000 0x1000>, <0x80000000 0x10000000>;
        reg-names = "control", "memory";
        clocks = <&clk NPCM7XX_CLK_AHB>;
        pinctrl-names = "default";
        pinctrl-0 = <&spi3_pins>;
        flash@0 {
                        ...
        };
};