dt-bindings: mfd: Convert rn5t618 to json-schema
Subsystems (2)
PATCH 1/1 dt-bindings: mfd: Convert rn5t618 to json-schema
Convert the RN5T618 binding to DT schema format. Also clearly state which regulators are available.
---
I have noted myself here as maintainer because I wrote most of the code of the several subdevices, although not of the .txt-binding. Due to its .txt-format history BSD license was not added. I happily ignored the "does MAINTAINERS need updating" thing from checkpatch.pl, I do not know whether that PMIC should have a separate entry there.
.../bindings/mfd/ricoh,rn5t618.yaml | 113 ++++++++++++++++++ .../devicetree/bindings/mfd/rn5t618.txt | 52 -------- 2 files changed, 113 insertions(+), 52 deletions(-) create mode 100644 Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml delete mode 100644 Documentation/devicetree/bindings/mfd/rn5t618.txt
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +113 -0
@@ -0,0 +1,113 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/ricoh,rn5t618.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Ricoh RN5T567/RN5T618/RC5T619 PMIC + +maintainers: + - Andreas Kemnade <[email protected]> + +description: | + Ricoh RN5T567/RN5T618/RC5T619 is a power management IC family which + integrates 3 to 5 step-down DCDC converters, 7 to 10 low-dropout regulators, + GPIOs, and a watchdog timer. It can be controlled through an I2C interface. + The RN5T618/RC5T619 provides additionally a Li-ion battery charger, + fuel gauge, and an ADC. + The RC5T619 additionnally includes USB charger detection and an RTC. + +allOf: + - if: + properties: + compatible: + contains: + const: ricoh,rn5t567 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + - if: + properties: + compatible: + contains: + const: ricoh,rn5t618 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + - if: + properties: + compatible: + contains: + const: ricoh,rc5t619 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + +properties: + compatible: + enum: + - ricoh,rn5t567 + - ricoh,rn5t618 + - ricoh,rc5t619 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + description: | + See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt + + system-power-controller: + type: boolean + description: | + See Documentation/devicetree/bindings/power/power-controller.txt + + regulators: + type: object + +additionalProperties: false + +required: + - compatible + - reg + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + i2c { + #address-cells = <1>; + #size-cells = <0>; + + pmic@32 { + compatible = "ricoh,rn5t618"; + reg = <0x32>; + interrupt-parent = <&gpio5>; + interrupts = <11 IRQ_TYPE_EDGE_FALLING>; + system-power-controller; + + regulators { + DCDC1 { + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + }; + + DCDC2 { + regulator-min-microvolt = <1175000>; + regulator-max-microvolt = <1175000>; + }; + }; + }; + };
Documentation/devicetree/bindings/mfd/rn5t618.txt deleted +0 -52
52 lines not on this page · raw message
Signature · 1 line
2.20.1
Rob Herring
maintainerQuoted 70 lines · Andreas Kemnade
Convert the RN5T618 binding to DT schema format. Also clearly state which regulators are available.
Signed-off-by Andreas Kemnade <[email protected]>---
I have noted myself here as maintainer because I wrote most of the code of the several subdevices, although not of the .txt-binding. Due to its .txt-format history BSD license was not added. I happily ignored the "doesMAINTAINERSneed updating" thing from checkpatch.pl, I do not know whether that PMIC should have a separate entry there..../bindings/mfd/ricoh,rn5t618.yaml | 113 ++++++++++++++++++ .../devicetree/bindings/mfd/rn5t618.txt | 52 -------- 2 files changed, 113 insertions(+), 52 deletions(-) create mode 100644 Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml delete mode 100644 Documentation/devicetree/bindings/mfd/rn5t618.txtDocumentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +46
-0@@ -0,0 +1,113 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/ricoh,rn5t618.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Ricoh RN5T567/RN5T618/RC5T619 PMIC + +maintainers: + - Andreas Kemnade <[email protected]> + +description: | + Ricoh RN5T567/RN5T618/RC5T619 is a power management IC family which + integrates 3 to 5 step-down DCDC converters, 7 to 10 low-dropout regulators, + GPIOs, and a watchdog timer. It can be controlled through an I2C interface. + The RN5T618/RC5T619 provides additionally a Li-ion battery charger, + fuel gauge, and an ADC. + The RC5T619 additionnally includes USB charger detection and an RTC. + +allOf: + - if: + properties: + compatible: + contains: + const: ricoh,rn5t567 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + - if: + properties: + compatible: + contains: + const: ricoh,rn5t618 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + - if: + properties:
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml line 56
Quoted 10 lines
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +10
-0+ compatible: + contains: + const: ricoh,rc5t619 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false
I prefer under 'regulators' below, you have all possible regulator names:
patternProperties:
"^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$":
$ref: ../regulator/regulator.yaml
and then above you just need to restrict the possible names:
regulators:
propertyNames:
pattern: "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$"
(propertyNames schema is applied to all an object's properties and you don't need additionalProperties here.)
Quoted 4 lines
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +4
-0+properties: + compatible: + enum: + - ricoh,rn5t567
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml line 71
Quoted 10 lines
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +10
-0+ - ricoh,rn5t618 + - ricoh,rc5t619 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + description: | + See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
Drop the description.
Quoted 103 lines
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +42
-0+ + system-power-controller: + type: boolean + description: | + See Documentation/devicetree/bindings/power/power-controller.txt + + regulators: + type: object + +additionalProperties: false + +required: + - compatible + - reg + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + i2c { + #address-cells = <1>; + #size-cells = <0>; + + pmic@32 { + compatible = "ricoh,rn5t618"; + reg = <0x32>; + interrupt-parent = <&gpio5>; + interrupts = <11 IRQ_TYPE_EDGE_FALLING>; + system-power-controller; + + regulators { + DCDC1 { + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + }; + + DCDC2 { + regulator-min-microvolt = <1175000>; + regulator-max-microvolt = <1175000>; + }; + }; + }; + };Documentation/devicetree/bindings/mfd/rn5t618.txt deleted +0
-52@@ -1,52 +0,0 @@ -* Ricoh RN5T567/RN5T618 PMIC - -Ricoh RN5T567/RN5T618/RC5T619 is a power management IC family which -integrates 3 to 5 step-down DCDC converters, 7 to 10 low-dropout regulators, -GPIOs, and a watchdog timer. It can be controlled through an I2C interface. -The RN5T618/RC5T619 provides additionally a Li-ion battery charger, -fuel gauge, and an ADC. -The RC5T619 additionnally includes USB charger detection and an RTC. - -Required properties: - - compatible: must be one of - "ricoh,rn5t567" - "ricoh,rn5t618" - "ricoh,rc5t619" - - reg: the I2C slave address of the device - -Optional properties: - - interrupts: interrupt mapping for IRQ - See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt - - system-power-controller: - See Documentation/devicetree/bindings/power/power-controller.txt - -Sub-nodes: - - regulators: the node is required if the regulator functionality is - needed. The valid regulator names are: DCDC1, DCDC2, DCDC3, DCDC4 - (RN5T567/RC5T619), LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7, LDO8, - LDO9, LDO10, LDORTC1 and LDORTC2. - LDO7-10 are specific to RC5T619. - The common bindings for each individual regulator can be found in: - Documentation/devicetree/bindings/regulator/regulator.txt - -Example: - - pmic@32 { - compatible = "ricoh,rn5t618"; - reg = <0x32>; - interrupt-parent = <&gpio5>; - interrupts = <11 IRQ_TYPE_EDGE_FALLING>; - system-power-controller; - - regulators { - DCDC1 { - regulator-min-microvolt = <1050000>; - regulator-max-microvolt = <1050000>; - }; - - DCDC2 { - regulator-min-microvolt = <1175000>; - regulator-max-microvolt = <1175000>; - }; - }; - };Signature · 1 line
2.20.1
Quoted 89 lines · On Tue, 15 Sep 2020 11:11:52 -0600 Rob Herring <[email protected]> wrote:
Quoted 70 lines · Andreas Kemnade
Convert the RN5T618 binding to DT schema format. Also clearly state which regulators are available.
Signed-off-by Andreas Kemnade <[email protected]>---
I have noted myself here as maintainer because I wrote most of the code of the several subdevices, although not of the .txt-binding. Due to its .txt-format history BSD license was not added. I happily ignored the "doesMAINTAINERSneed updating" thing from checkpatch.pl, I do not know whether that PMIC should have a separate entry there..../bindings/mfd/ricoh,rn5t618.yaml | 113 ++++++++++++++++++ .../devicetree/bindings/mfd/rn5t618.txt | 52 -------- 2 files changed, 113 insertions(+), 52 deletions(-) create mode 100644 Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml delete mode 100644 Documentation/devicetree/bindings/mfd/rn5t618.txtDocumentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +46
-0@@ -0,0 +1,113 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/ricoh,rn5t618.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Ricoh RN5T567/RN5T618/RC5T619 PMIC + +maintainers: + - Andreas Kemnade <[email protected]> + +description: | + Ricoh RN5T567/RN5T618/RC5T619 is a power management IC family which + integrates 3 to 5 step-down DCDC converters, 7 to 10 low-dropout regulators, + GPIOs, and a watchdog timer. It can be controlled through an I2C interface. + The RN5T618/RC5T619 provides additionally a Li-ion battery charger, + fuel gauge, and an ADC. + The RC5T619 additionnally includes USB charger detection and an RTC. + +allOf: + - if: + properties: + compatible: + contains: + const: ricoh,rn5t567 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + - if: + properties: + compatible: + contains: + const: ricoh,rn5t618 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + - if: + properties:Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml line 56
Quoted 10 lines
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +10
-0+ compatible: + contains: + const: ricoh,rc5t619 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: falseI prefer under 'regulators' below, you have all possible regulator names:
patternProperties:
"^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$":
$ref:../regulator/regulator.yaml
Quoted 9 lines
and then above you just need to restrict the possible names:
regulators:
propertyNames:pattern: "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$"(propertyNames schema is applied to all an object's properties and you don't need additionalProperties here.)
hmm, dt_binding_check refuses to digest things like this:
allOf:
- if:
properties:
compatible:
contains:
const: ricoh,rn5t567
then:
properties:
regulators:
propertyNames:
pattern: "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$"I get:
andi@aktux:~/kernel$ DT_SCHEMA_FILES=Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml makearm dt_binding_check
CHKDT Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml
/home/andi/kernel/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml: allOf:0:then:properties:regulators: Additional properties are not allowed ('propertyNames' was unexpected)
/home/andi/kernel/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml: allOf:0:then:properties:regulators: 'propertyNames' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'type', 'typeSize', 'unevaluatedProperties', 'uniqueItems']andi@aktux:~/kernel/Documentation$ grep -R propertyNames * devicetree/bindings/mfd/ricoh,rn5t618.yaml: propertyNames: devicetree/bindings/mfd/ricoh,rn5t618.yaml: propertyNames: devicetree/bindings/mfd/ricoh,rn5t618.yaml: propertyNames:
... and I am the only user, it is not documented.
and yes I have updated my tools
andi@aktux:~/kernel$ dt-validate --version 2020.8.1
Regards,
Andreas
Rob Herring
maintainerQuoted 95 lines · Andreas Kemnade
Quoted 91 lines · On Tue, 15 Sep 2020 11:11:52 -0600 Rob Herring <[email protected]> wrote:
Quoted 70 lines · Andreas Kemnade
Convert the RN5T618 binding to DT schema format. Also clearly state which regulators are available.
Signed-off-by Andreas Kemnade <[email protected]>---
I have noted myself here as maintainer because I wrote most of the code of the several subdevices, although not of the .txt-binding. Due to its .txt-format history BSD license was not added. I happily ignored the "doesMAINTAINERSneed updating" thing from checkpatch.pl, I do not know whether that PMIC should have a separate entry there..../bindings/mfd/ricoh,rn5t618.yaml | 113 ++++++++++++++++++ .../devicetree/bindings/mfd/rn5t618.txt | 52 -------- 2 files changed, 113 insertions(+), 52 deletions(-) create mode 100644 Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml delete mode 100644 Documentation/devicetree/bindings/mfd/rn5t618.txtDocumentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +46
-0@@ -0,0 +1,113 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/ricoh,rn5t618.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Ricoh RN5T567/RN5T618/RC5T619 PMIC + +maintainers: + - Andreas Kemnade <[email protected]> + +description: | + Ricoh RN5T567/RN5T618/RC5T619 is a power management IC family which + integrates 3 to 5 step-down DCDC converters, 7 to 10 low-dropout regulators, + GPIOs, and a watchdog timer. It can be controlled through an I2C interface. + The RN5T618/RC5T619 provides additionally a Li-ion battery charger, + fuel gauge, and an ADC. + The RC5T619 additionnally includes USB charger detection and an RTC. + +allOf: + - if: + properties: + compatible: + contains: + const: ricoh,rn5t567 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + - if: + properties: + compatible: + contains: + const: ricoh,rn5t618 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: false + - if: + properties:Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml line 56
Quoted 10 lines
Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml new file +10
-0+ compatible: + contains: + const: ricoh,rc5t619 + then: + properties: + regulators: + patternProperties: + "^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$": + $ref: ../regulator/regulator.yaml + additionalProperties: falseI prefer under 'regulators' below, you have all possible regulator names:
patternProperties:
"^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$":
$ref:../regulator/regulator.yamland then above you just need to restrict the possible names:
Quoted 8 lines
Quoted 7 lines
regulators:
propertyNames:pattern: "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$"(propertyNames schema is applied to all an object's properties and you don't need additionalProperties here.)
hmm,
dt_binding_checkrefuses to digest things like this:
That's the overly restrictive meta-schema trying to keep folks in the lane. Sorry, I should have checked that first.
Quoted 11 lines
allOf:
- if:properties: compatible: contains: const: ricoh,rn5t567 then: properties: regulators: propertyNames: pattern: "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$"
So just stick with the form you had:
patternProperties:
"^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$": true
additionalProperties: false
Rob