← Documents Documentation/devicetree/bindings/ipmi/npcm7xx-kcs-bmc.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Nuvoton NPCM KCS IPMI Interface

NPCM BMC의 LPC KCS channel 바인딩입니다.

Source pathDocumentation/devicetree/bindings/ipmi/npcm7xx-kcs-bmc.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

npcm7xx-kcs-bmc.txt:1-40

공유 register 영역 아래 두 KCS channel 구성을 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * Nuvoton NPCM KCS (Keyboard Controller Style) IPMI interface
2
3 The Nuvoton SOCs (NPCM) are commonly used as BMCs
4 (Baseboard Management Controllers) and the KCS interface can be
5 used to perform in-band IPMI communication with their host.
6
7 Required properties:
8 - compatible : should be one of
9 "nuvoton,npcm750-kcs-bmc"
10 "nuvoton,npcm845-kcs-bmc", "nuvoton,npcm750-kcs-bmc"
11 - interrupts : interrupt generated by the controller
12 - kcs_chan : The KCS channel number in the controller
13
14 Example:
15
16 lpc_kcs: lpc_kcs@f0007000 {
17 compatible = "nuvoton,npcm750-lpc-kcs", "simple-mfd", "syscon";
18 reg = <0xf0007000 0x40>;
19 reg-io-width = <1>;
20
21 #address-cells = <1>;
22 #size-cells = <1>;
23 ranges = <0x0 0xf0007000 0x40>;
24
25 kcs1: kcs1@0 {
26 compatible = "nuvoton,npcm750-kcs-bmc";
27 reg = <0x0 0x40>;
28 interrupts = <0 9 4>;
29 kcs_chan = <1>;
30 status = "disabled";
31 };
32
33 kcs2: kcs2@0 {
34 compatible = "nuvoton,npcm750-kcs-bmc";
35 reg = <0x0 0x40>;
36 interrupts = <0 9 4>;
37 kcs_chan = <2>;
38 status = "disabled";
39 };
40 };
41

3. 한국어 전문 번역

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

Nuvoton NPCM KCS IPMI 속성

1-13

Nuvoton NPCM SoC는 BMC(Baseboard Management Controller)로 널리 쓰이며 KCS(Keyboard Controller Style) interface를 통해 host와 in-band IPMI 통신을 수행할 수 있습니다.

`compatible`은 `nuvoton,npcm750-kcs-bmc` 또는 NPCM845에서 fallback을 함께 둔 `nuvoton,npcm845-kcs-bmc`, `nuvoton,npcm750-kcs-bmc`입니다. `interrupts`는 controller가 생성하는 interrupt이고 `kcs_chan`은 controller 내부 KCS channel 번호입니다.

NPCM KCS channel 구성
Host LPCKCS protocol
NPCM LPC KCS syscon공유 0x40-byte 영역
KCS channel 1kcs_chan = 1
KCS channel 2kcs_chan = 2

공유 LPC KCS register 영역 아래에 channel별 BMC interface를 둡니다.

NPCM750 두 KCS channel 예제

14-40

예제의 LPC KCS parent는 `0xf0007000`의 0x40-byte register 영역을 `simple-mfd`와 `syscon`으로 노출하고 1-byte register I/O 폭과 child 주소 범위를 지정합니다. 두 child는 같은 영역과 interrupt `<0 9 4>`를 공유하지만 `kcs_chan`을 각각 1과 2로 구분하며 모두 초기 상태는 disabled입니다.

lpc_kcs: lpc_kcs@f0007000 {
    compatible = "nuvoton,npcm750-lpc-kcs", "simple-mfd", "syscon";
    reg = <0xf0007000 0x40>;
    reg-io-width = <1>;

    #address-cells = <1>;
    #size-cells = <1>;
    ranges = <0x0 0xf0007000 0x40>;

    kcs1: kcs1@0 {
        compatible = "nuvoton,npcm750-kcs-bmc";
        reg = <0x0 0x40>;
        interrupts = <0 9 4>;
        kcs_chan = <1>;
        status = "disabled";
    };

    kcs2: kcs2@0 {
        compatible = "nuvoton,npcm750-kcs-bmc";
        reg = <0x0 0x40>;
        interrupts = <0 9 4>;
        kcs_chan = <2>;
        status = "disabled";
    };
};