Documentation/devicetree/bindings/gpio/gpio-thunderx.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Cavium ThunderX/OCTEON-TX GPIO

PCI GPIO 및 optional interrupt controller 바인딩입니다.

Source pathDocumentation/devicetree/bindings/gpio/gpio-thunderx.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.

1. 요약·해설

원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.

요약과 해설

gpio-thunderx.txt:1-27

2-cell GPIO/interrupt specifier와 PCI function 예제를 설명합니다.

2. 영어 원문 전체

번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.

원문 전체 펼치기
1 Cavium ThunderX/OCTEON-TX GPIO controller bindings
2
3 Required Properties:
4 - reg: The controller bus address.
5 - gpio-controller: Marks the device node as a GPIO controller.
6 - #gpio-cells: Must be 2.
7 - First cell is the GPIO pin number relative to the controller.
8 - Second cell is a standard generic flag bitfield as described in gpio.txt.
9
10 Optional Properties:
11 - compatible: "cavium,thunder-8890-gpio", unused as PCI driver binding is used.
12 - interrupt-controller: Marks the device node as an interrupt controller.
13 - #interrupt-cells: Must be present and have value of 2 if
14 "interrupt-controller" is present.
15 - First cell is the GPIO pin number relative to the controller.
16 - Second cell is triggering flags as defined in interrupts.txt.
17
18 Example:
19
20 gpio_6_0: gpio@6,0 {
21 compatible = "cavium,thunder-8890-gpio";
22 reg = <0x3000 0 0 0 0>; /* DEVFN = 0x30 (6:0) */
23 gpio-controller;
24 #gpio-cells = <2>;
25 interrupt-controller;
26 #interrupt-cells = <2>;
27 };
28

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.

ThunderX/OCTEON-TX GPIO 속성

1-17

Cavium ThunderX/OCTEON-TX GPIO controller의 필수 `reg`는 controller bus address이고 `gpio-controller`는 node를 GPIO controller로 표시합니다. `#gpio-cells`는 2입니다. 첫 cell은 controller 기준 GPIO pin number, 두 번째 cell은 `gpio.txt`에서 설명하는 표준 generic flag bitfield입니다.

선택 `compatible`은 `cavium,thunder-8890-gpio`이지만 binding에는 PCI driver를 사용하므로 사용되지 않습니다. `interrupt-controller`는 node를 interrupt controller로 표시합니다.

`interrupt-controller`가 있으면 `#interrupt-cells = <2>`가 필수입니다. 첫 cell은 controller 기준 GPIO pin number이고 두 번째 cell은 `interrupts.txt`에서 정의하는 trigger flag입니다.

ThunderX GPIO와 interrupt specifier
SpecifierCell 0Cell 1
GPIOController-relative pingpio.txt generic flags
InterruptController-relative pininterrupts.txt trigger flags

GPIO consumer와 interrupt consumer가 공유하는 pin 번호 및 두 번째 cell의 차이를 보여 줍니다.

ThunderX PCI GPIO 예제

18-27

예제 node는 PCI function `6:0`의 bus address를 `reg`에 기록하고 2-cell GPIO controller와 2-cell interrupt controller를 함께 선언합니다.

gpio_6_0: gpio@6,0 {
        compatible = "cavium,thunder-8890-gpio";
        reg = <0x3000 0 0 0 0>; /*  DEVFN = 0x30 (6:0) */
        gpio-controller;
        #gpio-cells = <2>;
        interrupt-controller;
        #interrupt-cells = <2>;
};