Re: [PATCH 1/2] dt-bindings: regulator: Add pf8x00 regulator

From: Rob Herring
Date: Wed Dec 09 2020 - 22:36:34 EST


On Sun, Dec 06, 2020 at 01:26:28AM +0100, Adrien Grassein wrote:
> Add dt-bindings for the pf8x00 driver.
>
> Signed-off-by: Adrien Grassein <adrien.grassein@xxxxxxxxx>
> ---
> .../regulator/nxp,pf8x00-regulator.yaml | 223 ++++++++++++++++++
> MAINTAINERS | 6 +
> 2 files changed, 229 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/regulator/nxp,pf8x00-regulator.yaml
>
> diff --git a/Documentation/devicetree/bindings/regulator/nxp,pf8x00-regulator.yaml b/Documentation/devicetree/bindings/regulator/nxp,pf8x00-regulator.yaml
> new file mode 100644
> index 000000000000..f4e4f545c5a3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/nxp,pf8x00-regulator.yaml
> @@ -0,0 +1,223 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/nxp,pf8x00-regulator.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NXP PF8x00 Power Management Integrated Circuit regulators
> +
> +maintainers:
> + - Adrien Grassein <adrien.grassein@xxxxxxxxx>
> +
> +description: |
> + pf8x00 are a 12-chanel regulator PMIC family. Regulators nodes should
> + be named to ldo<>, sw<> and vnss. The definition for each of these nodes
> + is defined using the standard binding for regulators at
> + Documentation/devicetree/bindings/regulator/regulator.txt.
> + Datasheet is available at https://www.nxp.com/docs/en/data-sheet/PF8100_PF8200.pdf
> +
> +properties:
> + compatible:
> + enum:
> + - nxp,pf8x00
> +
> + reg:
> + maxItems: 1
> +
> + regulators:
> + type: object
> + description: |

Don't need '|' if no formatting.

> + list of regulators provided by this controller
> +
> + patternProperties:
> + "^ldo[1-4]$":
> + type: object
> + $ref: regulator.yaml#
> + description: |
> + Properties for single LDO regulator.
> +
> + properties:
> + regulator-name:
> + pattern: "^ldo[1-4]$"
> + description: |
> + should be ldo1", ..., "ldo4"
> +
> + nxp,hw-en:
> + $ref: /schemas/types.yaml#definitions/flag
> + description: |
> + Only available for ldo2. Used to enable or disable ld02.
> +
> + nxp,vselect-en:
> + $ref: /schemas/types.yaml#definitions/flag
> + description: |
> + Only available for ldo2. When specified, use the VSELECT pin
> + of the chip to control the output voltage of the ldo02 regulator.
> +
> + unevaluatedProperties: false
> +
> + "^sw[1-7]$":
> + type: object
> + $ref: regulator.yaml#
> + description: |
> + Properties for single SW regulator.
> +
> + properties:
> + regulator-name:
> + pattern: "^sw[1-7]$"
> + description: |
> + should be sw1", ..., "sw7"
> +
> + nxp,ilim-ma:

Use unit suffix defined in property-units.txt.

> + $ref: /schemas/types.yaml#definitions/uint32
> + minimum: 2100
> + maximum: 4500
> + default: 2100
> + enum: [ 2100, 2600, 3000, 4500 ]
> + description: |
> + Defines the maximum current delivered by the regulator (in mA).
> +
> + nxp,phase:
> + $ref: /schemas/types.yaml#definitions/uint32
> + minimum: 0
> + maximum: 315
> + default: 0
> + enum: [ 0, 45, 90, 135, 180, 225, 270, 315 ]
> + description: |
> + This controls the phase shift of the switching frequency.
> +
> + nxp,fsl,fast-slew:

nxp or fsl?

> + $ref: /schemas/types.yaml#definitions/flag
> + description: |
> + Controls the DVS ramp of the regulator.
> +
> + nxp,quad-phase:
> + $ref: /schemas/types.yaml#definitions/flag
> + description: |
> + This allow regulators sw1 and sw2, or sw3 and sw4 or sw4 and sw5
> + to work together to deliver a maximum 10A current.
> +
> + nxp,dual-phase:
> + $ref: /schemas/types.yaml#definitions/flag
> + description: |
> + This allow regulators sw1, sw2, sw3 and sw4 to work together
> + to deliver a maximum 5A current.
> +
> + unevaluatedProperties: false
> +
> + "^vsnvs$":

Move to 'properties', not a pattern.

> + type: object
> + $ref: regulator.yaml#
> + description: |
> + Properties for vsnvs regulator.
> +
> + unevaluatedProperties: false
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - regulators
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + pmic: pf8100@8 {

pmic@8

> + compatible = "nxp,pf8x00";
> + reg = <0x08>;
> +
> + regulators {
> + reg_ldo1: ldo1 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <5000000>;
> + regulator-min-microvolt = <1500000>;
> + };
> +
> + reg_ldo2: ldo2 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <5000000>;
> + regulator-min-microvolt = <1500000>;
> + };
> +
> + reg_ldo3: ldo3 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <5000000>;
> + regulator-min-microvolt = <1500000>;
> + };
> +
> + reg_ldo4: ldo4 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <5000000>;
> + regulator-min-microvolt = <1500000>;
> + };
> +
> + reg_sw1: sw1 {
> + nxp,phase = <0>;
> + nxp,ilim-ma = <4500>;
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1800000>;
> + regulator-min-microvolt = <400000>;
> + };
> +
> + reg_sw2: sw2 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1800000>;
> + regulator-min-microvolt = <400000>;
> + };
> +
> + reg_sw3: sw3 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1800000>;
> + regulator-min-microvolt = <400000>;
> + nxp,fast-slew = <1>;
> + };
> +
> + reg_sw4: sw4 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1800000>;
> + regulator-min-microvolt = <400000>;
> + nxp,fast-slew = <1>;
> + };
> +
> + reg_sw5: sw5 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1800000>;
> + regulator-min-microvolt = <400000>;
> + };
> +
> + reg_sw6: sw6 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1800000>;
> + regulator-min-microvolt = <400000>;
> + };
> +
> + reg_sw7: sw7 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <4100000>;
> + regulator-min-microvolt = <1000000>;
> + };
> +
> + reg_vsnvs: vsnvs {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <3300000>;
> + regulator-min-microvolt = <1800000>;
> + };
> + };
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index ebe4829cdd4d..4e266f1e9a2f 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -13730,6 +13730,12 @@ S: Maintained
> F: include/linux/personality.h
> F: include/uapi/linux/personality.h
>
> +PF8x00 PMIC REGULATORS DRIVERS
> +M: Adrien Grassein <adrien.grassein@xxxxxxxxx>
> +L: linux-kernel@xxxxxxxxxxxxxxx
> +S: Maintained
> +F: Documentation/devicetree/bindings/regulator/nxp,pf8x00-regulator.yaml
> +
> PHOENIX RC FLIGHT CONTROLLER ADAPTER
> M: Marcus Folkesson <marcus.folkesson@xxxxxxxxx>
> L: linux-input@xxxxxxxxxxxxxxx
> --
> 2.20.1
>