Commit c10383b3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "The main core change this release is generic support for handling of
  hardware errors from Matti Vaittinen, including some small updates to
  the reboot and thermal code so we can share support for powering off
  the system if things are going wrong enough.

  Otherwise this release we've mainly seen the addition of new drivers,
  including MT6359 which has pulled in some small changes from the MFD
  tree for build dependencies.

   - Support for controlling the trigger points for hardware error
     detection, and shared handlers for this.

   - Support for Maxim MAX8993, Mediatek MT6359 and MT6359P, Qualcomm
     PM8226 and SA8115P-ADP, and Sylergy TCS4526"

* tag 'regulator-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (91 commits)
  regulator: bd9576: Fix uninitializes variable may_have_irqs
  regulator: max8893: Select REGMAP_I2C to fix build error
  regulator: da9052: Ensure enough delay time for .set_voltage_time_sel
  regulator: mt6358: Fix vdram2 .vsel_mask
  regulator: hi6421v600: Fix setting wrong driver_data
  MAINTAINERS: Add reviewer for regulator irq_helpers
  regulator: bd9576: Fix the driver name in id table
  regulator: bd9576: Support error reporting
  regulator: bd9576 add FET ON-resistance for OCW
  regulator: add property parsing and callbacks to set protection limits
  regulator: IRQ based event/error notification helpers
  regulator: move rdev_print helpers to internal.h
  regulator: add warning flags
  thermal: Use generic HW-protection shutdown API
  reboot: Add hardware protection power-off
  regulator: Add protection limit properties
  regulator: hi6421v600: Fix setting idle mode
  regulator: Add MAX8893 bindings
  regulator: max8893: add regulator driver
  regulator: hi6421: Use correct variable type for regmap api val argument
  ...
parents 52f8cf8b 7fb593cb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ Required properties:
compatible:
	"mediatek,mt6323" for PMIC MT6323
	"mediatek,mt6358" for PMIC MT6358
	"mediatek,mt6359" for PMIC MT6359
	"mediatek,mt6397" for PMIC MT6397

Optional subnodes:
+88 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/max8893.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Regulator driver for MAX8893 PMIC from Maxim Integrated.

maintainers:
  - Sergey Larin <cerg2010cerg2010@mail.ru>

description: |
  The device has 5 LDO regulators and a single BUCK regulator.
  Programming is done through I2C bus.

properties:
  compatible:
    const: maxim,max8893

  reg:
    maxItems: 1

  regulators:
    type: object

    patternProperties:
      "^(ldo[1-5]|buck)$":
        $ref: "regulator.yaml#"

    additionalProperties: false

additionalProperties: false

required:
  - compatible
  - reg
  - regulators

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

            pmic@3e {
                    compatible = "maxim,max8893";
                    reg = <0x3e>;

                    regulators {
                            /* Front camera - s5k6aafx, back - m5mo */
                            /* Numbers used to indicate the sequence */
                            front_1_back_1: buck {
                                    regulator-name = "cam_isp_core_1v2";
                                    regulator-min-microvolt = <1200000>;
                                    regulator-max-microvolt = <1200000>;
                            };

                            front_4_back_5: ldo1 {
                                    regulator-name = "vt_io_1v8,cam_isp_1v8";
                                    regulator-min-microvolt = <1800000>;
                                    regulator-max-microvolt = <1800000>;
                            };

                            front_3_back_4: ldo2 {
                                    regulator-name = "vt_core_1v5";
                                    regulator-min-microvolt = <1500000>;
                                    regulator-max-microvolt = <1500000>;
                            };

                            front_5_back_6: ldo3 {
                                    regulator-name = "vt_cam_1v8,vt_sensor_io_1v8";
                                    regulator-min-microvolt = <1800000>;
                                    regulator-max-microvolt = <1800000>;
                            };

                            ldo4 {
                                    /* not used */
                            };

                            back_7: ldo5 {
                                    regulator-name = "cam_sensor_io_1v8";
                                    regulator-min-microvolt = <1800000>;
                                    regulator-max-microvolt = <1800000>;
                            };
                    };
            };
    };
...
+385 −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/regulator/mt6359-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MT6359 Regulator from MediaTek Integrated

maintainers:
  - Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>

description: |
  List of regulators provided by this controller. It is named
  according to its regulator type, buck_<name> and ldo_<name>.
  MT6359 regulators node should be sub node of the MT6397 MFD node.

patternProperties:
  "^buck_v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$"

    unevaluatedProperties: false

  "^ldo_v(ibr|rf12|usb|camio|efuse|xo22)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(ibr|rf12|usb|camio|efuse|xo22)$"

    unevaluatedProperties: false

  "^ldo_v(rfck|emc|a12|a09|ufs|bbck)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(rfck|emc|a12|a09|ufs|bbck)$"

    unevaluatedProperties: false

  "^ldo_vcn(18|13|33_1_bt|13_1_wifi|33_2_bt|33_2_wifi)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vcn(18|13|33_1_bt|13_1_wifi|33_2_bt|33_2_wifi)$"

    unevaluatedProperties: false

  "^ldo_vsram_(proc2|others|md|proc1|others_sshub)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vsram_(proc2|others|md|proc1|others_sshub)$"

    unevaluatedProperties: false

  "^ldo_v(fe|bif|io)28$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(fe|bif|io)28$"

    unevaluatedProperties: false

  "^ldo_v(aud|io|aux|rf|m)18$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(aud|io|aux|rf|m)18$"

    unevaluatedProperties: false

  "^ldo_vsim[12]$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^vsim[12]$"

    required:
      - regulator-name

    unevaluatedProperties: false

additionalProperties: false

examples:
  - |
    pmic {
      regulators {
        mt6359_vs1_buck_reg: buck_vs1 {
          regulator-name = "vs1";
          regulator-min-microvolt = <800000>;
          regulator-max-microvolt = <2200000>;
          regulator-enable-ramp-delay = <0>;
          regulator-always-on;
        };
        mt6359_vgpu11_buck_reg: buck_vgpu11 {
          regulator-name = "vgpu11";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <5000>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vmodem_buck_reg: buck_vmodem {
          regulator-name = "vmodem";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1100000>;
          regulator-ramp-delay = <10760>;
          regulator-enable-ramp-delay = <200>;
        };
        mt6359_vpu_buck_reg: buck_vpu {
          regulator-name = "vpu";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <5000>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vcore_buck_reg: buck_vcore {
          regulator-name = "vcore";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1300000>;
          regulator-ramp-delay = <5000>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vs2_buck_reg: buck_vs2 {
          regulator-name = "vs2";
          regulator-min-microvolt = <800000>;
          regulator-max-microvolt = <1600000>;
          regulator-enable-ramp-delay = <0>;
          regulator-always-on;
        };
        mt6359_vpa_buck_reg: buck_vpa {
          regulator-name = "vpa";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <3650000>;
          regulator-enable-ramp-delay = <300>;
        };
        mt6359_vproc2_buck_reg: buck_vproc2 {
          regulator-name = "vproc2";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <7500>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vproc1_buck_reg: buck_vproc1 {
          regulator-name = "vproc1";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
          regulator-ramp-delay = <7500>;
          regulator-enable-ramp-delay = <200>;
          regulator-allowed-modes = <0 1 2>;
        };
        mt6359_vcore_sshub_buck_reg: buck_vcore_sshub {
          regulator-name = "vcore_sshub";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
        };
        mt6359_vgpu11_sshub_buck_reg: buck_vgpu11_sshub {
          regulator-name = "vgpu11_sshub";
          regulator-min-microvolt = <400000>;
          regulator-max-microvolt = <1193750>;
        };
        mt6359_vaud18_ldo_reg: ldo_vaud18 {
          regulator-name = "vaud18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vsim1_ldo_reg: ldo_vsim1 {
          regulator-name = "vsim1";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <3100000>;
        };
        mt6359_vibr_ldo_reg: ldo_vibr {
          regulator-name = "vibr";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6359_vrf12_ldo_reg: ldo_vrf12 {
          regulator-name = "vrf12";
          regulator-min-microvolt = <1100000>;
          regulator-max-microvolt = <1300000>;
        };
        mt6359_vusb_ldo_reg: ldo_vusb {
          regulator-name = "vusb";
          regulator-min-microvolt = <3000000>;
          regulator-max-microvolt = <3000000>;
          regulator-enable-ramp-delay = <960>;
          regulator-always-on;
        };
        mt6359_vsram_proc2_ldo_reg: ldo_vsram_proc2 {
          regulator-name = "vsram_proc2";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
          regulator-ramp-delay = <7500>;
          regulator-enable-ramp-delay = <240>;
          regulator-always-on;
        };
        mt6359_vio18_ldo_reg: ldo_vio18 {
          regulator-name = "vio18";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1900000>;
          regulator-enable-ramp-delay = <960>;
          regulator-always-on;
        };
        mt6359_vcamio_ldo_reg: ldo_vcamio {
          regulator-name = "vcamio";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1900000>;
        };
        mt6359_vcn18_ldo_reg: ldo_vcn18 {
          regulator-name = "vcn18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vfe28_ldo_reg: ldo_vfe28 {
          regulator-name = "vfe28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <120>;
        };
        mt6359_vcn13_ldo_reg: ldo_vcn13 {
          regulator-name = "vcn13";
          regulator-min-microvolt = <900000>;
          regulator-max-microvolt = <1300000>;
        };
        mt6359_vcn33_1_bt_ldo_reg: ldo_vcn33_1_bt {
          regulator-name = "vcn33_1_bt";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3500000>;
        };
        mt6359_vcn33_1_wifi_ldo_reg: ldo_vcn33_1_wifi {
          regulator-name = "vcn33_1_wifi";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3500000>;
        };
        mt6359_vaux18_ldo_reg: ldo_vaux18 {
          regulator-name = "vaux18";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
          regulator-enable-ramp-delay = <240>;
          regulator-always-on;
        };
        mt6359_vsram_others_ldo_reg: ldo_vsram_others {
          regulator-name = "vsram_others";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
          regulator-ramp-delay = <5000>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vefuse_ldo_reg: ldo_vefuse {
          regulator-name = "vefuse";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <2000000>;
        };
        mt6359_vxo22_ldo_reg: ldo_vxo22 {
          regulator-name = "vxo22";
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <2200000>;
          regulator-always-on;
        };
        mt6359_vrfck_ldo_reg: ldo_vrfck {
          regulator-name = "vrfck";
          regulator-min-microvolt = <1500000>;
          regulator-max-microvolt = <1700000>;
        };
        mt6359_vrfck_1_ldo_reg: ldo_vrfck_1 {
          regulator-name = "vrfck";
          regulator-min-microvolt = <1240000>;
          regulator-max-microvolt = <1600000>;
        };
        mt6359_vbif28_ldo_reg: ldo_vbif28 {
          regulator-name = "vbif28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vio28_ldo_reg: ldo_vio28 {
          regulator-name = "vio28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3300000>;
          regulator-always-on;
        };
        mt6359_vemc_ldo_reg: ldo_vemc {
          regulator-name = "vemc";
          regulator-min-microvolt = <2900000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6359_vemc_1_ldo_reg: ldo_vemc_1 {
          regulator-name = "vemc";
          regulator-min-microvolt = <2500000>;
          regulator-max-microvolt = <3300000>;
        };
        mt6359_vcn33_2_bt_ldo_reg: ldo_vcn33_2_bt {
          regulator-name = "vcn33_2_bt";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3500000>;
        };
        mt6359_vcn33_2_wifi_ldo_reg: ldo_vcn33_2_wifi {
          regulator-name = "vcn33_2_wifi";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3500000>;
        };
        mt6359_va12_ldo_reg: ldo_va12 {
          regulator-name = "va12";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <1300000>;
          regulator-always-on;
        };
        mt6359_va09_ldo_reg: ldo_va09 {
          regulator-name = "va09";
          regulator-min-microvolt = <800000>;
          regulator-max-microvolt = <1200000>;
        };
        mt6359_vrf18_ldo_reg: ldo_vrf18 {
          regulator-name = "vrf18";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1810000>;
        };
        mt6359_vsram_md_ldo_reg: ldo_vsram_md {
          regulator-name = "vsram_md";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
          regulator-ramp-delay = <10760>;
          regulator-enable-ramp-delay = <240>;
        };
        mt6359_vufs_ldo_reg: ldo_vufs {
          regulator-name = "vufs";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1900000>;
        };
        mt6359_vm18_ldo_reg: ldo_vm18 {
          regulator-name = "vm18";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <1900000>;
          regulator-always-on;
        };
        mt6359_vbbck_ldo_reg: ldo_vbbck {
          regulator-name = "vbbck";
          regulator-min-microvolt = <1100000>;
          regulator-max-microvolt = <1200000>;
        };
        mt6359_vsram_proc1_ldo_reg: ldo_vsram_proc1 {
          regulator-name = "vsram_proc1";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
          regulator-ramp-delay = <7500>;
          regulator-enable-ramp-delay = <240>;
          regulator-always-on;
        };
        mt6359_vsim2_ldo_reg: ldo_vsim2 {
          regulator-name = "vsim2";
          regulator-min-microvolt = <1700000>;
          regulator-max-microvolt = <3100000>;
        };
        mt6359_vsram_others_sshub_ldo: ldo_vsram_others_sshub {
          regulator-name = "vsram_others_sshub";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <1293750>;
        };
      };
    };
...
+9 −8
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@ description: |

    The names used for regulator nodes must match those supported by a given
    PMIC. Supported regulator node names are
      For PM6150, smps1 - smps5, ldo1 - ldo19
      For PM6150L, smps1 - smps8, ldo1 - ldo11, bob
      For PM7325, smps1 - smps8, ldo1 - ldo19
      For PM8005, smps1 - smps4
      For PM8009, smps1 - smps2, ldo1 - ldo7
      For PM8150, smps1 - smps10, ldo1 - ldo18
@@ -41,15 +44,15 @@ description: |
      For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
      For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
      For PMI8998, bob
      For PM6150, smps1 - smps5, ldo1 - ldo19
      For PM6150L, smps1 - smps8, ldo1 - ldo11, bob
      For PMX55, smps1 - smps7, ldo1 - ldo16
      For PM7325, smps1 - smps8, ldo1 - ldo19
      For PMR735A, smps1 - smps3, ldo1 - ldo7
      For PMX55, smps1 - smps7, ldo1 - ldo16

properties:
  compatible:
    enum:
      - qcom,pm6150-rpmh-regulators
      - qcom,pm6150l-rpmh-regulators
      - qcom,pm7325-rpmh-regulators
      - qcom,pm8005-rpmh-regulators
      - qcom,pm8009-rpmh-regulators
      - qcom,pm8009-1-rpmh-regulators
@@ -59,11 +62,9 @@ properties:
      - qcom,pm8350c-rpmh-regulators
      - qcom,pm8998-rpmh-regulators
      - qcom,pmi8998-rpmh-regulators
      - qcom,pm6150-rpmh-regulators
      - qcom,pm6150l-rpmh-regulators
      - qcom,pmx55-rpmh-regulators
      - qcom,pm7325-rpmh-regulators
      - qcom,pmm8155au-rpmh-regulators
      - qcom,pmr735a-rpmh-regulators
      - qcom,pmx55-rpmh-regulators

  qcom,pmic-id:
    description: |
+5 −0
Original line number Diff line number Diff line
@@ -24,6 +24,10 @@ description:

  For mp5496, s2

  For pm8226, s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10,
  l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, l25,
  l26, l27, l28, lvs1

  For pm8841, s1, s2, s3, s4, s5, s6, s7, s8

  For pm8916, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
@@ -68,6 +72,7 @@ properties:
  compatible:
    enum:
      - qcom,rpm-mp5496-regulators
      - qcom,rpm-pm8226-regulators
      - qcom,rpm-pm8841-regulators
      - qcom,rpm-pm8916-regulators
      - qcom,rpm-pm8941-regulators
Loading