← Documents Documentation/devicetree/bindings/regulator/palmas-pmic.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

TI Palmas PMIC regulator

Palmas 계열 호환성, interrupt, regulator node와 PMIC별 확장 property를 설명합니다.

Source pathDocumentation/devicetree/bindings/regulator/palmas-pmic.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

palmas-pmic.txt:1-89

필수 property와 수치 제약을 먼저 확인한 뒤, 접을 수 있는 영어 원문과 줄 범위별 한국어 전문을 함께 대조할 수 있습니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * palmas regulator IP block devicetree bindings
2
3 The tps659038 for the AM57x class have OTP spins that
4 have different part numbers but the same functionality. There
5 is not a need to add the OTP spins to the palmas driver. The
6 spin devices should use the tps659038 as it's compatible value.
7 This is the list of those devices:
8 tps659037
9
10 Required properties:
11 - compatible : Should be from the list
12 ti,twl6035-pmic
13 ti,twl6036-pmic
14 ti,twl6037-pmic
15 ti,tps65913-pmic
16 ti,tps65914-pmic
17 ti,tps65917-pmic
18 ti,tps659038-pmic
19 and also the generic series names
20 ti,palmas-pmic
21 - interrupts : The interrupt number and the type which can be looked up here:
22 arch/arm/boot/dts/include/dt-bindings/interrupt-controller/irq.h
23 - interrupts-name: The names of the individual interrupts.
24
25 Optional properties:
26 - ti,ldo6-vibrator : ldo6 is in vibrator mode
27
28 Optional nodes:
29 - regulators : Must contain a sub-node per regulator from the list below.
30 Each sub-node should contain the constraints and initialization
31 information for that regulator. See regulator.txt for a
32 description of standard properties for these sub-nodes.
33 Additional custom properties are listed below.
34
35 For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
36 smps45, smps457, smps7 depending on variant, smps6, smps[8-9],
37 smps10_out2, smps10_out1, ldo[1-9], ldoln, ldousb.
38
39 Optional sub-node properties:
40 ti,warm-reset - maintain voltage during warm reset(boolean)
41 ti,roof-floor - This takes as optional argument on platform supporting
42 the rail from desired external control. If there is no argument then
43 it will be assume that it is controlled by NSLEEP pin.
44 The valid value for external pins are:
45 ENABLE1 then 1,
46 ENABLE2 then 2 or
47 NSLEEP then 3.
48 ti,mode-sleep - mode to adopt in pmic sleep 0 - off, 1 - auto,
49 2 - eco, 3 - forced pwm
50 ti,smps-range - OTP has the wrong range set for the hardware so override
51 0 - low range, 1 - high range.
52
53 - ti,system-power-controller: Telling whether or not this pmic is controlling
54 the system power.
55
56 Example:
57
58 #include <dt-bindings/interrupt-controller/irq.h>
59
60 pmic {
61 compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
62 interrupt-parent = <&palmas>;
63 interrupts = <14 IRQ_TYPE_NONE>;
64 interrupts-name = "short-irq";
65
66 ti,ldo6-vibrator;
67
68 ti,system-power-controller;
69
70 regulators {
71 smps12_reg : smps12 {
72 regulator-name = "smps12";
73 regulator-min-microvolt = < 600000>;
74 regulator-max-microvolt = <1500000>;
75 regulator-always-on;
76 regulator-boot-on;
77 ti,warm-reset;
78 ti,roof-floor = <1>; /* ENABLE1 control */
79 ti,mode-sleep = <0>;
80 ti,smps-range = <1>;
81 };
82
83 ldo1_reg: ldo1 {
84 regulator-name = "ldo1";
85 regulator-min-microvolt = <2800000>;
86 regulator-max-microvolt = <2800000>;
87 };
88 };
89 };
90

3. 한국어 전문 번역

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

TPS659038 OTP spin 호환성

1-9

AM57x 계열용 `tps659038`에는 part number가 다르지만 기능은 같은 OTP spin이 있습니다. 이 spin을 Palmas driver에 별도로 추가할 필요는 없으며, 해당 장치는 `tps659038`을 compatible 값으로 사용해야 합니다. 여기에 해당하는 장치는 `tps659037`입니다.

필수 property

10-24

`compatible`은 `ti,twl6035-pmic`, `ti,twl6036-pmic`, `ti,twl6037-pmic`, `ti,tps65913-pmic`, `ti,tps65914-pmic`, `ti,tps65917-pmic`, `ti,tps659038-pmic` 또는 generic series 이름 `ti,palmas-pmic` 가운데 하나를 사용해야 합니다.

`interrupts`에는 interrupt 번호와 종류를 지정하며 종류는 `arch/arm/boot/dts/include/dt-bindings/interrupt-controller/irq.h`에서 확인할 수 있습니다. `interrupts-name`에는 개별 interrupt의 이름을 지정합니다.

선택 PMIC property

25-27

선택 property `ti,ldo6-vibrator`는 `ldo6`가 vibrator mode로 동작함을 나타냅니다.

선택 regulators node와 확장 property

28-55

선택 `regulators` node에는 아래 목록의 regulator마다 subnode 하나를 두어야 합니다. 각 subnode에는 해당 regulator의 constraint와 초기화 정보를 넣고, 표준 property는 `regulator.txt`를 따릅니다.

`ti,palmas-pmic`에서 가능한 이름은 OTP에 따라 `smps12`, `smps123`, `smps3`, variant에 따라 `smps45`, `smps457`, `smps7`, 그리고 `smps6`, `smps[8-9]`, `smps10_out2`, `smps10_out1`, `ldo[1-9]`, `ldoln`, `ldousb`입니다.

  • `ti,warm-reset`: warm reset 동안 전압을 유지하는 Boolean property입니다.
  • `ti,roof-floor`: 지원 platform에서 원하는 외부 제어로 rail을 연결합니다. 인자가 없으면 NSLEEP pin이 제어한다고 간주합니다. 유효한 외부 pin 값은 ENABLE1=1, ENABLE2=2, NSLEEP=3입니다.
  • `ti,mode-sleep`: PMIC sleep에서 사용할 mode입니다. 0은 off, 1은 auto, 2는 eco, 3은 forced PWM입니다.
  • `ti,smps-range`: OTP에 hardware range가 잘못 설정된 경우 이를 덮어씁니다. 0은 low range, 1은 high range입니다.

`ti,system-power-controller`는 이 PMIC가 system power를 제어하는지 여부를 나타냅니다.

Palmas PMIC 예제

56-89

예제는 `ti,twl6035-pmic`과 `ti,palmas-pmic` 호환성을 함께 선언하고 short interrupt, LDO6 vibrator mode, system power controller를 설정합니다. `smps12`에는 warm reset·ENABLE1 외부 제어·sleep off·high range를 지정하고, `ldo1`은 2,800,000 microvolt 고정 전압으로 선언합니다.

#include <dt-bindings/interrupt-controller/irq.h>

pmic {
        compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
        interrupt-parent = <&palmas>;
        interrupts = <14 IRQ_TYPE_NONE>;
        interrupts-name = "short-irq";

        ti,ldo6-vibrator;

        ti,system-power-controller;

        regulators {
                smps12_reg : smps12 {
                        regulator-name = "smps12";
                        regulator-min-microvolt = < 600000>;
                        regulator-max-microvolt = <1500000>;
                        regulator-always-on;
                        regulator-boot-on;
                        ti,warm-reset;
                        ti,roof-floor = <1>; /* ENABLE1 control */
                        ti,mode-sleep = <0>;
                        ti,smps-range = <1>;
                };

                ldo1_reg: ldo1 {
                        regulator-name = "ldo1";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
                };
        };
};