[PATCH v2 3/3] dt-bindings: regulator: Add MAX77675 regulator binding

Joan-Na-adi posted 3 patches 2 days, 11 hours ago
[PATCH v2 3/3] dt-bindings: regulator: Add MAX77675 regulator binding
Posted by Joan-Na-adi 2 days, 11 hours ago
From: Joan Na <joan.na@analog.com>

Add device tree binding YAML schema for the Maxim MAX77675 PMIC regulator.
This defines the node properties and supported regulator names for use
in device tree sources.

Signed-off-by: Joan Na <joan.na@analog.com>
---
 .../bindings/regulator/maxim,max77675.yaml    | 202 ++++++++++++++++++
 1 file changed, 202 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max77675.yaml

diff --git a/Documentation/devicetree/bindings/regulator/maxim,max77675.yaml b/Documentation/devicetree/bindings/regulator/maxim,max77675.yaml
new file mode 100644
index 000000000000..f93dfdc499bc
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/maxim,max77675.yaml
@@ -0,0 +1,202 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/maxim,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 PMIC providing multiple switching buck regulators
+  (SBB0–SBB3), accessible via I2C. Each SBB can be configured individually
+  in the Device Tree. Additional PMIC settings can be configured through
+  device-specific properties.
+  Users should use the macros from dt-bindings/regulator/maxim,max77675-regulator.h
+
+allOf:
+  - $ref: regulator.yaml#
+
+properties:
+  compatible:
+    const: maxim,max77675
+
+  reg:
+    maxItems: 1
+
+  maxim,dvs-slew-rate:
+    description: |
+      DVS slew rate setting.
+      0 (MAX77675_DVS_SLEW_5MV) - 5 mV/μs
+      1 (MAX77675_DVS_SLEW_10MV) - 10 mV/μs
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+
+  maxim,latency-mode:
+    description: |
+      Latency mode for voltage transition:
+      0 (MAX77675_LAT_MODE_HIGH_LATENCY) - Low quiescent current, high latency (~100μs)
+      1 (MAX77675_LAT_MODE_LOW_LATENCY) - High quiescent current, low latency (~10μs)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+
+  maxim,drv-sbb-strength:
+    description: |
+      SIMO Buck-Boost Drive Strength Trim.
+      0 (MAX77675_DRV_SBB_FASTEST) - Fastest transition (~0.6 ns)
+      1 (MAX77675_DRV_SBB_FAST) - Faster transition (~1.2 ns)
+      2 (MAX77675_DRV_SBB_MEDIUM) - Moderate transition (~1.8 ns)
+      3 (MAX77675_DRV_SBB_SLOWEST) - Slowest transition (~8 ns)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2, 3]
+
+  maxim,manual-reset-time:
+    description: |
+      Manual reset time in seconds:
+      0 (MAX77675_MRT_4S): 4 seconds
+      1 (MAX77675_MRT_8S): 8 seconds
+      2 (MAX77675_MRT_12S): 12 seconds
+      3 (MAX77675_MRT_16S): 16 seconds
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2, 3]
+
+  maxim,en-pullup-disable:
+    description: |
+      Disable internal pull-up for EN pin.
+      0 (MAX77675_PU_EN): Internal pull-up enabled (default).
+      1 (MAX77675_PU_DIS): Internal pull-up disabled.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+
+  maxim,bias-low-power-request:
+    description: |
+      Controls the bias low-power mode setting.
+      0 (MAX77675_BIAS_NORMAL): Normal bias operation
+      1 (MAX77675_BIAS_LPM_REQ): Request low-power bias mode
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+
+  maxim,simo-int-ldo-always-on:
+    description: |
+      SIMO internal channel disable configuration.
+      0 (MAX77675_SIMO_INT_NORMAL): SIMO channel enabled
+      1 (MAX77675_SIMO_INT_LDO): SIMO channel disabled
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+
+  maxim,en-mode:
+    description: |
+      Enable mode configuration.
+      0 (MAX77675_EN_PUSH_BUTTON): Push button
+      1 (MAX77675_EN_SLIDE_SWITCH): Slide switch
+      2 (MAX77675_EN_LOGIC): Logic mode
+      3 (MAX77675_EN_RESERVED): Reserved
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2, 3]
+
+  maxim,en-debounce-time:
+    description: |
+      Debounce timer enable.
+      0 (MAX77675_DBEN_100US): 100us
+      1 (MAX77675_DBEN_30MS): 30ms
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+
+  regulators:
+    type: object
+    description: Regulator child nodes
+    patternProperties:
+      "^sbb[0-3]$":
+        type: object
+        $ref: regulator.yaml#
+    properties:
+      maxim,fps-slot:
+        description: |
+          FPS slot selection.
+          0 (MAX77675_FPS_SLOT_0): FPS Slot 0
+          1 (MAX77675_FPS_SLOT_1): FPS Slot 1
+          2 (MAX77675_FPS_SLOT_2): FPS Slot 2
+          3 (MAX77675_FPS_SLOT_3): FPS Slot 3
+          4 (MAX77675_FPS_NONE): No FPS Slot (disabled)
+          5 (MAX77675_FPS_DEF): Use the defaul
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum: [0, 1, 2, 3, 4, 5]
+
+      maxim,slew-rate-use-dvs:
+        description: |
+          0 (MAX77675_SR_2MV_PER_US): Fixed slew rate of 2mV/μs.
+          1 (MAX77675_SR_USE_DVS): Uses maxim,dvs-slew-rate for dynamic voltage scaling.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum: [0, 1]
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - regulators
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/regulator/maxim,max77675-regulator.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      max77675: pmic@44 {
+        compatible = "maxim,max77675";
+        reg = <0x44>;
+
+        maxim,dvs-slew-rate = <MAX77675_DVS_SLEW_5MV>;
+        maxim,latency-mode = <MAX77675_LAT_MODE_HIGH_LATENCY>;
+        maxim,drv-sbb-strength = <MAX77675_DRV_SBB_FASTEST>;
+        maxim,manual-reset-time = <MAX77675_MRT_4S>;
+        maxim,en-pullup-disable = <MAX77675_PU_EN>;
+        maxim,bias-low-power-request = <MAX77675_BIAS_NORMAL>;
+        maxim,simo-int-ldo-always-on = <MAX77675_SIMO_INT_NORMAL>;
+        maxim,en-mode = <MAX77675_EN_PUSH_BUTTON>;
+        maxim,en-debounce-time = <MAX77675_DBEN_100US>;
+
+        regulators {
+          sbb0: sbb0 {
+            regulator-name = "sbb0";
+            regulator-min-microvolt = <500000>;
+            regulator-max-microvolt = <5500000>;
+            maxim,fps-slot = <MAX77675_FPS_DEF>;
+            maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
+          };
+
+          sbb1: sbb1 {
+            regulator-name = "sbb1";
+            regulator-min-microvolt = <500000>;
+            regulator-max-microvolt = <5500000>;
+            regulator-allow-set-voltage;
+            maxim,fps-slot = <MAX77675_FPS_DEF>;
+            maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
+          };
+
+          sbb2: sbb2 {
+            regulator-name = "sbb2";
+            regulator-min-microvolt = <500000>;
+            regulator-max-microvolt = <5500000>;
+            regulator-allow-set-voltage;
+            maxim,fps-slot = <MAX77675_FPS_DEF>;
+            maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
+          };
+
+          sbb3: sbb3 {
+            regulator-name = "sbb3";
+            regulator-min-microvolt = <500000>;
+            regulator-max-microvolt = <5500000>;
+            regulator-allow-set-voltage;
+            maxim,fps-slot = <MAX77675_FPS_DEF>;
+            maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
+          };
+        };
+      };
+    };
+
--
2.34.1

Re: [PATCH v2 3/3] dt-bindings: regulator: Add MAX77675 regulator binding
Posted by Conor Dooley 2 days, 4 hours ago
On Mon, Sep 29, 2025 at 07:56:18PM +0900, Joan-Na-adi wrote:
> From: Joan Na <joan.na@analog.com>
> 
> Add device tree binding YAML schema for the Maxim MAX77675 PMIC regulator.
> This defines the node properties and supported regulator names for use
> in device tree sources.
> 
> Signed-off-by: Joan Na <joan.na@analog.com>

I reviewed v1 on the 26th, but see no mention nor sign of any of my
comments here. Why is that?

Cheers,
Conor.

> ---
>  .../bindings/regulator/maxim,max77675.yaml    | 202 ++++++++++++++++++
>  1 file changed, 202 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max77675.yaml
> 
> diff --git a/Documentation/devicetree/bindings/regulator/maxim,max77675.yaml b/Documentation/devicetree/bindings/regulator/maxim,max77675.yaml
> new file mode 100644
> index 000000000000..f93dfdc499bc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/maxim,max77675.yaml
> @@ -0,0 +1,202 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/maxim,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 PMIC providing multiple switching buck regulators
> +  (SBB0–SBB3), accessible via I2C. Each SBB can be configured individually
> +  in the Device Tree. Additional PMIC settings can be configured through
> +  device-specific properties.
> +  Users should use the macros from dt-bindings/regulator/maxim,max77675-regulator.h
> +
> +allOf:
> +  - $ref: regulator.yaml#
> +
> +properties:
> +  compatible:
> +    const: maxim,max77675
> +
> +  reg:
> +    maxItems: 1
> +
> +  maxim,dvs-slew-rate:
> +    description: |
> +      DVS slew rate setting.
> +      0 (MAX77675_DVS_SLEW_5MV) - 5 mV/μs
> +      1 (MAX77675_DVS_SLEW_10MV) - 10 mV/μs
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1]
> +
> +  maxim,latency-mode:
> +    description: |
> +      Latency mode for voltage transition:
> +      0 (MAX77675_LAT_MODE_HIGH_LATENCY) - Low quiescent current, high latency (~100μs)
> +      1 (MAX77675_LAT_MODE_LOW_LATENCY) - High quiescent current, low latency (~10μs)
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1]
> +
> +  maxim,drv-sbb-strength:
> +    description: |
> +      SIMO Buck-Boost Drive Strength Trim.
> +      0 (MAX77675_DRV_SBB_FASTEST) - Fastest transition (~0.6 ns)
> +      1 (MAX77675_DRV_SBB_FAST) - Faster transition (~1.2 ns)
> +      2 (MAX77675_DRV_SBB_MEDIUM) - Moderate transition (~1.8 ns)
> +      3 (MAX77675_DRV_SBB_SLOWEST) - Slowest transition (~8 ns)
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1, 2, 3]
> +
> +  maxim,manual-reset-time:
> +    description: |
> +      Manual reset time in seconds:
> +      0 (MAX77675_MRT_4S): 4 seconds
> +      1 (MAX77675_MRT_8S): 8 seconds
> +      2 (MAX77675_MRT_12S): 12 seconds
> +      3 (MAX77675_MRT_16S): 16 seconds
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1, 2, 3]
> +
> +  maxim,en-pullup-disable:
> +    description: |
> +      Disable internal pull-up for EN pin.
> +      0 (MAX77675_PU_EN): Internal pull-up enabled (default).
> +      1 (MAX77675_PU_DIS): Internal pull-up disabled.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1]
> +
> +  maxim,bias-low-power-request:
> +    description: |
> +      Controls the bias low-power mode setting.
> +      0 (MAX77675_BIAS_NORMAL): Normal bias operation
> +      1 (MAX77675_BIAS_LPM_REQ): Request low-power bias mode
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1]
> +
> +  maxim,simo-int-ldo-always-on:
> +    description: |
> +      SIMO internal channel disable configuration.
> +      0 (MAX77675_SIMO_INT_NORMAL): SIMO channel enabled
> +      1 (MAX77675_SIMO_INT_LDO): SIMO channel disabled
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1]
> +
> +  maxim,en-mode:
> +    description: |
> +      Enable mode configuration.
> +      0 (MAX77675_EN_PUSH_BUTTON): Push button
> +      1 (MAX77675_EN_SLIDE_SWITCH): Slide switch
> +      2 (MAX77675_EN_LOGIC): Logic mode
> +      3 (MAX77675_EN_RESERVED): Reserved
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1, 2, 3]
> +
> +  maxim,en-debounce-time:
> +    description: |
> +      Debounce timer enable.
> +      0 (MAX77675_DBEN_100US): 100us
> +      1 (MAX77675_DBEN_30MS): 30ms
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [0, 1]
> +
> +  regulators:
> +    type: object
> +    description: Regulator child nodes
> +    patternProperties:
> +      "^sbb[0-3]$":
> +        type: object
> +        $ref: regulator.yaml#
> +    properties:
> +      maxim,fps-slot:
> +        description: |
> +          FPS slot selection.
> +          0 (MAX77675_FPS_SLOT_0): FPS Slot 0
> +          1 (MAX77675_FPS_SLOT_1): FPS Slot 1
> +          2 (MAX77675_FPS_SLOT_2): FPS Slot 2
> +          3 (MAX77675_FPS_SLOT_3): FPS Slot 3
> +          4 (MAX77675_FPS_NONE): No FPS Slot (disabled)
> +          5 (MAX77675_FPS_DEF): Use the defaul
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        enum: [0, 1, 2, 3, 4, 5]
> +
> +      maxim,slew-rate-use-dvs:
> +        description: |
> +          0 (MAX77675_SR_2MV_PER_US): Fixed slew rate of 2mV/μs.
> +          1 (MAX77675_SR_USE_DVS): Uses maxim,dvs-slew-rate for dynamic voltage scaling.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        enum: [0, 1]
> +    additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - regulators
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/regulator/maxim,max77675-regulator.h>
> +
> +    i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      max77675: pmic@44 {
> +        compatible = "maxim,max77675";
> +        reg = <0x44>;
> +
> +        maxim,dvs-slew-rate = <MAX77675_DVS_SLEW_5MV>;
> +        maxim,latency-mode = <MAX77675_LAT_MODE_HIGH_LATENCY>;
> +        maxim,drv-sbb-strength = <MAX77675_DRV_SBB_FASTEST>;
> +        maxim,manual-reset-time = <MAX77675_MRT_4S>;
> +        maxim,en-pullup-disable = <MAX77675_PU_EN>;
> +        maxim,bias-low-power-request = <MAX77675_BIAS_NORMAL>;
> +        maxim,simo-int-ldo-always-on = <MAX77675_SIMO_INT_NORMAL>;
> +        maxim,en-mode = <MAX77675_EN_PUSH_BUTTON>;
> +        maxim,en-debounce-time = <MAX77675_DBEN_100US>;
> +
> +        regulators {
> +          sbb0: sbb0 {
> +            regulator-name = "sbb0";
> +            regulator-min-microvolt = <500000>;
> +            regulator-max-microvolt = <5500000>;
> +            maxim,fps-slot = <MAX77675_FPS_DEF>;
> +            maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
> +          };
> +
> +          sbb1: sbb1 {
> +            regulator-name = "sbb1";
> +            regulator-min-microvolt = <500000>;
> +            regulator-max-microvolt = <5500000>;
> +            regulator-allow-set-voltage;
> +            maxim,fps-slot = <MAX77675_FPS_DEF>;
> +            maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
> +          };
> +
> +          sbb2: sbb2 {
> +            regulator-name = "sbb2";
> +            regulator-min-microvolt = <500000>;
> +            regulator-max-microvolt = <5500000>;
> +            regulator-allow-set-voltage;
> +            maxim,fps-slot = <MAX77675_FPS_DEF>;
> +            maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
> +          };
> +
> +          sbb3: sbb3 {
> +            regulator-name = "sbb3";
> +            regulator-min-microvolt = <500000>;
> +            regulator-max-microvolt = <5500000>;
> +            regulator-allow-set-voltage;
> +            maxim,fps-slot = <MAX77675_FPS_DEF>;
> +            maxim,slew-rate-use-dvs = <MAX77675_SR_2MV_PER_US>;
> +          };
> +        };
> +      };
> +    };
> +
> --
> 2.34.1
>