Commit 362067b6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "This release is almost all drivers, there's some small improvements in
  the core but otherwise everything is updates to drivers, mostly the
  addition of new ones.

  There's also a bunch of changes pulled in from the MFD subsystem as
  dependencies, Rockchip and TI core MFD code that the regulator drivers
  depend on.

  I've also yet again managed to put a SPI commit in the regulator tree,
  I don't know what it is about those two trees (this for
  spi-geni-qcom).

  Summary:

   - Support for Renesas RAA215300, Rockchip RK808, Texas Instruments
     TPS6594 and TPS6287x, and X-Powers AXP15060 and AXP313a"

* tag 'regulator-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (43 commits)
  regulator: Add Renesas PMIC RAA215300 driver
  regulator: dt-bindings: Add Renesas RAA215300 PMIC bindings
  regulator: ltc3676: Use maple tree register cache
  regulator: ltc3589: Use maple tree register cache
  regulator: helper: Document ramp_delay parameter of regulator_set_ramp_delay_regmap()
  regulator: mt6358: Use linear voltage helpers for single range regulators
  regulator: mt6358: Const-ify mt6358_regulator_info data structures
  regulator: mt6358: Drop *_SSHUB regulators
  regulator: mt6358: Merge VCN33_* regulators
  regulator: dt-bindings: mt6358: Drop *_sshub regulators
  regulator: dt-bindings: mt6358: Merge ldo_vcn33_* regulators
  regulator: dt-bindings: pwm-regulator: Add missing type for "pwm-dutycycle-unit"
  regulator: Switch two more i2c drivers back to use .probe()
  spi: spi-geni-qcom: Do not do DMA map/unmap inside driver, use framework instead
  soc: qcom: geni-se: Add interfaces geni_se_tx_init_dma() and geni_se_rx_init_dma()
  regulator: tps6594-regulator: Add driver for TI TPS6594 regulators
  regulator: axp20x: Add AXP15060 support
  regulator: axp20x: Add support for AXP313a variant
  dt-bindings: pfuze100.yaml: Add an entry for interrupts
  regulator: stm32-pwr: Fix regulator disabling
  ...
parents 4171a9aa 54e47ead
Loading
Loading
Loading
Loading
+406 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/rockchip,rk806.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: RK806 Power Management Integrated Circuit

maintainers:
  - Sebastian Reichel <sebastian.reichel@collabora.com>

description:
  Rockchip RK806 series PMIC. This device consists of an spi or
  i2c controlled MFD that includes multiple switchable regulators.

properties:
  compatible:
    enum:
      - rockchip,rk806

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  gpio-controller: true

  '#gpio-cells':
    const: 2

  vcc1-supply:
    description:
      The input supply for dcdc-reg1.

  vcc2-supply:
    description:
      The input supply for dcdc-reg2.

  vcc3-supply:
    description:
      The input supply for dcdc-reg3.

  vcc4-supply:
    description:
      The input supply for dcdc-reg4.

  vcc5-supply:
    description:
      The input supply for dcdc-reg5.

  vcc6-supply:
    description:
      The input supply for dcdc-reg6.

  vcc7-supply:
    description:
      The input supply for dcdc-reg7.

  vcc8-supply:
    description:
      The input supply for dcdc-reg8.

  vcc9-supply:
    description:
      The input supply for dcdc-reg9.

  vcc10-supply:
    description:
      The input supply for dcdc-reg10.

  vcc11-supply:
    description:
      The input supply for pldo-reg1, pldo-reg2 and pldo-reg3.

  vcc12-supply:
    description:
      The input supply for pldo-reg4 and pldo-reg5.

  vcc13-supply:
    description:
      The input supply for nldo-reg1, nldo-reg2 and nldo-reg3.

  vcc14-supply:
    description:
      The input supply for nldo-reg4 and nldo-reg5.

  vcca-supply:
    description:
      The input supply for pldo-reg6.

  regulators:
    type: object
    additionalProperties: false
    patternProperties:
      "^(dcdc-reg([1-9]|10)|pldo-reg[1-6]|nldo-reg[1-5])$":
        type: object
        $ref: /schemas/regulator/regulator.yaml#
        unevaluatedProperties: false

patternProperties:
  '-pins$':
    type: object
    additionalProperties: false
    $ref: /schemas/pinctrl/pinmux-node.yaml

    properties:
      function:
        enum: [pin_fun0, pin_fun1, pin_fun2, pin_fun3, pin_fun4, pin_fun5]

      pins:
        $ref: /schemas/types.yaml#/definitions/string
        enum: [gpio_pwrctrl1, gpio_pwrctrl2, gpio_pwrctrl3]

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml

required:
  - compatible
  - reg
  - interrupts

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/pinctrl/rockchip.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/gpio/gpio.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@0 {
            compatible = "rockchip,rk806";
            reg = <0x0>;

            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;

            vcc1-supply = <&vcc5v0_sys>;
            vcc2-supply = <&vcc5v0_sys>;
            vcc3-supply = <&vcc5v0_sys>;
            vcc4-supply = <&vcc5v0_sys>;
            vcc5-supply = <&vcc5v0_sys>;
            vcc6-supply = <&vcc5v0_sys>;
            vcc7-supply = <&vcc5v0_sys>;
            vcc8-supply = <&vcc5v0_sys>;
            vcc9-supply = <&vcc5v0_sys>;
            vcc10-supply = <&vcc5v0_sys>;
            vcc11-supply = <&vcc_2v0_pldo_s3>;
            vcc12-supply = <&vcc5v0_sys>;
            vcc13-supply = <&vcc5v0_sys>;
            vcc14-supply = <&vcc_1v1_nldo_s3>;
            vcca-supply = <&vcc5v0_sys>;

            regulators {
                vdd_gpu_s0: dcdc-reg1 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <550000>;
                    regulator-max-microvolt = <950000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_gpu_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd_npu_s0: dcdc-reg2 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <550000>;
                    regulator-max-microvolt = <950000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_npu_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd_log_s0: dcdc-reg3 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <750000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_log_s0";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <750000>;
                    };
                };

                vdd_vdenc_s0: dcdc-reg4 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <550000>;
                    regulator-max-microvolt = <950000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_vdenc_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd_gpu_mem_s0: dcdc-reg5 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <675000>;
                    regulator-max-microvolt = <950000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_gpu_mem_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd_npu_mem_s0: dcdc-reg6 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <675000>;
                    regulator-max-microvolt = <950000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_npu_mem_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vcc_2v0_pldo_s3: dcdc-reg7 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <2000000>;
                    regulator-max-microvolt = <2000000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_2v0_pldo_s3";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <2000000>;
                    };
                };

                vdd_vdenc_mem_s0: dcdc-reg8 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <675000>;
                    regulator-max-microvolt = <950000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_vdenc_mem_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd2_ddr_s3: dcdc-reg9 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-name = "vdd2_ddr_s3";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                    };
                };

                vcc_1v1_nldo_s3: dcdc-reg10 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1100000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vcc_1v1_nldo_s3";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1100000>;
                    };
                };

                avcc_1v8_s0: pldo-reg1 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "avcc_1v8_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd1_1v8_ddr_s3: pldo-reg2 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd1_1v8_ddr_s3";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1800000>;
                    };
                };

                vcc_1v8_s3: pldo-reg3 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vcc_1v8_s3";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1800000>;
                    };
                };

                vcc_3v3_s0: pldo-reg4 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vcc_3v3_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vccio_sd_s0: pldo-reg5 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vccio_sd_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                master_pldo6_s3: pldo-reg6 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-name = "master_pldo6_s3";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <1800000>;
                    };
                };

                vdd_0v75_s3: nldo-reg1 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <750000>;
                    regulator-ramp-delay = <12500>;
                    regulator-name = "vdd_0v75_s3";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <750000>;
                    };
                };

                vdd2l_0v9_ddr_s3: nldo-reg2 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <900000>;
                    regulator-max-microvolt = <900000>;
                    regulator-name = "vdd2l_0v9_ddr_s3";
                    regulator-state-mem {
                        regulator-on-in-suspend;
                        regulator-suspend-microvolt = <900000>;
                    };
                };

                master_nldo3: nldo-reg3 {
                    regulator-name = "master_nldo3";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                avdd_0v75_s0: nldo-reg4 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <750000>;
                    regulator-name = "avdd_0v75_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                vdd_0v85_s0: nldo-reg5 {
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <850000>;
                    regulator-name = "vdd_0v85_s0";
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };
            };
        };
    };
+7 −27
Original line number Diff line number Diff line
@@ -8,15 +8,14 @@ Documentation/devicetree/bindings/regulator/regulator.txt.

The valid names for regulators are::
BUCK:
  buck_vdram1, buck_vcore, buck_vcore_sshub, buck_vpa, buck_vproc11,
  buck_vproc12, buck_vgpu, buck_vs2, buck_vmodem, buck_vs1
  buck_vdram1, buck_vcore, buck_vpa, buck_vproc11, buck_vproc12, buck_vgpu,
  buck_vs2, buck_vmodem, buck_vs1
LDO:
  ldo_vdram2, ldo_vsim1, ldo_vibr, ldo_vrf12, ldo_vio18, ldo_vusb, ldo_vcamio,
  ldo_vcamd, ldo_vcn18, ldo_vfe28, ldo_vsram_proc11, ldo_vcn28, ldo_vsram_others,
  ldo_vsram_others_sshub, ldo_vsram_gpu, ldo_vxo22, ldo_vefuse, ldo_vaux18,
  ldo_vmch, ldo_vbif28, ldo_vsram_proc12, ldo_vcama1, ldo_vemc, ldo_vio28, ldo_va12,
  ldo_vrf18, ldo_vcn33_bt, ldo_vcn33_wifi, ldo_vcama2, ldo_vmc, ldo_vldo28, ldo_vaud28,
  ldo_vsim2
  ldo_vsram_gpu, ldo_vxo22, ldo_vefuse, ldo_vaux18, ldo_vmch, ldo_vbif28,
  ldo_vsram_proc12, ldo_vcama1, ldo_vemc, ldo_vio28, ldo_va12, ldo_vrf18,
  ldo_vcn33, ldo_vcama2, ldo_vmc, ldo_vldo28, ldo_vaud28, ldo_vsim2

Example:

@@ -305,15 +304,8 @@ Example:
				regulator-enable-ramp-delay = <120>;
			};

			mt6358_vcn33_bt_reg: ldo_vcn33_bt {
				regulator-name = "vcn33_bt";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3500000>;
				regulator-enable-ramp-delay = <270>;
			};

			mt6358_vcn33_wifi_reg: ldo_vcn33_wifi {
				regulator-name = "vcn33_wifi";
			mt6358_vcn33_reg: ldo_vcn33 {
				regulator-name = "vcn33";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3500000>;
				regulator-enable-ramp-delay = <270>;
@@ -354,17 +346,5 @@ Example:
				regulator-max-microvolt = <3100000>;
				regulator-enable-ramp-delay = <540>;
			};

			mt6358_vcore_sshub_reg: buck_vcore_sshub {
				regulator-name = "vcore_sshub";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
			};

			mt6358_vsram_others_sshub_reg: ldo_vsram_others_sshub {
				regulator-name = "vsram_others_sshub";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1293750>;
			};
		};
	};
+3 −0
Original line number Diff line number Diff line
@@ -36,6 +36,9 @@ properties:
  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  fsl,pfuze-support-disable-sw:
    $ref: /schemas/types.yaml#/definitions/flag
    description: |
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ properties:
        defined, <100> is assumed, meaning that
        pwm-dutycycle-range contains values expressed in
        percent.
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 100

  pwm-dutycycle-range:
+85 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/renesas,raa215300.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas RAA215300 Power Management Integrated Circuit (PMIC)

maintainers:
  - Biju Das <biju.das.jz@bp.renesas.com>

description: |
  The RAA215300 is a high-performance, low-cost 9-channel PMIC designed for
  32-bit and 64-bit MCU and MPU applications. It supports DDR3, DDR3L, DDR4,
  and LPDDR4 memory power requirements. The internally compensated regulators,
  built-in Real-Time Clock (RTC), 32kHz crystal oscillator, and coin cell
  battery charger provide a highly integrated, small footprint power solution
  ideal for System-On-Module (SOM) applications. A spread spectrum feature
  provides an ease-of-use solution for noise-sensitive audio or RF applications.

  This device exposes two devices via I2C. One for the integrated RTC IP, and
  one for everything else.

  Link to datasheet:
  https://www.renesas.com/in/en/products/power-power-management/multi-channel-power-management-ics-pmics/ssdsoc-power-management-ics-pmic-and-pmus/raa215300-high-performance-9-channel-pmic-supporting-ddr-memory-built-charger-and-rtc

properties:
  compatible:
    enum:
      - renesas,raa215300

  reg:
    maxItems: 2

  reg-names:
    items:
      - const: main
      - const: rtc

  interrupts:
    maxItems: 1

  clocks:
    description: |
      The clocks are optional. The RTC is disabled, if no clocks are
      provided(either xin or clkin).
    maxItems: 1

  clock-names:
    description: |
      Use xin, if connected to an external crystal.
      Use clkin, if connected to an external clock signal.
    enum:
      - xin
      - clkin

required:
  - compatible
  - reg
  - reg-names

additionalProperties: false

examples:
  - |
    /* 32.768kHz crystal */
    x2: x2-clock {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <32768>;
    };

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

        raa215300: pmic@12 {
            compatible = "renesas,raa215300";
            reg = <0x12>, <0x6f>;
            reg-names = "main", "rtc";

            clocks = <&x2>;
            clock-names = "xin";
        };
    };
Loading