Skip to content

Commit 2bb2024

Browse files
committed
Add support for MAX77675 device
Merge series from Joan Na <joan.na@analog.com>: MAX77675 regulator driver and device tree bindings
2 parents 03d281f + 9e92c55 commit 2bb2024

4 files changed

Lines changed: 1250 additions & 0 deletions

File tree

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/regulator/adi,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 Power Management IC providing four switching buck
14+
regulators (SBB0–SBB3) accessible via I2C. It supports configuration
15+
of output voltages and enable controls for each regulator.
16+
17+
allOf:
18+
- $ref: /schemas/input/input.yaml
19+
- $ref: /schemas/pinctrl/pincfg-node.yaml
20+
21+
properties:
22+
compatible:
23+
const: adi,max77675
24+
25+
reg:
26+
maxItems: 1
27+
28+
reset-time-sec:
29+
description: Manual reset time in seconds
30+
enum: [4, 8, 12, 16]
31+
default: 4
32+
33+
bias-disable:
34+
type: boolean
35+
description: Disable internal pull-up for EN pin
36+
37+
input-debounce:
38+
description: Debounce time for the enable pin, in microseconds
39+
items:
40+
- enum: [100, 30000]
41+
default: 100
42+
43+
adi,en-mode:
44+
description: |
45+
Enable mode configuration.
46+
The debounce time set by 'input-debounce' applies to
47+
both push-button and slide-switch modes.
48+
"push-button" - A long press triggers power-on or power-down
49+
"slide-switch" - Low : powers on, High : powers down
50+
"logic" - Low : powers on, High : powers down (no debounce time)
51+
$ref: /schemas/types.yaml#/definitions/string
52+
enum: [push-button, slide-switch, logic]
53+
default: slide-switch
54+
55+
adi,voltage-change-latency-us:
56+
description:
57+
Specifies the delay (in microseconds) between an output voltage change
58+
request and the start of the SBB voltage ramp.
59+
enum: [10, 100]
60+
default: 100
61+
62+
adi,drv-sbb-strength:
63+
description: |
64+
SIMO Buck-Boost Drive Strength Trim.
65+
Controls the drive strength of the SIMO regulator's power MOSFETs.
66+
This setting affects switching speed, impacting power efficiency and EMI.
67+
"max" – Maximum drive strength (~0.6 ns transition time)
68+
"high" – High drive strength (~1.2 ns transition time)
69+
"low" – Low drive strength (~1.8 ns transition time)
70+
"min" – Minimum drive strength (~8 ns transition time)
71+
$ref: /schemas/types.yaml#/definitions/string
72+
enum: [max, high, low, min]
73+
default: max
74+
75+
adi,dvs-slew-rate-mv-per-us:
76+
description:
77+
Dynamic rising slew rate for output voltage transitions, in mV/μs.
78+
This setting is only used when 'adi,fixed-slew-rate' is not present.
79+
enum: [5, 10]
80+
default: 5
81+
82+
adi,bias-low-power-request:
83+
type: boolean
84+
description: Request low-power bias mode
85+
86+
adi,simo-ldo-always-on:
87+
type: boolean
88+
description: Set internal LDO to always supply 1.8V
89+
90+
regulators:
91+
type: object
92+
description: Regulator child nodes
93+
patternProperties:
94+
"^sbb[0-3]$":
95+
type: object
96+
$ref: regulator.yaml#
97+
properties:
98+
adi,fps-slot:
99+
description: |
100+
FPS (Flexible Power Sequencer) slot selection.
101+
The Flexible Power Sequencer allows resources to power up under
102+
hardware or software control. Additionally, each resource can
103+
power up independently or among a group of other regulators with
104+
adjustable power-up and power-down slots.
105+
"slot0" - Assign to FPS Slot 0
106+
"slot1" - Assign to FPS Slot 1
107+
"slot2" - Assign to FPS Slot 2
108+
"slot3" - Assign to FPS Slot 3
109+
"default" - Use the default FPS slot value stored in register
110+
$ref: /schemas/types.yaml#/definitions/string
111+
enum: [slot0, slot1, slot2, slot3, default]
112+
default: default
113+
114+
adi,fixed-slew-rate:
115+
type: boolean
116+
description:
117+
When this property is present, the device uses a constant 2 mV/μs
118+
slew rate and ignores any dynamic slew rate configuration.
119+
When absent, the device uses the dynamic slew rate specified
120+
by 'adi,dvs-slew-rate-mv-per-us'
121+
122+
unevaluatedProperties: false
123+
124+
required:
125+
- compatible
126+
- reg
127+
- regulators
128+
129+
additionalProperties: false
130+
131+
examples:
132+
- |
133+
i2c {
134+
#address-cells = <1>;
135+
#size-cells = <0>;
136+
137+
max77675: pmic@44 {
138+
compatible = "adi,max77675";
139+
reg = <0x44>;
140+
141+
reset-time-sec = <4>;
142+
input-debounce = <100>;
143+
144+
adi,en-mode = "slide-switch";
145+
adi,voltage-change-latency-us = <100>;
146+
adi,drv-sbb-strength = "max";
147+
adi,dvs-slew-rate-mv-per-us = <5>;
148+
149+
regulators {
150+
sbb0: sbb0 {
151+
regulator-name = "sbb0";
152+
regulator-min-microvolt = <500000>;
153+
regulator-max-microvolt = <5500000>;
154+
adi,fps-slot = "default";
155+
adi,fixed-slew-rate;
156+
};
157+
158+
sbb1: sbb1 {
159+
regulator-name = "sbb1";
160+
regulator-min-microvolt = <500000>;
161+
regulator-max-microvolt = <5500000>;
162+
adi,fps-slot = "default";
163+
adi,fixed-slew-rate;
164+
};
165+
166+
sbb2: sbb2 {
167+
regulator-name = "sbb2";
168+
regulator-min-microvolt = <500000>;
169+
regulator-max-microvolt = <5500000>;
170+
adi,fps-slot = "default";
171+
adi,fixed-slew-rate;
172+
};
173+
174+
sbb3: sbb3 {
175+
regulator-name = "sbb3";
176+
regulator-min-microvolt = <500000>;
177+
regulator-max-microvolt = <5500000>;
178+
adi,fps-slot = "default";
179+
adi,fixed-slew-rate;
180+
};
181+
};
182+
};
183+
};
184+

drivers/regulator/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,15 @@ config REGULATOR_MAX77650
659659
Semiconductor. This device has a SIMO with three independent
660660
power rails and an LDO.
661661

662+
config REGULATOR_MAX77675
663+
tristate "Maxim MAX77675 regulator driver"
664+
depends on I2C && OF
665+
select REGMAP_I2C
666+
help
667+
This driver controls the Maxim MAX77675 power regulator via I2C.
668+
It supports four programmable buck-boost outputs.
669+
Say Y here to enable the regulator driver
670+
662671
config REGULATOR_MAX77857
663672
tristate "ADI MAX77857/MAX77831 regulator support"
664673
depends on I2C

drivers/regulator/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ obj-$(CONFIG_REGULATOR_MAX77503) += max77503-regulator.o
7979
obj-$(CONFIG_REGULATOR_MAX77541) += max77541-regulator.o
8080
obj-$(CONFIG_REGULATOR_MAX77620) += max77620-regulator.o
8181
obj-$(CONFIG_REGULATOR_MAX77650) += max77650-regulator.o
82+
obj-$(CONFIG_REGULATOR_MAX77675) += max77675-regulator.o
8283
obj-$(CONFIG_REGULATOR_MAX8649) += max8649.o
8384
obj-$(CONFIG_REGULATOR_MAX8660) += max8660.o
8485
obj-$(CONFIG_REGULATOR_MAX8893) += max8893.o

0 commit comments

Comments
 (0)