regulator: dt-bindings: Add MAX77675 regulator

Add device tree binding YAML schema for the Maxim MAX77675 PMIC regulator.

Signed-off-by: Joan Na <joan.na@analog.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20251207032907.4850-2-joan.na@analog.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Joan Na
2025-12-07 12:29:06 +09:00
committed by Mark Brown
parent 8f0b4cce44
commit 05a0fe8e43

View File

@@ -0,0 +1,184 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/adi,max77675.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX77675 PMIC Regulator
maintainers:
- Joan Na <joan.na@analog.com>
description:
The MAX77675 is a Power Management IC providing four switching buck
regulators (SBB0SBB3) accessible via I2C. It supports configuration
of output voltages and enable controls for each regulator.
allOf:
- $ref: /schemas/input/input.yaml
- $ref: /schemas/pinctrl/pincfg-node.yaml
properties:
compatible:
const: adi,max77675
reg:
maxItems: 1
reset-time-sec:
description: Manual reset time in seconds
enum: [4, 8, 12, 16]
default: 4
bias-disable:
type: boolean
description: Disable internal pull-up for EN pin
input-debounce:
description: Debounce time for the enable pin, in microseconds
items:
- enum: [100, 30000]
default: 100
adi,en-mode:
description: |
Enable mode configuration.
The debounce time set by 'input-debounce' applies to
both push-button and slide-switch modes.
"push-button" - A long press triggers power-on or power-down
"slide-switch" - Low : powers on, High : powers down
"logic" - Low : powers on, High : powers down (no debounce time)
$ref: /schemas/types.yaml#/definitions/string
enum: [push-button, slide-switch, logic]
default: slide-switch
adi,voltage-change-latency-us:
description:
Specifies the delay (in microseconds) between an output voltage change
request and the start of the SBB voltage ramp.
enum: [10, 100]
default: 100
adi,drv-sbb-strength:
description: |
SIMO Buck-Boost Drive Strength Trim.
Controls the drive strength of the SIMO regulator's power MOSFETs.
This setting affects switching speed, impacting power efficiency and EMI.
"max" Maximum drive strength (~0.6 ns transition time)
"high" High drive strength (~1.2 ns transition time)
"low" Low drive strength (~1.8 ns transition time)
"min" Minimum drive strength (~8 ns transition time)
$ref: /schemas/types.yaml#/definitions/string
enum: [max, high, low, min]
default: max
adi,dvs-slew-rate-mv-per-us:
description:
Dynamic rising slew rate for output voltage transitions, in mV/μs.
This setting is only used when 'adi,fixed-slew-rate' is not present.
enum: [5, 10]
default: 5
adi,bias-low-power-request:
type: boolean
description: Request low-power bias mode
adi,simo-ldo-always-on:
type: boolean
description: Set internal LDO to always supply 1.8V
regulators:
type: object
description: Regulator child nodes
patternProperties:
"^sbb[0-3]$":
type: object
$ref: regulator.yaml#
properties:
adi,fps-slot:
description: |
FPS (Flexible Power Sequencer) slot selection.
The Flexible Power Sequencer allows resources to power up under
hardware or software control. Additionally, each resource can
power up independently or among a group of other regulators with
adjustable power-up and power-down slots.
"slot0" - Assign to FPS Slot 0
"slot1" - Assign to FPS Slot 1
"slot2" - Assign to FPS Slot 2
"slot3" - Assign to FPS Slot 3
"default" - Use the default FPS slot value stored in register
$ref: /schemas/types.yaml#/definitions/string
enum: [slot0, slot1, slot2, slot3, default]
default: default
adi,fixed-slew-rate:
type: boolean
description:
When this property is present, the device uses a constant 2 mV/μs
slew rate and ignores any dynamic slew rate configuration.
When absent, the device uses the dynamic slew rate specified
by 'adi,dvs-slew-rate-mv-per-us'
unevaluatedProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
max77675: pmic@44 {
compatible = "adi,max77675";
reg = <0x44>;
reset-time-sec = <4>;
input-debounce = <100>;
adi,en-mode = "slide-switch";
adi,voltage-change-latency-us = <100>;
adi,drv-sbb-strength = "max";
adi,dvs-slew-rate-mv-per-us = <5>;
regulators {
sbb0: sbb0 {
regulator-name = "sbb0";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <5500000>;
adi,fps-slot = "default";
adi,fixed-slew-rate;
};
sbb1: sbb1 {
regulator-name = "sbb1";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <5500000>;
adi,fps-slot = "default";
adi,fixed-slew-rate;
};
sbb2: sbb2 {
regulator-name = "sbb2";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <5500000>;
adi,fps-slot = "default";
adi,fixed-slew-rate;
};
sbb3: sbb3 {
regulator-name = "sbb3";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <5500000>;
adi,fps-slot = "default";
adi,fixed-slew-rate;
};
};
};
};