Add device binding doc for PF0900 PMIC driver.
Signed-off-by: Joy Zou <joy.zou@nxp.com>
---
.../regulator/nxp,pf0900-regulator.yaml | 179 ++++++++++++++++++
1 file changed, 179 insertions(+)
create mode 100644 Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml
diff --git a/Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml b/Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml
new file mode 100644
index 000000000000..32e2ded92e2c
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml
@@ -0,0 +1,179 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/nxp,pf0900-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP PF0900 Power Management Integrated Circuit regulators
+
+maintainers:
+ - Joy Zou <joy.zou@nxp.com>
+
+description:
+ The PF0900 is a power management integrated circuit (PMIC) optimized
+ for high performance i.MX9x based applications. It features five high
+ efficiency buck converters, three linear and one vaon regulators. It
+ provides low quiescent current in Standby and low power off Modes.
+
+properties:
+ compatible:
+ enum:
+ - nxp,pf0900
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ regulators:
+ type: object
+
+ properties:
+ "VAON":
+ type: object
+ $ref: regulator.yaml#
+
+ unevaluatedProperties: false
+
+ patternProperties:
+ "^LDO[1-3]$":
+ type: object
+ $ref: regulator.yaml#
+ description:
+ Properties for single LDO regulator.
+
+ unevaluatedProperties: false
+
+ "^SW[1-5]$":
+ type: object
+ $ref: regulator.yaml#
+ description:
+ Properties for single SW regulator.
+
+ properties:
+ nxp,dvs-run-microvolt:
+ minimum: 300000
+ maximum: 1350000
+ description:
+ PMIC default "RUN" state voltage in uV. SW1~5 have such
+ dvs(dynamic voltage scaling) property.
+
+ nxp,dvs-standby-microvolt:
+ minimum: 300000
+ maximum: 1350000
+ description:
+ PMIC default "STANDBY" state voltage in uV. SW1~5 have such
+ dvs(dynamic voltage scaling) property.
+
+ unevaluatedProperties: false
+
+ additionalProperties: false
+
+ nxp,i2c-crc-enable:
+ type: boolean
+ description: If the PMIC OTP_I2C_CRC_EN is enable, you need to add this property.
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - regulators
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@8 {
+ compatible = "nxp,pf0900";
+ reg = <0x08>;
+ interrupt-parent = <&pcal6524>;
+ interrupts = <89 IRQ_TYPE_LEVEL_LOW>;
+ nxp,i2c-crc-enable;
+
+ regulators {
+ VAON {
+ regulator-name = "VAON";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ SW1 {
+ regulator-name = "SW1";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <1950>;
+ };
+
+ SW2 {
+ regulator-name = "SW2";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <1950>;
+ };
+
+ SW3 {
+ regulator-name = "SW3";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <1950>;
+ };
+
+ SW4 {
+ regulator-name = "SW4";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <1950>;
+ };
+
+ SW5 {
+ regulator-name = "SW5";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <1950>;
+ };
+
+ LDO1 {
+ regulator-name = "LDO1";
+ regulator-min-microvolt = <750000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO2 {
+ regulator-name = "LDO2";
+ regulator-min-microvolt = <650000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO3 {
+ regulator-name = "LDO3";
+ regulator-min-microvolt = <650000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ };
+ };
+ };
--
2.37.1
On Tue, Jun 17, 2025 at 06:20:24PM +0800, Joy Zou wrote: > Add device binding doc for PF0900 PMIC driver. > > Signed-off-by: Joy Zou <joy.zou@nxp.com> > --- > .../regulator/nxp,pf0900-regulator.yaml | 179 ++++++++++++++++++ Filename matching compatible. So drop '-regulator'. > 1 file changed, 179 insertions(+) > create mode 100644 Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml > > diff --git a/Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml b/Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml > new file mode 100644 > index 000000000000..32e2ded92e2c > --- /dev/null > +++ b/Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml > @@ -0,0 +1,179 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/regulator/nxp,pf0900-regulator.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: NXP PF0900 Power Management Integrated Circuit regulators > + > +maintainers: > + - Joy Zou <joy.zou@nxp.com> > + > +description: > + The PF0900 is a power management integrated circuit (PMIC) optimized > + for high performance i.MX9x based applications. It features five high > + efficiency buck converters, three linear and one vaon regulators. It > + provides low quiescent current in Standby and low power off Modes. > + > +properties: > + compatible: > + enum: > + - nxp,pf0900 > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + regulators: > + type: object > + > + properties: > + "VAON": Don't need quotes. > + type: object > + $ref: regulator.yaml# > + Drop blank line. > + unevaluatedProperties: false > + > + patternProperties: > + "^LDO[1-3]$": > + type: object > + $ref: regulator.yaml# > + description: > + Properties for single LDO regulator. > + > + unevaluatedProperties: false Move this after the $ref. > + > + "^SW[1-5]$": > + type: object > + $ref: regulator.yaml# > + description: > + Properties for single SW regulator. > + > + properties: > + nxp,dvs-run-microvolt: > + minimum: 300000 > + maximum: 1350000 > + description: > + PMIC default "RUN" state voltage in uV. SW1~5 have such > + dvs(dynamic voltage scaling) property. > + > + nxp,dvs-standby-microvolt: > + minimum: 300000 > + maximum: 1350000 > + description: > + PMIC default "STANDBY" state voltage in uV. SW1~5 have such > + dvs(dynamic voltage scaling) property. > + > + unevaluatedProperties: false > + > + additionalProperties: false Same with these. > + > + nxp,i2c-crc-enable: > + type: boolean > + description: If the PMIC OTP_I2C_CRC_EN is enable, you need to add this property. > + > +required: > + - compatible > + - reg > + - interrupts > + - regulators > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + pmic@8 { > + compatible = "nxp,pf0900"; > + reg = <0x08>; > + interrupt-parent = <&pcal6524>; > + interrupts = <89 IRQ_TYPE_LEVEL_LOW>; > + nxp,i2c-crc-enable; > + > + regulators { > + VAON { > + regulator-name = "VAON"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + SW1 { > + regulator-name = "SW1"; > + regulator-min-microvolt = <500000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1950>; > + }; > + > + SW2 { > + regulator-name = "SW2"; > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1950>; > + }; > + > + SW3 { > + regulator-name = "SW3"; > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1950>; > + }; > + > + SW4 { > + regulator-name = "SW4"; > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1950>; > + }; > + > + SW5 { > + regulator-name = "SW5"; > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + regulator-ramp-delay = <1950>; > + }; > + > + LDO1 { > + regulator-name = "LDO1"; > + regulator-min-microvolt = <750000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + LDO2 { > + regulator-name = "LDO2"; > + regulator-min-microvolt = <650000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + LDO3 { > + regulator-name = "LDO3"; > + regulator-min-microvolt = <650000>; > + regulator-max-microvolt = <3300000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + }; > + }; > + }; > -- > 2.37.1 >
On Tue, 17 Jun 2025 18:20:24 +0800, Joy Zou wrote: > Add device binding doc for PF0900 PMIC driver. > > Signed-off-by: Joy Zou <joy.zou@nxp.com> > --- > .../regulator/nxp,pf0900-regulator.yaml | 179 ++++++++++++++++++ > 1 file changed, 179 insertions(+) > create mode 100644 Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: ./Documentation/devicetree/bindings/regulator/nxp,pf0900-regulator.yaml:34:8: [warning] wrong indentation: expected 8 but found 7 (indentation) dtschema/dtc warnings/errors: doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250617102025.3455544-2-joy.zou@nxp.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Tue, Jun 17, 2025 at 06:20:24PM +0800, Joy Zou wrote: > + properties: > + nxp,dvs-run-microvolt: > + minimum: 300000 > + maximum: 1350000 > + description: > + PMIC default "RUN" state voltage in uV. SW1~5 have such > + dvs(dynamic voltage scaling) property. > + > + nxp,dvs-standby-microvolt: > + minimum: 300000 > + maximum: 1350000 > + description: > + PMIC default "STANDBY" state voltage in uV. SW1~5 have such > + dvs(dynamic voltage scaling) property. What are these states exactly - this feels like something that should be either a standard property or discovered at runtime?
© 2016 - 2025 Red Hat, Inc.