← Documents Documentation/devicetree/bindings/mips/cavium/cib.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Cavium Interrupt Bus Widget

Octeon CIB의 RAW·EN register, CIU line과 trigger cell 바인딩입니다.

Source pathDocumentation/devicetree/bindings/mips/cavium/cib.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

cib.txt:1-41

CIB bit 번호와 edge·level trigger 값, cn70XX 예제를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * Cavium Interrupt Bus widget
2
3 Properties:
4 - compatible: "cavium,octeon-7130-cib"
5
6 Compatibility with cn70XX SoCs.
7
8 - interrupt-controller: This is an interrupt controller.
9
10 - reg: Two elements consisting of the addresses of the RAW and EN
11 registers of the CIB block
12
13 - cavium,max-bits: The index (zero based) of the highest numbered bit
14 in the CIB block.
15
16 - interrupts: The CIU line to which the CIB block is connected.
17
18 - #interrupt-cells: Must be <2>. The first cell is the bit within the
19 CIB. The second cell specifies the triggering semantics of the
20 line.
21
22 Example:
23
24 interrupt-controller@107000000e000 {
25 compatible = "cavium,octeon-7130-cib";
26 reg = <0x10700 0x0000e000 0x0 0x8>, /* RAW */
27 <0x10700 0x0000e100 0x0 0x8>; /* EN */
28 cavium,max-bits = <23>;
29
30 interrupt-controller;
31 interrupt-parent = <&ciu>;
32 interrupts = <1 24>;
33 /* Interrupts are specified by two parts:
34 * 1) Bit number in the CIB* registers
35 * 2) Triggering (1 - edge rising
36 * 2 - edge falling
37 * 4 - level active high
38 * 8 - level active low)
39 */
40 #interrupt-cells = <2>;
41 };
42

3. 한국어 전문 번역

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

Cavium Interrupt Bus widget

1-21

CIB의 `compatible`은 `cavium,octeon-7130-cib`이며 cn70XX SoC와 호환됩니다. `interrupt-controller`는 이 node가 interrupt controller임을 나타냅니다.

`reg`는 CIB block의 RAW register와 EN register 주소 두 개로 구성됩니다. `cavium,max-bits`는 CIB block에서 번호가 가장 큰 bit의 zero-based index이고, `interrupts`는 CIB block이 연결된 CIU line입니다.

`#interrupt-cells`는 `<2>`입니다. 첫 cell은 CIB 내부 bit, 둘째 cell은 line의 trigger semantics입니다.

CIB interrupt 경로
CIB source bitsRAW register
EN registerEnabled CIB bits
Enabled CIB bitsCIU line

RAW·EN register가 bit별 상태와 enable을 관리하고 선택된 line을 CIU로 전달합니다.

CIB trigger semantics
Trigger
1Edge rising
2Edge falling
4Level active high
8Level active low

두 번째 interrupt cell의 값입니다.

RAW·EN register와 24-bit 예제

22-41

예제는 RAW 주소 `0x107000000e000`, EN 주소 `0x107000000e100`, 각 8-byte 범위를 사용합니다. `cavium,max-bits = <23>`이므로 bit 0부터 23까지이며 CIU bank 1의 bit 24에 연결합니다.

interrupt-controller@107000000e000 {
        compatible = "cavium,octeon-7130-cib";
        reg = <0x10700 0x0000e000 0x0 0x8>, /* RAW */
              <0x10700 0x0000e100 0x0 0x8>; /* EN */
        cavium,max-bits = <23>;

        interrupt-controller;
        interrupt-parent = <&ciu>;
        interrupts = <1 24>;
        /* Interrupts are specified by two parts:
         * 1) Bit number in the CIB* registers
         * 2) Triggering (1 - edge rising
         *                  2 - edge falling
         *                  4 - level active high
         *                  8 - level active low)
         */
        #interrupt-cells = <2>;
};