162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/regulator/qcom,rpm-regulator.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Qualcomm RPM regulator
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription:
1062306a36Sopenharmony_ci  The Qualcomm RPM regulator is modelled as a subdevice of the RPM.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci  Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,rpm.yaml
1362306a36Sopenharmony_ci  for information regarding the RPM node.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci  The regulator node houses sub-nodes for each regulator within the device.
1662306a36Sopenharmony_ci  Each sub-node is identified using the node's name, with valid values listed
1762306a36Sopenharmony_ci  for each of the pmics below.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  For pm8058 l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15,
2062306a36Sopenharmony_ci  l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, s0, s1, s2, s3, s4,
2162306a36Sopenharmony_ci  lvs0, lvs1, ncp
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  For pm8901 l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
2462306a36Sopenharmony_ci  mvs
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  For pm8921 s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
2762306a36Sopenharmony_ci  l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28,
2862306a36Sopenharmony_ci  l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
2962306a36Sopenharmony_ci  ncp
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  For pm8018 s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
3262306a36Sopenharmony_ci  l12, l14, lvs1
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  For smb208 s1a, s1b, s2a, s2b
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_cimaintainers:
3762306a36Sopenharmony_ci  - Bjorn Andersson <andersson@kernel.org>
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciproperties:
4062306a36Sopenharmony_ci  compatible:
4162306a36Sopenharmony_ci    enum:
4262306a36Sopenharmony_ci      - qcom,rpm-pm8058-regulators
4362306a36Sopenharmony_ci      - qcom,rpm-pm8901-regulators
4462306a36Sopenharmony_ci      - qcom,rpm-pm8921-regulators
4562306a36Sopenharmony_ci      - qcom,rpm-pm8018-regulators
4662306a36Sopenharmony_ci      - qcom,rpm-smb208-regulators
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cipatternProperties:
4962306a36Sopenharmony_ci  ".*-supply$":
5062306a36Sopenharmony_ci    description: Input supply phandle(s) for this node
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  "^((s|l|lvs)[0-9]*|s[1-2][a-b]|ncp|mvs|usb-switch|hdmi-switch)$":
5362306a36Sopenharmony_ci    description: List of regulators and its properties
5462306a36Sopenharmony_ci    $ref: regulator.yaml#
5562306a36Sopenharmony_ci    unevaluatedProperties: false
5662306a36Sopenharmony_ci    properties:
5762306a36Sopenharmony_ci      bias-pull-down:
5862306a36Sopenharmony_ci        description: enable pull down of the regulator when inactive
5962306a36Sopenharmony_ci        type: boolean
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci      qcom,switch-mode-frequency:
6262306a36Sopenharmony_ci        description: Frequency (Hz) of the switch-mode power supply
6362306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
6462306a36Sopenharmony_ci        enum:
6562306a36Sopenharmony_ci          - 19200000
6662306a36Sopenharmony_ci          - 9600000
6762306a36Sopenharmony_ci          - 6400000
6862306a36Sopenharmony_ci          - 4800000
6962306a36Sopenharmony_ci          - 3840000
7062306a36Sopenharmony_ci          - 3200000
7162306a36Sopenharmony_ci          - 2740000
7262306a36Sopenharmony_ci          - 2400000
7362306a36Sopenharmony_ci          - 2130000
7462306a36Sopenharmony_ci          - 1920000
7562306a36Sopenharmony_ci          - 1750000
7662306a36Sopenharmony_ci          - 1600000
7762306a36Sopenharmony_ci          - 1480000
7862306a36Sopenharmony_ci          - 1370000
7962306a36Sopenharmony_ci          - 1280000
8062306a36Sopenharmony_ci          - 1200000
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci      qcom,force-mode:
8362306a36Sopenharmony_ci        description: Indicates that the regulator should be forced to a particular mode
8462306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
8562306a36Sopenharmony_ci        enum:
8662306a36Sopenharmony_ci          - 0 # QCOM_RPM_FORCE_MODE_NONE do not force any mode
8762306a36Sopenharmony_ci          - 1 # QCOM_RPM_FORCE_MODE_LPM force into low power mode
8862306a36Sopenharmony_ci          - 2 # QCOM_RPM_FORCE_MODE_HPM force into high power mode
8962306a36Sopenharmony_ci          - 3 # QCOM_RPM_FORCE_MODE_AUTO allow regulator to automatically select its own mode
9062306a36Sopenharmony_ci              # based on realtime current draw, only for pm8921 smps and ftsmps
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci      qcom,power-mode-hysteretic:
9362306a36Sopenharmony_ci        description: select that the power supply should operate in hysteretic mode,
9462306a36Sopenharmony_ci          instead of the default pwm mode
9562306a36Sopenharmony_ci        type: boolean
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciadditionalProperties: false
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_cirequired:
10062306a36Sopenharmony_ci  - compatible
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciexamples:
10362306a36Sopenharmony_ci  - |
10462306a36Sopenharmony_ci    #include <dt-bindings/mfd/qcom-rpm.h>
10562306a36Sopenharmony_ci    regulators {
10662306a36Sopenharmony_ci      compatible = "qcom,rpm-pm8921-regulators";
10762306a36Sopenharmony_ci      vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci      s1 {
11062306a36Sopenharmony_ci        regulator-min-microvolt = <1225000>;
11162306a36Sopenharmony_ci        regulator-max-microvolt = <1225000>;
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci        bias-pull-down;
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci        qcom,switch-mode-frequency = <3200000>;
11662306a36Sopenharmony_ci      };
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci      pm8921_s4: s4 {
11962306a36Sopenharmony_ci        regulator-min-microvolt = <1800000>;
12062306a36Sopenharmony_ci        regulator-max-microvolt = <1800000>;
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci        qcom,switch-mode-frequency = <1600000>;
12362306a36Sopenharmony_ci        bias-pull-down;
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci        qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
12662306a36Sopenharmony_ci      };
12762306a36Sopenharmony_ci    };
12862306a36Sopenharmony_ci...
129