Unverified Commit 4fd1f509 authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'regulator-4.20' into regulator-next

parents 35a7f35a d8b2a8e9
Loading
Loading
Loading
Loading
+9 −8
Original line number Original line Diff line number Diff line
* ROHM BD71837 Power Management Integrated Circuit bindings
* ROHM BD71837 and BD71847 Power Management Integrated Circuit bindings


BD71837MWV is a programmable Power Management IC for powering single-core,
BD71837MWV and BD71847MWV are programmable Power Management ICs for powering
dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for
single-core, dual-core, and quad-core SoCs such as NXP-i.MX 8M. They are
low BOM cost and compact solution footprint. It integrates 8 Buck
optimized for low BOM cost and compact solution footprint. BD71837MWV
egulators and 7 LDOs to provide all the power rails required by the SoC and
integrates 8 Buck regulators and 7 LDOs. BD71847MWV contains 6 Buck regulators
the commonly used peripherals.
and 6 LDOs.


Datasheet for PMIC is available at:
Datasheet for BD71837 is available at:
https://www.rohm.com/datasheet/BD71837MWV/bd71837mwv-e
https://www.rohm.com/datasheet/BD71837MWV/bd71837mwv-e


Required properties:
Required properties:
 - compatible		: Should be "rohm,bd71837".
 - compatible		: Should be "rohm,bd71837" for bd71837
				    "rohm,bd71847" for bd71847.
 - reg			: I2C slave address.
 - reg			: I2C slave address.
 - interrupt-parent	: Phandle to the parent interrupt controller.
 - interrupt-parent	: Phandle to the parent interrupt controller.
 - interrupts		: The interrupt line the device is connected to.
 - interrupts		: The interrupt line the device is connected to.
+23 −0
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ Regulator nodes are identified by their compatible:
		    "qcom,rpm-pm8998-regulators"
		    "qcom,rpm-pm8998-regulators"
		    "qcom,rpm-pma8084-regulators"
		    "qcom,rpm-pma8084-regulators"
		    "qcom,rpm-pmi8998-regulators"
		    "qcom,rpm-pmi8998-regulators"
		    "qcom,rpm-pms405-regulators"


- vdd_s1-supply:
- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s2-supply:
@@ -188,6 +189,24 @@ Regulator nodes are identified by their compatible:
	Definition: reference to regulator supplying the input pin, as
	Definition: reference to regulator supplying the input pin, as
		    described in the data sheet
		    described in the data sheet


- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s3-supply:
- vdd_s4-supply:
- vdd_s5-supply:
- vdd_l1_l2-supply:
- vdd_l3_l8-supply:
- vdd_l4-supply:
- vdd_l5_l6-supply:
- vdd_l7-supply:
- vdd_l3_l8-supply:
- vdd_l9-supply:
- vdd_l10_l11_l12_l13-supply:
	Usage: optional (pms405 only)
	Value type: <phandle>
	Definition: reference to regulator supplying the input pin, as
		    described in the data sheet

The regulator node houses sub-nodes for each regulator within the device. Each
The regulator node houses sub-nodes for each regulator within the device. Each
sub-node is identified using the node's name, with valid values listed for each
sub-node is identified using the node's name, with valid values listed for each
of the pmics below.
of the pmics below.
@@ -222,6 +241,10 @@ pma8084:
pmi8998:
pmi8998:
	bob
	bob


pms405:
	s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
	l13

The content of each sub-node is defined by the standard binding for regulators -
The content of each sub-node is defined by the standard binding for regulators -
see regulator.txt.
see regulator.txt.


+9 −3
Original line number Original line Diff line number Diff line
ROHM BD71837 Power Management Integrated Circuit (PMIC) regulator bindings
ROHM BD71837 and BD71847 Power Management Integrated Circuit regulator bindings


Required properties:
Required properties:
 - regulator-name: should be "buck1", ..., "buck8" and "ldo1", ..., "ldo7"
 - regulator-name: should be "buck1", ..., "buck8" and "ldo1", ..., "ldo7" for
                   BD71837. For BD71847 names should be "buck1", ..., "buck6"
		   and "ldo1", ..., "ldo6"


List of regulators provided by this controller. BD71837 regulators node
List of regulators provided by this controller. BD71837 regulators node
should be sub node of the BD71837 MFD node. See BD71837 MFD bindings at
should be sub node of the BD71837 MFD node. See BD71837 MFD bindings at
@@ -16,10 +18,14 @@ disabled by driver at startup. LDO5 and LDO6 are supplied by those and
if they are disabled at startup the voltage monitoring for LDO5/LDO6 will
if they are disabled at startup the voltage monitoring for LDO5/LDO6 will
cause PMIC to reset.
cause PMIC to reset.


The valid names for regulator nodes are:
The valid names for BD71837 regulator nodes are:
BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7, BUCK8
BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7, BUCK8
LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7
LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7


The valid names for BD71847 regulator nodes are:
BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6
LDO1, LDO2, LDO3, LDO4, LDO5, LDO6

Optional properties:
Optional properties:
- Any optional property defined in bindings/regulator/regulator.txt
- Any optional property defined in bindings/regulator/regulator.txt


+68 −0
Original line number Original line Diff line number Diff line
STMicroelectronics STPMIC1 Voltage regulators

Regulator Nodes are optional depending on needs.

Available Regulators in STPMIC1 device are:
  - buck1 for Buck BUCK1
  - buck2 for Buck BUCK2
  - buck3 for Buck BUCK3
  - buck4 for Buck BUCK4
  - ldo1 for LDO LDO1
  - ldo2 for LDO LDO2
  - ldo3 for LDO LDO3
  - ldo4 for LDO LDO4
  - ldo5 for LDO LDO5
  - ldo6 for LDO LDO6
  - vref_ddr for LDO Vref DDR
  - boost for Buck BOOST
  - pwr_sw1 for VBUS_OTG switch
  - pwr_sw2 for SW_OUT switch

Switches are fixed voltage regulators with only enable/disable capability.

Optional properties:
- st,mask-reset: mask reset for this regulator: the regulator configuration
  is maintained during pmic reset.
- regulator-pull-down: enable high pull down
  if not specified light pull down is used
- regulator-over-current-protection:
    if set, all regulators are switched off in case of over-current detection
    on this regulator,
    if not set, the driver only sends an over-current event.
- interrupt-parent: phandle to the parent interrupt controller
- interrupts: index of current limit detection interrupt
- <regulator>-supply: phandle to the parent supply/regulator node
	each regulator supply can be described except vref_ddr.

Example:
regulators {
	compatible = "st,stpmic1-regulators";

	ldo6-supply = <&v3v3>;

	vdd_core: buck1 {
		regulator-name = "vdd_core";
		interrupts = <IT_CURLIM_BUCK1 0>;
		interrupt-parent = <&pmic>;
		st,mask-reset;
		regulator-pull-down;
		regulator-min-microvolt = <700000>;
		regulator-max-microvolt = <1200000>;
	};

	v3v3: buck4 {
		regulator-name = "v3v3";
		interrupts = <IT_CURLIM_BUCK4 0>;
		interrupt-parent = <&mypmic>;

		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	v1v8: ldo6 {
		regulator-name = "v1v8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-over-current-protection;
	};
};
+11 −1
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/physmap.h>
#include <linux/mtd/physmap.h>
#include <linux/gpio/driver.h>
#include <linux/gpio/driver.h>
#include <linux/gpio/machine.h>
#include <linux/gpio.h>
#include <linux/gpio.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/machine.h>
@@ -175,6 +176,7 @@ static struct resource mx21ads_mmgpio_resource =
	DEFINE_RES_MEM_NAMED(MX21ADS_IO_REG, SZ_2, "dat");
	DEFINE_RES_MEM_NAMED(MX21ADS_IO_REG, SZ_2, "dat");


static struct bgpio_pdata mx21ads_mmgpio_pdata = {
static struct bgpio_pdata mx21ads_mmgpio_pdata = {
	.label	= "mx21ads-mmgpio",
	.base	= MX21ADS_MMGPIO_BASE,
	.base	= MX21ADS_MMGPIO_BASE,
	.ngpio	= 16,
	.ngpio	= 16,
};
};
@@ -203,7 +205,6 @@ static struct regulator_init_data mx21ads_lcd_regulator_init_data = {
static struct fixed_voltage_config mx21ads_lcd_regulator_pdata = {
static struct fixed_voltage_config mx21ads_lcd_regulator_pdata = {
	.supply_name	= "LCD",
	.supply_name	= "LCD",
	.microvolts	= 3300000,
	.microvolts	= 3300000,
	.gpio		= MX21ADS_IO_LCDON,
	.enable_high	= 1,
	.enable_high	= 1,
	.init_data	= &mx21ads_lcd_regulator_init_data,
	.init_data	= &mx21ads_lcd_regulator_init_data,
};
};
@@ -216,6 +217,14 @@ static struct platform_device mx21ads_lcd_regulator = {
	},
	},
};
};


static struct gpiod_lookup_table mx21ads_lcd_regulator_gpiod_table = {
	.dev_id = "reg-fixed-voltage.0", /* Let's hope ID 0 is what we get */
	.table = {
		GPIO_LOOKUP("mx21ads-mmgpio", 9, NULL, GPIO_ACTIVE_HIGH),
		{ },
	},
};

/*
/*
 * Connected is a portrait Sharp-QVGA display
 * Connected is a portrait Sharp-QVGA display
 * of type: LQ035Q7DB02
 * of type: LQ035Q7DB02
@@ -311,6 +320,7 @@ static void __init mx21ads_late_init(void)
{
{
	imx21_add_mxc_mmc(0, &mx21ads_sdhc_pdata);
	imx21_add_mxc_mmc(0, &mx21ads_sdhc_pdata);


	gpiod_add_lookup_table(&mx21ads_lcd_regulator_gpiod_table);
	platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
	platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));


	mx21ads_cs8900_resources[1].start =
	mx21ads_cs8900_resources[1].start =
Loading