Skip to content

Commit 95c81ee

Browse files
committed
only for test
Signed-off-by: Joan-Na-adi <joan.na@analog.com>
1 parent 0da8b75 commit 95c81ee

File tree

6 files changed

+1502
-0
lines changed

6 files changed

+1502
-0
lines changed
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/regulator/maxim,max77675.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Maxim MAX77675 PMIC Regulator
8+
9+
maintainers:
10+
- Joan Na <joan.na@analog.com>
11+
12+
description: |
13+
The MAX77675 is a PMIC providing multiple switching buck regulators
14+
(SBB0–SBB3), accessible via I2C. Each SBB can be configured individually
15+
in the Device Tree. Additional PMIC settings can be configured through
16+
device-specific properties.
17+
Users should use the macros from dt-bindings/regulator/maxim,max77675-regulator.h
18+
19+
allOf:
20+
- $ref: regulator.yaml#
21+
22+
properties:
23+
compatible:
24+
const: maxim,max77675
25+
26+
reg:
27+
maxItems: 1
28+
29+
maxim,dvs-slew-rate:
30+
description: |
31+
DVS slew rate setting.
32+
0 (MAX77675_DVS_SLEW_5MV) - 5 mV/μs
33+
1 (MAX77675_DVS_SLEW_10MV) - 10 mV/μs
34+
$ref: /schemas/types.yaml#/definitions/uint32
35+
enum: [0, 1]
36+
37+
maxim,latency-mode:
38+
description: |
39+
Latency mode for voltage transition:
40+
0 (MAX77675_LAT_MODE_HIGH_LATENCY) - Low quiescent current, high latency (~100μs)
41+
1 (MAX77675_LAT_MODE_LOW_LATENCY) - High quiescent current, low latency (~10μs)
42+
$ref: /schemas/types.yaml#/definitions/uint32
43+
enum: [0, 1]
44+
45+
maxim,drv-sbb-strength:
46+
description: |
47+
SIMO Buck-Boost Drive Strength Trim.
48+
0 (MAX77675_DRV_SBB_FASTEST) - Fastest transition (~0.6 ns)
49+
1 (MAX77675_DRV_SBB_FAST) - Faster transition (~1.2 ns)
50+
2 (MAX77675_DRV_SBB_MEDIUM) - Moderate transition (~1.8 ns)
51+
3 (MAX77675_DRV_SBB_SLOWEST) - Slowest transition (~8 ns)
52+
$ref: /schemas/types.yaml#/definitions/uint32
53+
enum: [0, 1, 2, 3]
54+
55+
maxim,manual-reset-time:
56+
description: |
57+
Manual reset time in seconds:
58+
0 (MAX77675_MRT_4S): 4 seconds
59+
1 (MAX77675_MRT_8S): 8 seconds
60+
2 (MAX77675_MRT_12S): 12 seconds
61+
3 (MAX77675_MRT_16S): 16 seconds
62+
$ref: /schemas/types.yaml#/definitions/uint32
63+
enum: [0, 1, 2, 3]
64+
65+
maxim,en-pullup-disable:
66+
description: |
67+
Disable internal pull-up for EN pin.
68+
0 (MAX77675_PU_EN): Internal pull-up enabled (default).
69+
1 (MAX77675_PU_DIS): Internal pull-up disabled.
70+
$ref: /schemas/types.yaml#/definitions/uint32
71+
enum: [0, 1]
72+
73+
maxim,bias-low-power-request:
74+
description: |
75+
Controls the bias low-power mode setting.
76+
0 (MAX77675_BIAS_NORMAL): Normal bias operation
77+
1 (MAX77675_BIAS_LPM_REQ): Request low-power bias mode
78+
$ref: /schemas/types.yaml#/definitions/uint32
79+
enum: [0, 1]
80+
81+
maxim,simo-int-ldo-always-on:
82+
description: |
83+
SIMO internal channel disable configuration.
84+
0 (MAX77675_SIMO_INT_NORMAL): SIMO channel enabled
85+
1 (MAX77675_SIMO_INT_LDO): SIMO channel disabled
86+
$ref: /schemas/types.yaml#/definitions/uint32
87+
enum: [0, 1]
88+
89+
maxim,en-mode:
90+
description: |
91+
Enable mode configuration.
92+
0 (MAX77675_EN_PUSH_BUTTON): Push button
93+
1 (MAX77675_EN_SLIDE_SWITCH): Slide switch
94+
2 (MAX77675_EN_LOGIC): Logic mode
95+
3 (MAX77675_EN_RESERVED): Reserved
96+
$ref: /schemas/types.yaml#/definitions/uint32
97+
enum: [0, 1, 2, 3]
98+
99+
maxim,en-debounce-time:
100+
description: |
101+
Debounce timer enable.
102+
0 (MAX77675_DBEN_100US): 100us
103+
1 (MAX77675_DBEN_30MS): 30ms
104+
$ref: /schemas/types.yaml#/definitions/uint32
105+
enum: [0, 1]
106+
107+
regulators:
108+
type: object
109+
description: Regulator child nodes
110+
patternProperties:
111+
"^sbb[0-3]$":
112+
type: object
113+
$ref: regulator.yaml#
114+
properties:
115+
maxim,fps-slot:
116+
description: |
117+
FPS slot selection.
118+
0 (MAX77675_FPS_SLOT_0): FPS Slot 0
119+
1 (MAX77675_FPS_SLOT_1): FPS Slot 1
120+
2 (MAX77675_FPS_SLOT_2): FPS Slot 2
121+
3 (MAX77675_FPS_SLOT_3): FPS Slot 3
122+
4 (MAX77675_FPS_NONE): No FPS Slot (disabled)
123+
5 (MAX77675_FPS_DEF): Use the defaul
124+
$ref: /schemas/types.yaml#/definitions/uint32
125+
enum: [0, 1, 2, 3, 4, 5]
126+
127+
maxim,slew-rate-use-dvs:
128+
description: |
129+
0 (MAX77675_SR_2MV_PER_US): Fixed slew rate of 2mV/μs.
130+
1 (MAX77675_SR_USE_DVS): Uses maxim,dvs-slew-rate for dynamic voltage scaling.
131+
$ref: /schemas/types.yaml#/definitions/uint32
132+
enum: [0, 1]
133+
additionalProperties: false
134+
135+
required:
136+
- compatible
137+
- reg
138+
- regulators
139+
140+
additionalProperties: false
141+
142+
examples:
143+
- |
144+
#include <dt-bindings/regulator/maxim,max77675-regulator.h>
145+
146+
i2c {
147+
#address-cells = <1>;
148+
#size-cells = <0>;
149+
150+
max77675: pmic@44 {
151+
compatible = "maxim,max77675";
152+
reg = <0x44>;
153+
154+
maxim,dvs-slew-rate = <MAX77675_DVS_SLEW_5MV>;
155+
maxim,latency-mode = <MAX77675_LAT_MODE_HIGH_LATENCY>;
156+
maxim,drv-sbb-strength = <MAX77675_DRV_SBB_FASTEST>;
157+
maxim,manual-reset-time = <MAX77675_MRT_4S>;
158+
maxim,en-pullup-disable = <MAX77675_PU_EN>;
159+
maxim,bias-low-power-request = <MAX77675_BIAS_NORMAL>;
160+
maxim,simo-int-ldo-always-on = <MAX77675_SIMO_INT_NORMAL>;
161+
maxim,en-mode = <MAX77675_EN_PUSH_BUTTON>;
162+
maxim,en-debounce-time = <MAX77675_DBEN_100US>;
163+
164+
regulators {
165+
sbb0: sbb0 {
166+
regulator-name = "sbb0";
167+
regulator-min-microvolt = <500000>;
168+
regulator-max-microvolt = <5500000>;
169+
maxim,fps-slot = <MAX77675_FPS_DEF>;
170+
maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
171+
};
172+
173+
sbb1: sbb1 {
174+
regulator-name = "sbb1";
175+
regulator-min-microvolt = <500000>;
176+
regulator-max-microvolt = <5500000>;
177+
regulator-allow-set-voltage;
178+
maxim,fps-slot = <MAX77675_FPS_DEF>;
179+
maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
180+
};
181+
182+
sbb2: sbb2 {
183+
regulator-name = "sbb2";
184+
regulator-min-microvolt = <500000>;
185+
regulator-max-microvolt = <5500000>;
186+
regulator-allow-set-voltage;
187+
maxim,fps-slot = <MAX77675_FPS_DEF>;
188+
maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
189+
};
190+
191+
sbb3: sbb3 {
192+
regulator-name = "sbb3";
193+
regulator-min-microvolt = <500000>;
194+
regulator-max-microvolt = <5500000>;
195+
regulator-allow-set-voltage;
196+
maxim,fps-slot = <MAX77675_FPS_DEF>;
197+
maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
198+
};
199+
};
200+
};
201+
};
202+

drivers/regulator/Kconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,13 @@ config REGULATOR_MAX77650
641641
Semiconductor. This device has a SIMO with three independent
642642
power rails and an LDO.
643643

644+
config REGULATOR_MAX77675
645+
tristate "MAX77675 regulator driver"
646+
depends on I2C
647+
select REGMAP_I2C
648+
help
649+
Regulator driver for Maxim MAX77675.
650+
644651
config REGULATOR_MAX77857
645652
tristate "ADI MAX77857/MAX77831 regulator support"
646653
depends on I2C

drivers/regulator/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ obj-$(CONFIG_REGULATOR_MAX77503) += max77503-regulator.o
7777
obj-$(CONFIG_REGULATOR_MAX77541) += max77541-regulator.o
7878
obj-$(CONFIG_REGULATOR_MAX77620) += max77620-regulator.o
7979
obj-$(CONFIG_REGULATOR_MAX77650) += max77650-regulator.o
80+
obj-$(CONFIG_REGULATOR_MAX77675) += max77675-regulator.o
8081
obj-$(CONFIG_REGULATOR_MAX8649) += max8649.o
8182
obj-$(CONFIG_REGULATOR_MAX8660) += max8660.o
8283
obj-$(CONFIG_REGULATOR_MAX8893) += max8893.o

0 commit comments

Comments
 (0)