Commit 425f6a45 authored by Lee Jones's avatar Lee Jones
Browse files

Merge branches 'tb-mfd-clk-input-pinctrl-power-rtc-sound-6.5',...

Merge branches 'tb-mfd-clk-input-pinctrl-power-rtc-sound-6.5', 'ib-mfd-tps6594-core-6.5', 'ib-mfd-regulator-max5970-6.5', 'ib-mfd-regulator-6.5' and 'ib-mfd-power-6.5' into ibs-for-mfd-merged
Loading
Loading
Loading
Loading
+138 −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/mfd/richtek,rt5033.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Richtek RT5033 Power Management Integrated Circuit

maintainers:
  - Jakob Hauser <jahau@rocketmail.com>

description:
  RT5033 is a multifunction device which includes battery charger, fuel gauge,
  flash LED current source, LDO and synchronous Buck converter for portable
  applications. It is interfaced to host controller using I2C interface. The
  battery fuel gauge uses a separate I2C bus.

properties:
  compatible:
    const: richtek,rt5033

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  regulators:
    description:
      The regulators of RT5033 have to be instantiated under a sub-node named
      "regulators". For SAFE_LDO voltage there is only one value of 4.9 V. LDO
      voltage ranges from 1.2 V to 3.0 V in 0.1 V steps. BUCK voltage ranges
      from 1.0 V to 3.0 V in 0.1 V steps.
    type: object
    patternProperties:
      "^(SAFE_LDO|LDO|BUCK)$":
        type: object
        $ref: /schemas/regulator/regulator.yaml#
        unevaluatedProperties: false
    additionalProperties: false

  charger:
    type: object
    $ref: /schemas/power/supply/richtek,rt5033-charger.yaml#

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    battery: battery {
        compatible = "simple-battery";
        precharge-current-microamp = <450000>;
        constant-charge-current-max-microamp = <1000000>;
        charge-term-current-microamp = <150000>;
        precharge-upper-limit-microvolt = <3500000>;
        constant-charge-voltage-max-microvolt = <4350000>;
    };

    extcon {
        usb_con: connector {
            compatible = "usb-b-connector";
            label = "micro-USB";
            type = "micro";
        };
    };

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

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

            fuel-gauge@35 {
                compatible = "richtek,rt5033-battery";
                reg = <0x35>;

                interrupt-parent = <&msmgpio>;
                interrupts = <121 IRQ_TYPE_EDGE_FALLING>;

                pinctrl-names = "default";
                pinctrl-0 = <&fg_alert_default>;

                power-supplies = <&rt5033_charger>;
            };
        };

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

            pmic@34 {
                compatible = "richtek,rt5033";
                reg = <0x34>;

                interrupt-parent = <&msmgpio>;
                interrupts = <62 IRQ_TYPE_EDGE_FALLING>;

                pinctrl-names = "default";
                pinctrl-0 = <&pmic_int_default>;

                regulators {
                    safe_ldo_reg: SAFE_LDO {
                        regulator-name = "SAFE_LDO";
                        regulator-min-microvolt = <4900000>;
                        regulator-max-microvolt = <4900000>;
                        regulator-always-on;
                    };
                    ldo_reg: LDO {
                        regulator-name = "LDO";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
                    };
                    buck_reg: BUCK {
                        regulator-name = "BUCK";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                    };
                };

                rt5033_charger: charger {
                    compatible = "richtek,rt5033-charger";
                    monitored-battery = <&battery>;
                    richtek,usb-connector = <&usb_con>;
                };
            };
        };
    };
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ required:
  - compatible
  - reg

additionalProperties: false
unevaluatedProperties: false

examples:
  - |
+65 −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/power/supply/richtek,rt5033-charger.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Richtek RT5033 PMIC Battery Charger

maintainers:
  - Jakob Hauser <jahau@rocketmail.com>

description:
  The battery charger of the multifunction device RT5033 has to be instantiated
  under sub-node named "charger" using the following format.

properties:
  compatible:
    const: richtek,rt5033-charger

  monitored-battery:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: |
      Phandle to the monitored battery according to battery.yaml. The battery
      node needs to contain five parameters.

      precharge-current-microamp:
      Current of pre-charge mode. The pre-charge current levels are 350 mA
      to 650 mA programmed by I2C per 100 mA.

      constant-charge-current-max-microamp:
      Current of fast-charge mode. The fast-charge current levels are 700 mA
      to 2000 mA programmed by I2C per 100 mA.

      charge-term-current-microamp:
      This property is end of charge current. Its level ranges from 150 mA
      to 600 mA. Between 150 mA and 300 mA in 50 mA steps, between 300 mA and
      600 mA in 100 mA steps.

      precharge-upper-limit-microvolt:
      Voltage of pre-charge mode. If the battery voltage is below the pre-charge
      threshold voltage, the charger is in pre-charge mode with pre-charge
      current. Its levels are 2.3 V to 3.8 V programmed by I2C per 0.1 V.

      constant-charge-voltage-max-microvolt:
      Battery regulation voltage of constant voltage mode. This voltage levels
      from 3.65 V to 4.4 V by I2C per 0.025 V.

  richtek,usb-connector:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Phandle to a USB connector according to usb-connector.yaml. The connector
      should be a child of the extcon device.

required:
  - monitored-battery

additionalProperties: false

examples:
  - |
    charger {
        compatible = "richtek,rt5033-charger";
        monitored-battery = <&battery>;
        richtek,usb-connector = <&usb_con>;
    };
+34 −2
Original line number Diff line number Diff line
@@ -266,8 +266,8 @@ config MFD_MADERA_SPI
	  Support for the Cirrus Logic Madera platform audio SoC
	  core functionality controlled via SPI.

config MFD_MAX597X
	tristate "Maxim 597x power switch and monitor"
config MFD_MAX5970
	tristate "Maxim 5970/5978 power switch and monitor"
	depends on (I2C && OF)
	select MFD_SIMPLE_MFD_I2C
	help
@@ -1698,6 +1698,38 @@ config MFD_TPS65912_SPI
	  If you say yes here you get support for the TPS65912 series of
	  PM chips with SPI interface.

config MFD_TPS6594
	tristate
	select MFD_CORE
	select REGMAP
	select REGMAP_IRQ

config MFD_TPS6594_I2C
	tristate "TI TPS6594 Power Management chip with I2C"
	select MFD_TPS6594
	select REGMAP_I2C
	select CRC8
	depends on I2C
	help
	  If you say yes here you get support for the TPS6594 series of
	  PM chips with I2C interface.

	  This driver can also be built as a module.  If so, the module
	  will be called tps6594-i2c.

config MFD_TPS6594_SPI
	tristate "TI TPS6594 Power Management chip with SPI"
	select MFD_TPS6594
	select REGMAP_SPI
	select CRC8
	depends on SPI_MASTER
	help
	  If you say yes here you get support for the TPS6594 series of
	  PM chips with SPI interface.

	  This driver can also be built as a module.  If so, the module
	  will be called tps6594-spi.

config TWL4030_CORE
	bool "TI TWL4030/TWL5030/TWL6030/TPS659x0 Support"
	depends on I2C=y
+3 −0
Original line number Diff line number Diff line
@@ -96,6 +96,9 @@ obj-$(CONFIG_MFD_TPS65910) += tps65910.o
obj-$(CONFIG_MFD_TPS65912)	+= tps65912-core.o
obj-$(CONFIG_MFD_TPS65912_I2C)	+= tps65912-i2c.o
obj-$(CONFIG_MFD_TPS65912_SPI)  += tps65912-spi.o
obj-$(CONFIG_MFD_TPS6594)	+= tps6594-core.o
obj-$(CONFIG_MFD_TPS6594_I2C)	+= tps6594-i2c.o
obj-$(CONFIG_MFD_TPS6594_SPI)	+= tps6594-spi.o
obj-$(CONFIG_MENELAUS)		+= menelaus.o

obj-$(CONFIG_TWL4030_CORE)	+= twl-core.o twl4030-irq.o twl6030-irq.o
Loading