Commit 71d689f6 authored by Grant Peltier's avatar Grant Peltier Committed by Guenter Roeck
Browse files

dt-bindings: hwmon: isl68137: add bindings to support voltage dividers



Add devicetree bindings to support declaring optional voltage dividers to
the rail outputs of supported digital multiphase regulators. Some
applications require Vout to exceed the voltage range that the Vsense pin
can detect. This binding definition allows users to define the
characteristics of a voltage divider placed between Vout and the Vsense
pin for any rail powered by the device.

These bindings copy the vout-voltage-divider property defined in the
maxim,max20730 bindings schema since it is the best fit for the use case
of scaling hwmon PMBus telemetry. The generic voltage-divider property
used by many iio drivers was determined to be a poor fit because that
schema is tied directly to iio for the purpose of scaling io-channel
voltages and the isl68137 driver is not an iio driver.

New schema file named isil,isl68137.yaml to align with the corresponding
driver name and pre-existing bindings ported from trivial bindings.
However, all new device bindings use renesas as the vendor prefix
since Renesas acquired Intersil and now maintains all documentation
for the devices.

Signed-off-by: default avatarGrant Peltier <grantpeltier93@gmail.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Message-ID: <f7ac200e982961ff733de27a5c4505c04d68b6f3.1731439797.git.grantpeltier93@gmail.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 83b645ee
Loading
Loading
Loading
Loading
+148 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---

$id: http://devicetree.org/schemas/hwmon/pmbus/isil,isl68137.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas Digital Multiphase Voltage Regulators with PMBus

maintainers:
  - Grant Peltier <grant.peltier.jg@renesas.com>

description: |
  Renesas digital multiphase voltage regulators with PMBus.
  https://www.renesas.com/en/products/power-management/multiphase-power/multiphase-dcdc-switching-controllers

properties:
  compatible:
    enum:
      - isil,isl68137
      - renesas,isl68220
      - renesas,isl68221
      - renesas,isl68222
      - renesas,isl68223
      - renesas,isl68224
      - renesas,isl68225
      - renesas,isl68226
      - renesas,isl68227
      - renesas,isl68229
      - renesas,isl68233
      - renesas,isl68239
      - renesas,isl69222
      - renesas,isl69223
      - renesas,isl69224
      - renesas,isl69225
      - renesas,isl69227
      - renesas,isl69228
      - renesas,isl69234
      - renesas,isl69236
      - renesas,isl69239
      - renesas,isl69242
      - renesas,isl69243
      - renesas,isl69247
      - renesas,isl69248
      - renesas,isl69254
      - renesas,isl69255
      - renesas,isl69256
      - renesas,isl69259
      - isil,isl69260
      - renesas,isl69268
      - isil,isl69269
      - renesas,isl69298
      - renesas,raa228000
      - renesas,raa228004
      - renesas,raa228006
      - renesas,raa228228
      - renesas,raa229001
      - renesas,raa229004

  reg:
    maxItems: 1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

patternProperties:
  "^channel@([0-3])$":
    type: object
    description:
      Container for properties specific to a particular channel (rail).

    properties:
      reg:
        description: The channel (rail) index.
        items:
          minimum: 0
          maximum: 3

      vout-voltage-divider:
        description: |
          Resistances of a voltage divider placed between Vout and the voltage
          sense (Vsense) pin for the given channel (rail). It has two numbers
          representing the resistances of the voltage divider provided as
          <Rout Rtotal> which yields an adjusted Vout as
          Vout_adj = Vout * Rtotal / Rout given the original Vout as reported
          by the Vsense pin. Given a circuit configuration similar to the one
          below, Rtotal = R1 + Rout.

            Vout ----.
                     |
                  .-----.
                  | R1  |
                  '-----'
                     |
                     +---- Vsense
                     |
                  .-----.
                  | Rout|
                  '-----'
                     |
                    GND

        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 2
        maxItems: 2

    required:
      - reg

    additionalProperties: false

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      isl68239@60 {
        compatible = "isil,isl68137";
        reg = <0x60>;
      };
    };
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      isl68239@60 {
        compatible = "renesas,isl68239";
        reg = <0x60>;
        #address-cells = <1>;
        #size-cells = <0>;

        channel@0 {
          reg = <0>;
          vout-voltage-divider = <1000 2000>;  // Reported Vout/Pout would be scaled by 2
        };
      };
    };
+0 −6
Original line number Diff line number Diff line
@@ -153,12 +153,6 @@ properties:
          - isil,isl29028
            # Intersil ISL29030 Ambient Light and Proximity Sensor
          - isil,isl29030
            # Intersil ISL68137 Digital Output Configurable PWM Controller
          - isil,isl68137
            # Intersil ISL69260 PMBus Voltage Regulator
          - isil,isl69260
            # Intersil ISL69269 PMBus Voltage Regulator
          - isil,isl69269
            # Intersil ISL76682 Ambient Light Sensor
          - isil,isl76682
            # JEDEC JESD300 (SPD5118) Hub and Serial Presence Detect