devicetree.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).