← Documents Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SPMI

Qualcomm SPMI PMIC Arbiter

Qualcomm PMIC Arbiter V1·V2 register와 4-cell interrupt routing을 설명합니다.

Source pathDocumentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

qcom,spmi-pmic-arb.yaml:1-128

Qualcomm PMIC Arbiter V1·V2 register와 4-cell interrupt routing을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·symbol·source path·수치·예제 코드를 원형대로 유지합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/spmi/qcom,spmi-pmic-arb.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm SPMI Controller (PMIC Arbiter)
8
9 maintainers:
10 - Stephen Boyd <sboyd@kernel.org>
11
12 description: |
13 The SPMI PMIC Arbiter is found on Snapdragon chipsets. It is an SPMI
14 controller with wrapping arbitration logic to allow for multiple on-chip
15 devices to control a single SPMI master.
16
17 The PMIC Arbiter can also act as an interrupt controller, providing interrupts
18 to slave devices.
19
20 allOf:
21 - $ref: spmi.yaml
22
23 properties:
24 compatible:
25 const: qcom,spmi-pmic-arb
26
27 reg:
28 oneOf:
29 - items: # V1
30 - description: core registers
31 - description: interrupt controller registers
32 - description: configuration registers
33 - items: # V2
34 - description: core registers
35 - description: tx-channel per virtual slave regosters
36 - description: rx-channel (called observer) per virtual slave registers
37 - description: interrupt controller registers
38 - description: configuration registers
39
40 reg-names:
41 oneOf:
42 - items:
43 - const: core
44 - const: intr
45 - const: cnfg
46 - items:
47 - const: core
48 - const: chnls
49 - const: obsrvr
50 - const: intr
51 - const: cnfg
52
53 interrupts:
54 maxItems: 1
55
56 interrupt-names:
57 const: periph_irq
58
59 interrupt-controller: true
60
61 '#address-cells': true
62
63 '#interrupt-cells':
64 const: 4
65 description: |
66 cell 1: slave ID for the requested interrupt (0-15)
67 cell 2: peripheral ID for requested interrupt (0-255)
68 cell 3: the requested peripheral interrupt (0-7)
69 cell 4: interrupt flags indicating level-sense information,
70 as defined in dt-bindings/interrupt-controller/irq.h
71
72 '#size-cells': true
73
74 qcom,ee:
75 $ref: /schemas/types.yaml#/definitions/uint32
76 minimum: 0
77 maximum: 5
78 description: >
79 indicates the active Execution Environment identifier
80
81 qcom,channel:
82 $ref: /schemas/types.yaml#/definitions/uint32
83 minimum: 0
84 maximum: 5
85 description: >
86 which of the PMIC Arb provided channels to use for accesses
87
88 qcom,bus-id:
89 $ref: /schemas/types.yaml#/definitions/uint32
90 minimum: 0
91 maximum: 1
92 description: >
93 SPMI bus instance. only applicable to PMIC arbiter version 7 and beyond.
94 Supported values, 0 = primary bus, 1 = secondary bus
95 deprecated: true
96
97 required:
98 - compatible
99 - reg-names
100 - qcom,ee
101 - qcom,channel
102
103 unevaluatedProperties: false
104
105 examples:
106 - |
107 spmi@fc4cf000 {
108 compatible = "qcom,spmi-pmic-arb";
109 reg-names = "core", "intr", "cnfg";
110 reg = <0xfc4cf000 0x1000>,
111 <0xfc4cb000 0x1000>,
112 <0xfc4ca000 0x1000>;
113
114 interrupt-names = "periph_irq";
115 interrupts = <0 190 0>;
116
117 qcom,ee = <0>;
118 qcom,channel = <0>;
119
120 #address-cells = <2>;
121 #size-cells = <0>;
122
123 interrupt-controller;
124 #interrupt-cells = <4>;
125
126 qcom,bus-id = <0>;
127 };
128
129

3. 한국어 전문 번역

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

Qualcomm SPMI PMIC Arbiter

1-22

이 GPL-2.0-only YAML schema는 Snapdragon chipset의 SPMI PMIC Arbiter를 정의합니다. 여러 on-chip device가 단일 SPMI master를 제어할 수 있도록 arbitration logic을 감싸며, slave device에 interrupt를 제공하는 interrupt controller로도 동작합니다. Maintainer는 Stephen Boyd이며 공통 `spmi.yaml`을 상속합니다.

PMIC Arbiter V1·V2 register 배열

23-52

`compatible`은 `qcom,spmi-pmic-arb`입니다. V1의 `reg`는 core, interrupt controller, configuration register 세 영역이고 `reg-names`는 `core`, `intr`, `cnfg`입니다.

V2의 `reg`는 core, virtual slave별 TX channel, observer라고도 부르는 virtual slave별 RX channel, interrupt controller, configuration register 다섯 영역입니다. `reg-names`는 `core`, `chnls`, `obsrvr`, `intr`, `cnfg` 순서입니다. 원문의 V2 TX 설명에 있는 `regosters` 철자는 원문 영역 의미를 바꾸지 않고 보존됩니다.

Peripheral interrupt 4-cell specifier

53-73

`interrupts`는 최대 한 항목이고 `interrupt-names`는 `periph_irq`입니다. `interrupt-controller`를 지원하며 `#address-cells`와 `#size-cells`도 사용합니다.

`#interrupt-cells`는 4입니다. Cell 1은 slave ID 0~15, cell 2는 peripheral ID 0~255, cell 3은 peripheral interrupt 0~7, cell 4는 `dt-bindings/interrupt-controller/irq.h`가 정의한 level-sense interrupt flag입니다.

Execution environment, channel과 bus ID

74-96

`qcom,ee`는 active Execution Environment identifier로 0~5입니다. `qcom,channel`은 PMIC Arbiter가 제공하는 access channel 중 사용할 번호로 역시 0~5입니다.

Deprecated `qcom,bus-id`는 PMIC arbiter version 7 이상에만 적용되는 SPMI bus instance입니다. 값 0은 primary bus, 1은 secondary bus입니다.

필수 속성과 추가 속성 제한

97-104

필수 속성은 `compatible`, `reg-names`, `qcom,ee`, `qcom,channel`입니다. `unevaluatedProperties: false`로 평가되지 않은 추가 속성을 금지합니다.

PMIC Arbiter V1 interrupt controller 예제

105-128

예제의 `spmi@fc4cf000`은 V1의 `core`, `intr`, `cnfg` 세 register 영역과 `periph_irq` interrupt `<0 190 0>`을 사용합니다. Execution environment와 channel은 모두 0이며 4-cell interrupt controller로 동작하고 primary bus ID 0을 지정합니다.

spmi@fc4cf000 {
    compatible = "qcom,spmi-pmic-arb";
    reg-names = "core", "intr", "cnfg";
    reg = <0xfc4cf000 0x1000>,
          <0xfc4cb000 0x1000>,
          <0xfc4ca000 0x1000>;

    interrupt-names = "periph_irq";
    interrupts = <0 190 0>;

    qcom,ee = <0>;
    qcom,channel = <0>;

    #address-cells = <2>;
    #size-cells = <0>;

    interrupt-controller;
    #interrupt-cells = <4>;

    qcom,bus-id = <0>;
};