Commit d46e0d33 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "A very quiet releases, some fixes and cleanups but not really that
  many of them. There were a couple of new driver specific pieces:

   - Support for controlling the over/under voltage protection on
     BD718xx devices

   - New drivers for Richtek RTQ2134, and RTQ6752"

* tag 'regulator-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (37 commits)
  regulator: vctrl: Avoid lockdep warning in enable/disable ops
  regulator: vctrl: Use locked regulator_get_voltage in probe path
  regulator: Documentation fix for regulator error notification helper
  regulator: Minor regulator documentation fixes.
  regulator: sy7636a: Use the regmap directly
  regulator: sy7636a: Store the epd-pwr-good GPIO locally
  regulator: sy7636a: Use the parent driver data
  regulator: sy7636a: Remove the poll_enable_time
  regulator: sy8827n: Enable REGCACHE_FLAT
  regulator: sy8824x: Enable REGCACHE_FLAT
  regulator: rtq2134: Fix coding style
  regulator: hi6421v600: rename voltage range arrays
  regulator: hi6421v600: use lowercase for ldo
  regulator: fixed: use dev_err_probe for register
  regulator: rtq2134: Add support for Richtek RTQ2134 SubPMIC
  regulator: rtq2134: Add binding document for Richtek RTQ2134 SubPMIC
  regulator: Fix a couple of spelling mistakes in Kconfig
  regulator: rtq6752: fix reg reset behavior
  regulator: da9063: Add support for full-current mode.
  regulator: rt6245: make a const array func_base static, makes object smaller
  ...
parents 4aed6ee5 7aa6d700
Loading
Loading
Loading
Loading
+106 −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/richtek,rtq2134-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Richtek RTQ2134 SubPMIC Regulator

maintainers:
  - ChiYuan Huang <cy_huang@richtek.com>

description: |
  The RTQ2134 is a multi-phase, programmable power management IC that
  integrates with four high efficient, synchronous step-down converter cores.

  Datasheet is available at
  https://www.richtek.com/assets/product_file/RTQ2134-QA/DSQ2134-QA-01.pdf

properties:
  compatible:
    enum:
      - richtek,rtq2134

  reg:
    maxItems: 1

  regulators:
    type: object

    patternProperties:
      "^buck[1-3]$":
        type: object
        $ref: regulator.yaml#
        description: |
          regulator description for buck[1-3].

        properties:
          richtek,use-vsel-dvs:
            type: boolean
            description: |
              If specified, buck will listen to 'vsel' pin for dvs config.
              Else, use dvs0 voltage by default.

          richtek,uv-shutdown:
            type: boolean
            description: |
              If specified, use shutdown as UV action. Else, hiccup by default.

        unevaluatedProperties: false

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

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

      rtq2134@18 {
        compatible = "richtek,rtq2134";
        reg = <0x18>;

        regulators {
          buck1 {
            regulator-name = "rtq2134-buck1";
            regulator-min-microvolt = <300000>;
            regulator-max-microvolt = <1850000>;
            regulator-always-on;
            richtek,use-vsel-dvs;
            regulator-state-mem {
              regulator-suspend-min-microvolt = <550000>;
              regulator-suspend-max-microvolt = <550000>;
            };
          };
          buck2 {
            regulator-name = "rtq2134-buck2";
            regulator-min-microvolt = <1120000>;
            regulator-max-microvolt = <1120000>;
            regulator-always-on;
            richtek,use-vsel-dvs;
            regulator-state-mem {
              regulator-suspend-min-microvolt = <1120000>;
              regulator-suspend-max-microvolt = <1120000>;
            };
          };
          buck3 {
            regulator-name = "rtq2134-buck3";
            regulator-min-microvolt = <600000>;
            regulator-max-microvolt = <600000>;
            regulator-always-on;
            richtek,use-vsel-dvs;
            regulator-state-mem {
              regulator-suspend-min-microvolt = <600000>;
              regulator-suspend-max-microvolt = <600000>;
            };
          };
        };
      };
    };
+76 −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/richtek,rtq6752-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Richtek RTQ6752 TFT LCD Voltage Regulator

maintainers:
  - ChiYuan Huang <cy_huang@richtek.com>

description: |
  The RTQ6752 is an I2C interface pgorammable power management IC. It includes
  two synchronous boost converter for PAVDD, and one synchronous NAVDD
  buck-boost. The device is suitable for automotive TFT-LCD panel.

properties:
  compatible:
    enum:
      - richtek,rtq6752

  reg:
    maxItems: 1

  enable-gpios:
    description: |
      A connection of the chip 'enable' gpio line. If not provided, treat it as
      external pull up.
    maxItems: 1

  regulators:
    type: object

    patternProperties:
      "^(p|n)avdd$":
        type: object
        $ref: regulator.yaml#
        description: |
          regulator description for pavdd and navdd.

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

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

      rtq6752@6b {
        compatible = "richtek,rtq6752";
        reg = <0x6b>;
        enable-gpios = <&gpio26 2 0>;

        regulators {
          pavdd {
            regulator-name = "rtq6752-pavdd";
            regulator-min-microvolt = <5000000>;
            regulator-max-microvolt = <7300000>;
            regulator-boot-on;
          };
          navdd {
            regulator-name = "rtq6752-navdd";
            regulator-min-microvolt = <5000000>;
            regulator-max-microvolt = <7300000>;
            regulator-boot-on;
          };
        };
      };
    };
+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/socionext,uniphier-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Socionext UniPhier regulator controller

description: |
  This regulator controls VBUS and belongs to USB3 glue layer. Before using
  the regulator, it is necessary to control the clocks and resets to enable
  this layer. These clocks and resets should be described in each property.

maintainers:
  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

allOf:
  - $ref: "regulator.yaml#"

# USB3 Controller

properties:
  compatible:
    enum:
      - socionext,uniphier-pro4-usb3-regulator
      - socionext,uniphier-pro5-usb3-regulator
      - socionext,uniphier-pxs2-usb3-regulator
      - socionext,uniphier-ld20-usb3-regulator
      - socionext,uniphier-pxs3-usb3-regulator

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    oneOf:
      - items:          # for Pro4, Pro5
          - const: gio
          - const: link
      - items:          # for others
          - const: link

  resets:
    minItems: 1
    maxItems: 2

  reset-names:
    oneOf:
      - items:          # for Pro4, Pro5
          - const: gio
          - const: link
      - items:
          - const: link

additionalProperties: false

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - resets
  - reset-names

examples:
  - |
    usb-glue@65b00000 {
        compatible = "simple-mfd";
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0 0x65b00000 0x400>;

        usb_vbus0: regulators@100 {
            compatible = "socionext,uniphier-ld20-usb3-regulator";
            reg = <0x100 0x10>;
            clock-names = "link";
            clocks = <&sys_clk 14>;
            reset-names = "link";
            resets = <&sys_rst 14>;
        };
    };
+0 −58
Original line number Diff line number Diff line
Socionext UniPhier Regulator Controller

This describes the devicetree bindings for regulator controller implemented
on Socionext UniPhier SoCs.

USB3 Controller
---------------

This regulator controls VBUS and belongs to USB3 glue layer. Before using
the regulator, it is necessary to control the clocks and resets to enable
this layer. These clocks and resets should be described in each property.

Required properties:
- compatible: Should be
    "socionext,uniphier-pro4-usb3-regulator" - for Pro4 SoC
    "socionext,uniphier-pro5-usb3-regulator" - for Pro5 SoC
    "socionext,uniphier-pxs2-usb3-regulator" - for PXs2 SoC
    "socionext,uniphier-ld20-usb3-regulator" - for LD20 SoC
    "socionext,uniphier-pxs3-usb3-regulator" - for PXs3 SoC
- reg: Specifies offset and length of the register set for the device.
- clocks: A list of phandles to the clock gate for USB3 glue layer.
	According to the clock-names, appropriate clocks are required.
- clock-names: Should contain
    "gio", "link" - for Pro4 and Pro5 SoCs
    "link"        - for others
- resets: A list of phandles to the reset control for USB3 glue layer.
	According to the reset-names, appropriate resets are required.
- reset-names: Should contain
    "gio", "link" - for Pro4 and Pro5 SoCs
    "link"        - for others

See Documentation/devicetree/bindings/regulator/regulator.txt
for more details about the regulator properties.

Example:

	usb-glue@65b00000 {
		compatible = "socionext,uniphier-ld20-dwc3-glue",
			     "simple-mfd";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0x65b00000 0x400>;

		usb_vbus0: regulators@100 {
			compatible = "socionext,uniphier-ld20-usb3-regulator";
			reg = <0x100 0x10>;
			clock-names = "link";
			clocks = <&sys_clk 14>;
			reset-names = "link";
			resets = <&sys_rst 14>;
		};

		phy {
			...
			phy-supply = <&usb_vbus0>;
		};
		...
	};
+22 −2
Original line number Diff line number Diff line
@@ -1044,7 +1044,7 @@ config REGULATOR_RT6160
	help
	  This adds support for voltage regulator in Richtek RT6160.
	  This device automatically change voltage output mode from
	  Buck or Boost. The mode transistion depend on the input source voltage.
	  Buck or Boost. The mode transition depend on the input source voltage.
	  The wide output range is from 2025mV to 5200mV and can be used on most
	  common application scenario.

@@ -1053,10 +1053,21 @@ config REGULATOR_RT6245
	depends on I2C
	select REGMAP_I2C
	help
	  This adds supprot for Richtek RT6245 voltage regulator.
	  This adds support for Richtek RT6245 voltage regulator.
	  It can support up to 14A output current and adjustable output voltage
	  from 0.4375V to 1.3875V, per step 12.5mV.

config REGULATOR_RTQ2134
	tristate "Richtek RTQ2134 SubPMIC Regulator"
	depends on I2C
	select REGMAP_I2C
	help
	  This driver adds support for RTQ2134 SubPMIC regulators.
	  The RTQ2134 is a multi-phase, programmable power management IC that
	  integrate with four high efficient, synchronous step-down converter
	  cores. It features wide output voltage range and the capability to
	  configure the corresponding power stages.

config REGULATOR_RTMV20
	tristate "Richtek RTMV20 Laser Diode Regulator"
	depends on I2C
@@ -1066,6 +1077,15 @@ config REGULATOR_RTMV20
	  the Richtek RTMV20. It can support the load current up to 6A and
	  integrate strobe/vsync/fsin signal to synchronize the IR camera.

config REGULATOR_RTQ6752
	tristate "Richtek RTQ6752 TFT LCD voltage regulator"
	depends on I2C
	select REGMAP_I2C
	help
	  This driver adds support for Richtek RTQ6752. RTQ6752 includes two
	  synchronous boost converters for PAVDD, and one synchronous NAVDD
	  buck-boost. This device is suitable for automotive TFT-LCD panel.

config REGULATOR_S2MPA01
	tristate "Samsung S2MPA01 voltage regulator"
	depends on MFD_SEC_CORE || COMPILE_TEST
Loading