← Documents Documentation/devicetree/bindings/mfd/max77620.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Maxim MAX77620 Power Management IC

MAX77620/MAX20024/MAX77663의 Flexible Power Sequencer와 system-power 바인딩입니다.

Source pathDocumentation/devicetree/bindings/mfd/max77620.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

max77620.txt:1-162

EN/SW source, FPS slot·주기·inactive state와 MAX20024 POK를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 MAX77620 Power management IC from Maxim Semiconductor.
2
3 Required properties:
4 -------------------
5 - compatible: Must be one of
6 "maxim,max77620"
7 "maxim,max20024"
8 "maxim,max77663"
9 - reg: I2C device address.
10
11 Optional properties:
12 -------------------
13 - interrupts: The interrupt on the parent the controller is
14 connected to.
15 - interrupt-controller: Marks the device node as an interrupt controller.
16 - #interrupt-cells: is <2> and their usage is compliant to the 2 cells
17 variant of <../interrupt-controller/interrupts.txt>
18 IRQ numbers for different interrupt source of MAX77620
19 are defined at dt-bindings/mfd/max77620.h.
20
21 - system-power-controller: Indicates that this PMIC is controlling the
22 system power, see [1] for more details.
23
24 [1] Documentation/devicetree/bindings/power/power-controller.txt
25
26 Optional subnodes and their properties:
27 =======================================
28
29 Flexible power sequence configurations:
30 --------------------------------------
31 The Flexible Power Sequencer (FPS) allows each regulator to power up under
32 hardware or software control. Additionally, each regulator can power on
33 independently or among a group of other regulators with an adjustable power-up
34 and power-down delays (sequencing). GPIO1, GPIO2, and GPIO3 can be programmed
35 to be part of a sequence allowing external regulators to be sequenced along
36 with internal regulators. 32KHz clock can be programmed to be part of a
37 sequence.
38
39 The flexible sequencing structure consists of two hardware enable inputs
40 (EN0, EN1), and 3 master sequencing timers called FPS0, FPS1 and FPS2.
41 Each master sequencing timer is programmable through its configuration
42 register to have a hardware enable source (EN1 or EN2) or a software enable
43 source (SW). When enabled/disabled, the master sequencing timer generates
44 eight sequencing events on different time periods called slots. The time
45 period between each event is programmable within the configuration register.
46 Each regulator, GPIO1, GPIO2, GPIO3, and 32KHz clock has a flexible power
47 sequence slave register which allows its enable source to be specified as
48 a flexible power sequencer timer or a software bit. When a FPS source of
49 regulators, GPIOs and clocks specifies the enable source to be a flexible
50 power sequencer, the power up and power down delays can be specified in
51 the regulators, GPIOs and clocks flexible power sequencer configuration
52 registers.
53
54 When FPS event cleared (set to LOW), regulators, GPIOs and 32KHz
55 clock are set into following state at the sequencing event that
56 corresponds to its flexible sequencer configuration register.
57 Sleep state: In this state, regulators, GPIOs
58 and 32KHz clock get disabled at
59 the sequencing event.
60 Global Low Power Mode (GLPM): In this state, regulators are set in
61 low power mode at the sequencing event.
62
63 The configuration parameters of FPS is provided through sub-node "fps"
64 and their child for FPS specific. The child node name for FPS are "fps0",
65 "fps1", and "fps2" for FPS0, FPS1 and FPS2 respectively.
66
67 The FPS configurations like FPS source, power up and power down slots for
68 regulators, GPIOs and 32kHz clocks are provided in their respective
69 configuration nodes which is explained in respective sub-system DT
70 binding document.
71
72 There is need for different FPS configuration parameters based on system
73 state like when system state changed from active to suspend or active to
74 power off (shutdown).
75
76 Optional properties:
77 -------------------
78 -maxim,fps-event-source: u32, FPS event source like external
79 hardware input to PMIC i.e. EN0, EN1 or
80 software (SW).
81 The macros are defined on
82 dt-bindings/mfd/max77620.h
83 for different control source.
84 - MAX77620_FPS_EVENT_SRC_EN0
85 for hardware input pin EN0.
86 - MAX77620_FPS_EVENT_SRC_EN1
87 for hardware input pin EN1.
88 - MAX77620_FPS_EVENT_SRC_SW
89 for software control.
90
91 -maxim,shutdown-fps-time-period-us: u32, FPS time period in microseconds
92 when system enters in to shutdown
93 state.
94
95 -maxim,suspend-fps-time-period-us: u32, FPS time period in microseconds
96 when system enters in to suspend state.
97
98 -maxim,device-state-on-disabled-event: u32, describe the PMIC state when FPS
99 event cleared (set to LOW) whether it
100 should go to sleep state or low-power
101 state. Following are valid values:
102 - MAX77620_FPS_INACTIVE_STATE_SLEEP
103 to set the PMIC state to sleep.
104 - MAX77620_FPS_INACTIVE_STATE_LOW_POWER
105 to set the PMIC state to low
106 power.
107 Absence of this property or other value
108 will not change device state when FPS
109 event get cleared.
110
111 Here supported time periods by device in microseconds are as follows:
112 MAX77620 supports 40, 80, 160, 320, 640, 1280, 2560 and 5120 microseconds.
113 MAX20024 supports 20, 40, 80, 160, 320, 640, 1280 and 2540 microseconds.
114 MAX77663 supports 20, 40, 80, 160, 320, 640, 1280 and 2540 microseconds.
115
116 -maxim,power-ok-control: configure map power ok bit
117 1: Enables POK(Power OK) to control nRST_IO and GPIO1
118 POK function.
119 0: Disables POK control.
120 if property missing, do not configure MPOK bit.
121 If POK mapping is enabled for GPIO1/nRST_IO then,
122 GPIO1/nRST_IO pins are HIGH only if all rails
123 that have POK control enabled are HIGH.
124 If any of the rails goes down(which are enabled for POK
125 control) then, GPIO1/nRST_IO goes LOW.
126 this property is valid for max20024 only.
127
128 For DT binding details of different sub modules like GPIO, pincontrol,
129 regulator, power, please refer respective device-tree binding document
130 under their respective sub-system directories.
131
132 Example:
133 --------
134 #include <dt-bindings/mfd/max77620.h>
135
136 max77620@3c {
137 compatible = "maxim,max77620";
138 reg = <0x3c>;
139
140 interrupt-parent = <&intc>;
141 interrupts = <0 86 IRQ_TYPE_NONE>;
142
143 interrupt-controller;
144 #interrupt-cells = <2>;
145
146 fps {
147 fps0 {
148 maxim,shutdown-fps-time-period-us = <1280>;
149 maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
150 };
151
152 fps1 {
153 maxim,shutdown-fps-time-period-us = <1280>;
154 maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
155 };
156
157 fps2 {
158 maxim,shutdown-fps-time-period-us = <1280>;
159 maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_SW>;
160 };
161 };
162 };
163

3. 한국어 전문 번역

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

Maxim MAX77620 계열 PMIC

1-2

이 바인딩은 Maxim Semiconductor의 MAX77620 계열 전원 관리 IC를 설명합니다.

MAX77620 Flexible Power Sequencer
EN0 / EN1 / SoftwareFPS0 / FPS1 / FPS2
Master timerEight time slots
Slot eventsRegulators / GPIO1..3 / 32kHz clock
Clear eventSleep or global low-power state

EN 또는 software source가 master FPS timer를 구동하고 slot event가 내부·외부 rail을 순차 제어합니다.

필수 칩과 I2C 주소

3-10

`compatible`은 `maxim,max77620`, `maxim,max20024`, `maxim,max77663` 중 하나이고 `reg`는 I2C 장치 주소입니다.

상위 IRQ와 system power

11-25

선택적인 `interrupts`는 연결된 상위 controller의 인터럽트입니다. `interrupt-controller`는 이 노드를 컨트롤러로 표시합니다. `#interrupt-cells`는 2이며 `../interrupt-controller/interrupts.txt`의 두 cell 변형을 따릅니다. interrupt source 번호는 `dt-bindings/mfd/max77620.h`에 정의됩니다.

`system-power-controller`는 이 PMIC가 system power를 제어함을 나타냅니다. 자세한 내용은 `Documentation/devicetree/bindings/power/power-controller.txt`를 봅니다.

Flexible Power Sequencer 기능

26-38

Flexible Power Sequencer(FPS)는 각 regulator를 hardware 또는 software control로 기동합니다. regulator는 독립적으로 또는 다른 regulator 그룹과 함께 조정 가능한 power-up·power-down delay로 순차 기동할 수 있습니다.

GPIO1·GPIO2·GPIO3를 sequence에 넣어 외부 regulator를 내부 regulator와 함께 제어할 수 있고 32kHz clock도 sequence에 포함할 수 있습니다.

Master timer·slot·inactive 상태

39-62

sequencing 구조에는 두 hardware enable input EN0·EN1과 세 master timer FPS0·FPS1·FPS2가 있습니다. 각 timer는 configuration register로 EN1 또는 EN2 hardware source나 SW source를 선택합니다. 활성화·비활성화될 때 서로 다른 시간 구간의 slot event 여덟 개를 만들며 event 사이 시간도 설정할 수 있습니다. 원문은 앞에서 EN0·EN1이라 하고 여기서 EN1·EN2라 쓰는 불일치를 그대로 설명에 보존합니다.

각 regulator, GPIO1~3, 32kHz clock은 enable source를 FPS timer 또는 software bit로 지정하는 slave register를 가집니다. FPS를 source로 선택하면 각 구성 register에서 power-up과 power-down delay를 설정합니다.

FPS event가 LOW로 clear되면 대응 slot에서 sleep state 또는 Global Low Power Mode(GLPM)로 전환할 수 있습니다. sleep에서는 regulator·GPIO·32kHz clock을 끄고, GLPM에서는 regulator를 low-power mode로 설정합니다.

FPS 노드와 system state별 구성

63-75

FPS parameter는 `fps` subnode와 `fps0`, `fps1`, `fps2` 자식으로 제공합니다. regulator, GPIO, 32kHz clock의 FPS source 및 power-up/down slot은 각 subsystem 바인딩의 해당 구성 노드에 둡니다. active에서 suspend 또는 shutdown으로 바뀌는 system state에 따라 서로 다른 FPS parameter가 필요합니다.

FPS source·주기·inactive state

76-110

`maxim,fps-event-source`는 EN0, EN1 또는 SW 중 event source를 선택하는 `u32`입니다. 매크로 `MAX77620_FPS_EVENT_SRC_EN0`, `MAX77620_FPS_EVENT_SRC_EN1`, `MAX77620_FPS_EVENT_SRC_SW`는 `dt-bindings/mfd/max77620.h`에 정의됩니다.

`maxim,shutdown-fps-time-period-us`와 `maxim,suspend-fps-time-period-us`는 각각 shutdown과 suspend 상태의 FPS 주기를 마이크로초로 지정합니다.

`maxim,device-state-on-disabled-event`는 FPS event가 LOW로 clear될 때 PMIC가 sleep 또는 low-power 상태로 갈지 지정합니다. `MAX77620_FPS_INACTIVE_STATE_SLEEP`은 sleep, `MAX77620_FPS_INACTIVE_STATE_LOW_POWER`는 low power입니다. 속성이 없거나 다른 값이면 clear 시 장치 상태를 바꾸지 않습니다.

지원 FPS 주기와 MAX20024 POK

111-127
지원 FPS time period
Chip지원 값 (us)
MAX7762040, 80, 160, 320, 640, 1280, 2560, 5120
MAX2002420, 40, 80, 160, 320, 640, 1280, 2540
MAX7766320, 40, 80, 160, 320, 640, 1280, 2540

칩별로 허용되는 마이크로초 단위 기간입니다.

`maxim,power-ok-control`은 MAX20024에서만 유효한 map power-ok bit 설정입니다. 값 1은 POK가 `nRST_IO`와 GPIO1 POK 기능을 제어하게 하고 0은 제어를 끕니다. 속성이 없으면 MPOK bit를 구성하지 않습니다.

GPIO1/`nRST_IO`에 POK mapping을 켜면 POK 제어가 활성화된 모든 rail이 HIGH일 때만 두 pin이 HIGH입니다. 그중 어느 rail이라도 내려가면 GPIO1/`nRST_IO`도 LOW가 됩니다.

MAX20024 POK mapping
모든 POK railGPIO1 / nRST_IO
HIGHHIGH
하나 이상 LOWLOW

POK rail의 결합 상태가 reset/GPIO output에 미치는 영향을 정리했습니다.

Subsystem 문서와 FPS 예제

128-162

GPIO, pincontrol, regulator, power 같은 각 submodule의 세부 사항은 해당 subsystem 디렉터리의 장치 트리 바인딩을 따릅니다.

예제 MAX77620은 I2C 주소 `0x3c`, 상위 interrupt 86과 두 cell IRQ domain을 사용합니다. FPS0은 EN1, FPS1은 EN0, FPS2는 software source이며 세 timer 모두 shutdown period 1280us입니다.

#include <dt-bindings/mfd/max77620.h>

max77620@3c {
        compatible = "maxim,max77620";
        reg = <0x3c>;

        interrupt-parent = <&intc>;
        interrupts = <0 86 IRQ_TYPE_NONE>;

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

        fps {
                fps0 {
                        maxim,shutdown-fps-time-period-us = <1280>;
                        maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
                };

                fps1 {
                        maxim,shutdown-fps-time-period-us = <1280>;
                        maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
                };

                fps2 {
                        maxim,shutdown-fps-time-period-us = <1280>;
                        maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_SW>;
                };
        };
};