Message ID | 05841ff33ea166bc6934456a492adc3c67a90670.1571302099.git.matti.vaittinen@fi.rohmeurope.com |
---|---|
State | New |
Headers | show |
Series | Support ROHM BD71828 PMIC | expand |
Matt On 10/17/19 4:55 AM, Matti Vaittinen wrote: > ROHM BD71828 Power management IC integrates 7 buck converters, 7 LDOs, > a real-time clock (RTC), 3 GPO/regulator control pins, HALL input pin > and a 32.768 kHz clock gate. > > Document the dt bindings drivers are using. This should be patch 1 of X > Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> > --- > .../bindings/mfd/rohm,bd71828-pmic.txt | 180 ++++++++++++++++++ > 1 file changed, 180 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt > > diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt b/Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt > new file mode 100644 > index 000000000000..125efa9f3de0 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt > @@ -0,0 +1,180 @@ > +* ROHM BD71828 Power Management Integrated Circuit bindings > + > +BD71828GW is a single-chip power management IC for battery-powered portable > +devices. The IC integrates 7 buck converters, 7 LDOs, and a 1500 mA single-cell > +linear charger. Also included is a Coulomb counter, a real-time clock (RTC), > +and a 32.768 kHz clock gate. > + > +Required properties: > + - compatible : Should be "rohm,bd71828". > + - reg : I2C slave address. > + - interrupt-parent : Phandle to the parent interrupt controller. > + - interrupts : The interrupt line the device is connected to. > + - clocks : The parent clock connected to PMIC. > + - #clock-cells : Should be 0. > + - regulators : List of child nodes that specify the > + regulators. Please see > + ../regulator/rohm,bd71828-regulator.txt > + - gpio-controller : To indicate BD71828 acts as a GPIO controller. > + - #gpio-cells : Should be 2. The first cell is the pin number > + and the second cell is used to specify flags. > + See ../gpio/gpio.txt for more information. > + > +The BD71828 RUN state is divided into 4 configurable run-levels named RUN0, > +RUN1, RUN2 and RUN3. Bucks 1, 2, 6 and 7 can be either controlled individually > +via I2C, or some/all of them can be bound to run-levels and controlled as a > +group. If bucks are controlled individually these run-levels are ignored. See > +../regulator/rohm,bd71828-regulator.txt for how to define regulator voltages > +for run-levels. Run-levels can be changed by I2C or GPIO depending on PMIC's OTP > +configuration. > + > +Optional properties: > +- clock-output-names : Should contain name for output clock. > +- rohm,dvs-vsel-gpios : GPIOs used to control PMIC run-levels. Should > + describe two GPIOs. (See run-level control in > + data-sheet). If this property is omitted but > + some bucks are marked to be controlled by > + run-levels - then OTP option allowing > + run-level control via I2C is assumed. > +- gpio-reserved-ranges : Usage of GPIO pins can be changed via OTP. > + This property can be used to mark the pins > + which should not be configured for GPIO. > + Please see the ../gpio/gpio.txt for more > + information. > + > +Example: > + > + /* external oscillator node */ > + osc: oscillator { > + compatible = "fixed-clock"; > + #clock-cells = <1>; > + clock-frequency = <32768>; > + clock-output-names = "osc"; > + }; > + > + pmic: pmic@4b { > + compatible = "rohm,bd71828"; > + reg = <0x4b>; > + interrupt-parent = <&gpio1>; > + interrupts = <29 GPIO_ACTIVE_LOW>; > + clocks = <&osc 0>; > + #clock-cells = <0>; > + clock-output-names = "bd71828-32k-out"; > + gpio-controller; > + #gpio-cells = <2>; > + ngpios = <4>; > + gpio-reserved-ranges = <0 1 2 1>; > + gpio-line-names = "EPDEN"; > + rohm,dvs-vsel-gpios = <&gpio1 12 0>, > + <&gpio1 13 0>; > + regulators { > + buck1: BUCK1 { > + regulator-name = "buck1"; > + regulator-min-microvolt = <500000>; > + regulator-max-microvolt = <2000000>; > + regulator-ramp-delay = <2500>; > + rohm,dvs-runlvl-ctrl; > + rohm,dvs-runlevel0-voltage = <500000>; > + rohm,dvs-runlevel1-voltage = <506250>; > + rohm,dvs-runlevel2-voltage = <512500>; > + rohm,dvs-runlevel3-voltage = <518750>; > + regulator-boot-on; > + }; > + buck2: BUCK2 { > + regulator-name = "buck2"; > + regulator-min-microvolt = <500000>; > + regulator-max-microvolt = <2000000>; > + regulator-ramp-delay = <2500>; > + rohm,dvs-runlvl-ctrl; > + rohm,dvs-runlevel0-voltage = <500000>; > + rohm,dvs-runlevel1-voltage = <506250>; > + rohm,dvs-runlevel2-voltage = <512500>; > + rohm,dvs-runlevel3-voltage = <518750>; > + regulator-boot-on; > + }; > + buck3: BUCK3 { > + regulator-name = "buck3"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <2000000>; > + regulator-boot-on; > + }; > + buck4: BUCK4 { > + regulator-name = "buck4"; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1800000>; > + regulator-boot-on; > + }; > + buck5: BUCK5 { > + regulator-name = "buck5"; > + regulator-min-microvolt = <2500000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + }; > + buck6: BUCK6 { > + regulator-name = "buck6"; > + regulator-min-microvolt = <500000>; > + regulator-max-microvolt = <2000000>; > + regulator-ramp-delay = <2500>; > + rohm,dvs-runlvl-ctrl; > + rohm,dvs-runlevel0-voltage = <500000>; > + rohm,dvs-runlevel1-voltage = <506250>; > + rohm,dvs-runlevel2-voltage = <512500>; > + rohm,dvs-runlevel3-voltage = <518750>; > + regulator-boot-on; > + }; > + buck7: BUCK7 { > + regulator-name = "buck7"; > + regulator-min-microvolt = <500000>; > + regulator-max-microvolt = <2000000>; > + regulator-ramp-delay = <2500>; > + rohm,dvs-runlvl-ctrl; > + rohm,dvs-runlevel0-voltage = <500000>; > + rohm,dvs-runlevel1-voltage = <506250>; > + rohm,dvs-runlevel2-voltage = <512500>; > + rohm,dvs-runlevel3-voltage = <518750>; > + regulator-boot-on; > + }; > + ldo1: LDO1 { > + regulator-name = "ldo1"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + }; > + ldo2: LDO2 { > + regulator-name = "ldo2"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + }; > + ldo3: LDO3 { > + regulator-name = "ldo3"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + }; > + ldo4: LDO4 { > + regulator-name = "ldo4"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + }; > + ldo5: LDO5 { > + regulator-name = "ldo5"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + }; > + ldo6: LDO6 { > + regulator-name = "ldo6"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-boot-on; > + }; > + ldo7_reg: LDO7 { > + regulator-name = "ldo7"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + }; > + }; > + };
Thanks Dan, On Thu, 2019-10-17 at 09:18 -0500, Dan Murphy wrote: > Matt By the way, its Matti ;) > On 10/17/19 4:55 AM, Matti Vaittinen wrote: > > ROHM BD71828 Power management IC integrates 7 buck converters, 7 > > LDOs, > > a real-time clock (RTC), 3 GPO/regulator control pins, HALL input > > pin > > and a 32.768 kHz clock gate. > > > > Document the dt bindings drivers are using. > > This should be patch 1 of X I will rebase :) Br, Matti Vaittinen
diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt b/Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt new file mode 100644 index 000000000000..125efa9f3de0 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt @@ -0,0 +1,180 @@ +* ROHM BD71828 Power Management Integrated Circuit bindings + +BD71828GW is a single-chip power management IC for battery-powered portable +devices. The IC integrates 7 buck converters, 7 LDOs, and a 1500 mA single-cell +linear charger. Also included is a Coulomb counter, a real-time clock (RTC), +and a 32.768 kHz clock gate. + +Required properties: + - compatible : Should be "rohm,bd71828". + - reg : I2C slave address. + - interrupt-parent : Phandle to the parent interrupt controller. + - interrupts : The interrupt line the device is connected to. + - clocks : The parent clock connected to PMIC. + - #clock-cells : Should be 0. + - regulators : List of child nodes that specify the + regulators. Please see + ../regulator/rohm,bd71828-regulator.txt + - gpio-controller : To indicate BD71828 acts as a GPIO controller. + - #gpio-cells : Should be 2. The first cell is the pin number + and the second cell is used to specify flags. + See ../gpio/gpio.txt for more information. + +The BD71828 RUN state is divided into 4 configurable run-levels named RUN0, +RUN1, RUN2 and RUN3. Bucks 1, 2, 6 and 7 can be either controlled individually +via I2C, or some/all of them can be bound to run-levels and controlled as a +group. If bucks are controlled individually these run-levels are ignored. See +../regulator/rohm,bd71828-regulator.txt for how to define regulator voltages +for run-levels. Run-levels can be changed by I2C or GPIO depending on PMIC's OTP +configuration. + +Optional properties: +- clock-output-names : Should contain name for output clock. +- rohm,dvs-vsel-gpios : GPIOs used to control PMIC run-levels. Should + describe two GPIOs. (See run-level control in + data-sheet). If this property is omitted but + some bucks are marked to be controlled by + run-levels - then OTP option allowing + run-level control via I2C is assumed. +- gpio-reserved-ranges : Usage of GPIO pins can be changed via OTP. + This property can be used to mark the pins + which should not be configured for GPIO. + Please see the ../gpio/gpio.txt for more + information. + +Example: + + /* external oscillator node */ + osc: oscillator { + compatible = "fixed-clock"; + #clock-cells = <1>; + clock-frequency = <32768>; + clock-output-names = "osc"; + }; + + pmic: pmic@4b { + compatible = "rohm,bd71828"; + reg = <0x4b>; + interrupt-parent = <&gpio1>; + interrupts = <29 GPIO_ACTIVE_LOW>; + clocks = <&osc 0>; + #clock-cells = <0>; + clock-output-names = "bd71828-32k-out"; + gpio-controller; + #gpio-cells = <2>; + ngpios = <4>; + gpio-reserved-ranges = <0 1 2 1>; + gpio-line-names = "EPDEN"; + rohm,dvs-vsel-gpios = <&gpio1 12 0>, + <&gpio1 13 0>; + regulators { + buck1: BUCK1 { + regulator-name = "buck1"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <2000000>; + regulator-ramp-delay = <2500>; + rohm,dvs-runlvl-ctrl; + rohm,dvs-runlevel0-voltage = <500000>; + rohm,dvs-runlevel1-voltage = <506250>; + rohm,dvs-runlevel2-voltage = <512500>; + rohm,dvs-runlevel3-voltage = <518750>; + regulator-boot-on; + }; + buck2: BUCK2 { + regulator-name = "buck2"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <2000000>; + regulator-ramp-delay = <2500>; + rohm,dvs-runlvl-ctrl; + rohm,dvs-runlevel0-voltage = <500000>; + rohm,dvs-runlevel1-voltage = <506250>; + rohm,dvs-runlevel2-voltage = <512500>; + rohm,dvs-runlevel3-voltage = <518750>; + regulator-boot-on; + }; + buck3: BUCK3 { + regulator-name = "buck3"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <2000000>; + regulator-boot-on; + }; + buck4: BUCK4 { + regulator-name = "buck4"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + }; + buck5: BUCK5 { + regulator-name = "buck5"; + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + buck6: BUCK6 { + regulator-name = "buck6"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <2000000>; + regulator-ramp-delay = <2500>; + rohm,dvs-runlvl-ctrl; + rohm,dvs-runlevel0-voltage = <500000>; + rohm,dvs-runlevel1-voltage = <506250>; + rohm,dvs-runlevel2-voltage = <512500>; + rohm,dvs-runlevel3-voltage = <518750>; + regulator-boot-on; + }; + buck7: BUCK7 { + regulator-name = "buck7"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <2000000>; + regulator-ramp-delay = <2500>; + rohm,dvs-runlvl-ctrl; + rohm,dvs-runlevel0-voltage = <500000>; + rohm,dvs-runlevel1-voltage = <506250>; + rohm,dvs-runlevel2-voltage = <512500>; + rohm,dvs-runlevel3-voltage = <518750>; + regulator-boot-on; + }; + ldo1: LDO1 { + regulator-name = "ldo1"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + ldo2: LDO2 { + regulator-name = "ldo2"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + ldo3: LDO3 { + regulator-name = "ldo3"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + ldo4: LDO4 { + regulator-name = "ldo4"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + ldo5: LDO5 { + regulator-name = "ldo5"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + ldo6: LDO6 { + regulator-name = "ldo6"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + }; + ldo7_reg: LDO7 { + regulator-name = "ldo7"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + }; + };
ROHM BD71828 Power management IC integrates 7 buck converters, 7 LDOs, a real-time clock (RTC), 3 GPO/regulator control pins, HALL input pin and a 32.768 kHz clock gate. Document the dt bindings drivers are using. Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> --- .../bindings/mfd/rohm,bd71828-pmic.txt | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt