Re: [RFC PATCH v2 02/13] dt-bindings: mfd: Document ROHM BD71828 bindings

From: Vaittinen, Matti
Date: Fri Oct 25 2019 - 01:49:31 EST


Hello Dan,

Thanks again for checking this :)

On Thu, 2019-10-24 at 14:35 -0500, Dan Murphy wrote:
> Matti
>
> On 10/24/19 6:41 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
> > and a 32.768 kHz clock gate.
> >
> > Document the dt bindings drivers are using.
> >
> > Signed-off-by: Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx>
> > ---
> >
> > No changes since v1
> >
> > .../bindings/mfd/rohm,bd71828-pmic.txt | 180
> > ++++++++++++++++++
> > 1 file changed, 180 insertions(+)
> > create mode 100644
> > Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.txt
>
> I will let maintainers weigh in here but if this is new this should
> probably be in the yaml format to avoid conversion in the future

Oh... This is new to me. I guess there are reasons for this - but I
must say I am not excited as I have never used yaml for anything. I'll
do as you suggest and wait for what others have to say :) Thanks for
pointing this out though.

> > 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

> The rohm,bd71828-regulator.txt should be yaml if the maintainers want
> it
> that way.

Let's see if this should be changed then :)

> > +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:
> > +
>
> This example does not look right.
>
> I see that I2C is referenced above so the example could look like
> this
>
> osc: oscillator {
> compatible = "fixed-clock";
> #clock-cells = <1>;
> clock-frequency = <32768>;
> clock-output-names = "osc";
> };
>
> This is an external oscillator and is not really part of the pmic
> itself. I am not sure you even need to define that since it is not
> part
> of the pmic.

I think you are correct. I'll drop this oscillator for next patch.

>
> i2c {
>
> pmic@4b {
>
> [...]
>
> };
>
> };

I don't think the I2C node is needed in example. It is not part of the
PMIC - and I don't see the containing bus in other examples I just
opened. (the two other rohm,xxx PMIC docs - well, biased as I wrote
them), da9150.txt, lp3943.txt, max77686.txt, tps6507x.txt, tps65910.txt
...

Br,
Matti Vaittinen