All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Cc: mazziesaccount@gmail.com, Lee Jones <lee.jones@linaro.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] dt-bindings: bd718x7: Yamlify and add BD71850
Date: Thu, 26 Dec 2019 15:16:54 -0700	[thread overview]
Message-ID: <20191226221654.GA30474@bogus> (raw)
In-Reply-To: <20191217084824.GA26539@localhost.localdomain>

On Tue, Dec 17, 2019 at 10:48:24AM +0200, Matti Vaittinen wrote:
> Convert ROHM bd71837 and bd71847 PMIC binding text docs to yaml. Split
> the binding document to two separate documents (own for BD71837 and BD71847)
> as they have different amount of regulators. This way we can better enforce
> the node name check for regulators. ROHM is also providing BD71850 - which
> is almost identical to BD71847 - main difference is some initial regulator
> states. The BD71850 can be driven by same driver and it has same buck/LDO
> setup as BD71847 - add it to BD71847 binding document and introduce
> compatible for it.
> 
> Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> ---
> 
> Oh dear how bad I am with yaml...

Looks pretty good overall.

I hope 'yamlify' doesn't catch on. :)


> 
> Lee, I think the support series for BD71828 included some changes
> to drivers/mfd/rohm-bd718x7.c - I will add BD71850 compatible to next
> version of that series in order to avoid conflicts. Does that work
> for you?
> 
>  .../bindings/mfd/rohm,bd71837-pmic.txt        |  90 --------
>  .../bindings/mfd/rohm,bd71837-pmic.yaml       | 198 ++++++++++++++++++
>  .../bindings/mfd/rohm,bd71847-pmic.yaml       | 181 ++++++++++++++++
>  .../regulator/rohm,bd71837-regulator.txt      | 162 --------------
>  .../regulator/rohm,bd71837-regulator.yaml     | 103 +++++++++
>  .../regulator/rohm,bd71847-regulator.yaml     |  97 +++++++++
>  6 files changed, 579 insertions(+), 252 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt
>  create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
>  create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
>  delete mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.txt
>  create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.yaml
>  create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71847-regulator.yaml


> diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
> new file mode 100644
> index 000000000000..3a6d408aebbd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
> @@ -0,0 +1,198 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ROHM BD71837 Power Management Integrated Circuit bindings
> +
> +maintainers:
> +  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> +
> +description: |
> +  BD71837MWV is programmable Power Management ICs for powering single-core,
> +  dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for low
> +  BOM cost and compact solution footprint. BD71837MWV  integrates 8 Buck
> +  regulators and 7 LDOs.
> +  Datasheet for BD71837 is available at
> +  https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71837amwv-product
> +
> +properties:
> +  compatible:
> +    const: rohm,bd71837
> +
> +  reg:
> +    description:
> +      I2C slave address.
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +  "#clock-cells":
> +    const: 0
> +
> +# The BD718x7 supports two different HW states as reset target states. States
> +# are called as SNVS and READY. At READY state all the PMIC power outputs go
> +# down and OTP is reload. At the SNVS state all other logic and external
> +# devices apart from the SNVS power domain are shut off. Please refer to NXP
> +# i.MX8 documentation for further information regarding SNVS state. When a
> +# reset is done via SNVS state the PMIC OTP data is not reload. This causes
> +# power outputs that have been under SW control to stay down when reset has
> +# switched power state to SNVS. If reset is done via READY state the power
> +# outputs will be returned to HW control by OTP loading. Thus the reset
> +# target state is set to READY by default. If SNVS state is used the boot
> +# crucial regulators must have the regulator-always-on and regulator-boot-on
> +# properties set in regulator node.
> +
> +  rohm,reset-snvs-powered:
> +    description: |
> +      Transfer PMIC to SNVS state at reset
> +    type: boolean
> +
> +# Configure the "short press" and "long press" timers for the power button.
> +# Values are rounded to what hardware supports (500ms multiple for short and
> +# 1000ms multiple for long). If these properties are not present the existing
> +# configuration (from bootloader or OTP) is not touched.

You can use 'multipleOf' keyword below for some constraints.

Same for the other file.

> +
> +  rohm,short-press-ms:
> +    description:
> +      Short press duration in milliseconds
> +
> +  rohm,long-press-ms:
> +    description:
> +      Long press duration in milliseconds
> +
> +  regulators:
> +    $ref: ../regulator/rohm,bd71837-regulator.yaml
> +    description:
> +      List of child nodes that specify the regulators.
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks
> +  - "#clock-cells"
> +  - regulators

additionalProperties: false

> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    #include <dt-bindings/leds/common.h>
> +    #
> +
> +    i2c {
> +      pmic: pmic@4b {
> +            compatible = "rohm,bd71837";
> +            reg = <0x4b>;
> +            interrupt-parent = <&gpio1>;
> +            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
> +            #clock-cells = <0>;
> +            clocks = <&osc 0>;
> +            clock-output-names = "bd71837-32k-out";

Not documented.

> +            rohm,reset-snvs-powered;
> +
> +            regulators {
> +                buck1: BUCK1 {
> +                    regulator-name = "buck1";
> +                    regulator-min-microvolt = <700000>;
> +                    regulator-max-microvolt = <1300000>;
> +                    regulator-boot-on;
> +                    regulator-always-on;
> +                    regulator-ramp-delay = <1250>;
> +                    rohm,dvs-run-voltage = <900000>;
> +                    rohm,dvs-idle-voltage = <850000>;
> +                    rohm,dvs-suspend-voltage = <800000>;
> +                };
> +                buck2: BUCK2 {
> +                    regulator-name = "buck2";
> +                    regulator-min-microvolt = <700000>;
> +                    regulator-max-microvolt = <1300000>;
> +                    regulator-boot-on;
> +                    regulator-always-on;
> +                    regulator-ramp-delay = <1250>;
> +                    rohm,dvs-run-voltage = <1000000>;
> +                    rohm,dvs-idle-voltage = <900000>;
> +                };
> +                buck3: BUCK3 {
> +                    regulator-name = "buck3";
> +                    regulator-min-microvolt = <700000>;
> +                    regulator-max-microvolt = <1300000>;
> +                    regulator-boot-on;
> +                    rohm,dvs-run-voltage = <1000000>;
> +                };
> +                buck4: BUCK4 {
> +                    regulator-name = "buck4";
> +                    regulator-min-microvolt = <700000>;
> +                    regulator-max-microvolt = <1300000>;
> +                    regulator-boot-on;
> +                    rohm,dvs-run-voltage = <1000000>;
> +                };
> +                buck5: BUCK5 {
> +                    regulator-name = "buck5";
> +                    regulator-min-microvolt = <700000>;
> +                    regulator-max-microvolt = <1350000>;
> +                    regulator-boot-on;
> +                };
> +                buck6: BUCK6 {
> +                    regulator-name = "buck6";
> +                    regulator-min-microvolt = <3000000>;
> +                    regulator-max-microvolt = <3300000>;
> +                    regulator-boot-on;
> +                };
> +                buck7: BUCK7 {
> +                    regulator-name = "buck7";
> +                    regulator-min-microvolt = <1605000>;
> +                    regulator-max-microvolt = <1995000>;
> +                    regulator-boot-on;
> +                };
> +                buck8: BUCK8 {
> +                    regulator-name = "buck8";
> +                    regulator-min-microvolt = <800000>;
> +                    regulator-max-microvolt = <1400000>;
> +                };
> +
> +                ldo1: LDO1 {
> +                    regulator-name = "ldo1";
> +                    regulator-min-microvolt = <3000000>;
> +                    regulator-max-microvolt = <3300000>;
> +                    regulator-boot-on;
> +                };
> +                ldo2: LDO2 {
> +                    regulator-name = "ldo2";
> +                    regulator-min-microvolt = <900000>;
> +                    regulator-max-microvolt = <900000>;
> +                    regulator-boot-on;
> +                };
> +                ldo3: LDO3 {
> +                    regulator-name = "ldo3";
> +                    regulator-min-microvolt = <1800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                };
> +                ldo4: LDO4 {
> +                    regulator-name = "ldo4";
> +                    regulator-min-microvolt = <900000>;
> +                    regulator-max-microvolt = <1800000>;
> +                };
> +                ldo5: LDO5 {
> +                    regulator-name = "ldo5";
> +                    regulator-min-microvolt = <1800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                };
> +                ldo6: LDO6 {
> +                    regulator-name = "ldo6";
> +                    regulator-min-microvolt = <900000>;
> +                    regulator-max-microvolt = <1800000>;
> +                };
> +                ldo7_reg: LDO7 {
> +                    regulator-name = "ldo7";
> +                    regulator-min-microvolt = <1800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                };
> +            };
> +        };
> +    };

  reply	other threads:[~2019-12-26 22:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-17  8:48 [PATCH] dt-bindings: bd718x7: Yamlify and add BD71850 Matti Vaittinen
2019-12-26 22:16 ` Rob Herring [this message]
2019-12-27  9:01   ` Vaittinen, Matti
2020-01-02  8:47   ` Lee Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191226221654.GA30474@bogus \
    --to=robh@kernel.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=matti.vaittinen@fi.rohmeurope.com \
    --cc=mazziesaccount@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.