mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
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>
185 lines
5.5 KiB
YAML
185 lines
5.5 KiB
YAML
# 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 (SBB0–SBB3) 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;
|
||
};
|
||
};
|
||
};
|
||
};
|
||
|