[PATCH v4 05/27] dt-bindings: mfd: add maxim,max77705

Dzmitry Sankouski posted 27 patches 2 months, 2 weeks ago
There is a newer version of this series
[PATCH v4 05/27] dt-bindings: mfd: add maxim,max77705
Posted by Dzmitry Sankouski 2 months, 2 weeks ago
Add maxim,max77705 core binding part.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>

---
Changes in v4:
- change dts example intendation from tabs
 to spaces
- remove interrupt-names property
- remove obvious reg description
- split long(>80) lines
---
 .../devicetree/bindings/mfd/maxim,max77705.yaml    | 169 +++++++++++++++++++++
 MAINTAINERS                                        |   1 +
 2 files changed, 170 insertions(+)

diff --git a/Documentation/devicetree/bindings/mfd/maxim,max77705.yaml b/Documentation/devicetree/bindings/mfd/maxim,max77705.yaml
new file mode 100644
index 000000000000..40a67d15e312
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/maxim,max77705.yaml
@@ -0,0 +1,169 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/maxim,max77705.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX77705 Companion Power Management IC and USB Type-C interface IC
+
+maintainers:
+  - Dzmitry Sankouski <dsankouski@gmail.com>
+
+description: |
+  This is a part of device tree bindings for Maxim MAX77705 multi functional
+  device.
+
+  The Maxim MAX77705 is a Companion Power Management and Type-C
+  interface IC which includes charger, fuelgauge, LED, haptic motor driver and
+  Type-C management IC.
+
+properties:
+  compatible:
+    const: maxim,max77705
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  charger:
+    $ref: /schemas/power/supply/power-supply.yaml
+    additionalProperties: true
+    properties:
+      compatible:
+        const: maxim,max77705-charger
+
+    required:
+      - compatible
+      - monitored-battery
+
+  fuel_gauge:
+    $ref: /schemas/power/supply/power-supply.yaml
+    type: object
+    additionalProperties: true
+    description: MAX77705 fuel gauge with ModelGauge m5 EZ algorithm support.
+    properties:
+      compatible:
+        const: maxim,max77705-fuel-gauge
+
+      shunt-resistor-micro-ohms:
+        description: |
+          The value of current sense resistor in microohms.
+
+    required:
+      - compatible
+      - shunt-resistor-micro-ohms
+      - monitored-battery
+      - power-supplies
+
+  haptic:
+    type: object
+    additionalProperties: false
+    properties:
+      compatible:
+        const: maxim,max77705-haptic
+
+      haptic-supply: true
+
+      pwms:
+        maxItems: 1
+
+    required:
+      - compatible
+      - haptic-supply
+      - pwms
+
+  leds:
+    type: object
+    additionalProperties: false
+    description:
+      Up to 4 LEDs supported. One LED is represented by one child node.
+    properties:
+      compatible:
+        const: maxim,max77705-led
+
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    patternProperties:
+      "^led@[0-3]$":
+        type: object
+        $ref: /schemas/leds/common.yaml#
+        properties:
+          reg:
+            description:
+              LED index.
+        unevaluatedProperties: false
+        required:
+          - reg
+
+    required:
+      - compatible
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pmic@66 {
+            compatible = "maxim,max77705";
+            reg = <0x66>;
+            interrupt-parent = <&pm8998_gpios>;
+            interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+            pinctrl-0 = <&chg_int_default>;
+            pinctrl-names = "default";
+
+            leds {
+                compatible = "maxim,max77705-led";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                led@1 {
+                    reg = <1>;
+                    label = "red:usr1";
+                };
+
+                led@2 {
+                    reg = <2>;
+                    label = "green:usr2";
+                };
+
+                led@3 {
+                    reg = <3>;
+                    label = "blue:usr3";
+                };
+            };
+
+            max77705_charger: charger {
+                compatible = "maxim,max77705-charger";
+                monitored-battery = <&battery>;
+            };
+
+            fuel_gauge {
+                compatible = "maxim,max77705-fuel-gauge";
+                monitored-battery = <&battery>;
+                power-supplies = <&max77705_charger>;
+                rsense = <5>;
+            };
+
+
+            haptic {
+                compatible = "maxim,max77705-haptic";
+                haptic-supply = <&vib_regulator>;
+                pwms = <&vib_pwm 0 50000>;
+            };
+        };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index b65cfa1d322d..59d027591e34 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14064,6 +14064,7 @@ B:	mailto:linux-samsung-soc@vger.kernel.org
 F:	Documentation/devicetree/bindings/*/maxim,max14577.yaml
 F:	Documentation/devicetree/bindings/*/maxim,max77686.yaml
 F:	Documentation/devicetree/bindings/*/maxim,max77693.yaml
+F:	Documentation/devicetree/bindings/*/maxim,max77705*.yaml
 F:	Documentation/devicetree/bindings/*/maxim,max77843.yaml
 F:	Documentation/devicetree/bindings/clock/maxim,max77686.txt
 F:	drivers/*/*max77843.c

-- 
2.39.2
Re: [PATCH v4 05/27] dt-bindings: mfd: add maxim,max77705
Posted by Rob Herring 2 months, 2 weeks ago
On Fri, Sep 13, 2024 at 06:07:48PM +0300, Dzmitry Sankouski wrote:
> Add maxim,max77705 core binding part.
> 
> Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
> 
> ---
> Changes in v4:
> - change dts example intendation from tabs
>  to spaces
> - remove interrupt-names property
> - remove obvious reg description
> - split long(>80) lines
> ---
>  .../devicetree/bindings/mfd/maxim,max77705.yaml    | 169 +++++++++++++++++++++
>  MAINTAINERS                                        |   1 +
>  2 files changed, 170 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/mfd/maxim,max77705.yaml b/Documentation/devicetree/bindings/mfd/maxim,max77705.yaml
> new file mode 100644
> index 000000000000..40a67d15e312
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/maxim,max77705.yaml
> @@ -0,0 +1,169 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/maxim,max77705.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Maxim MAX77705 Companion Power Management IC and USB Type-C interface IC
> +
> +maintainers:
> +  - Dzmitry Sankouski <dsankouski@gmail.com>
> +
> +description: |
> +  This is a part of device tree bindings for Maxim MAX77705 multi functional
> +  device.
> +
> +  The Maxim MAX77705 is a Companion Power Management and Type-C
> +  interface IC which includes charger, fuelgauge, LED, haptic motor driver and
> +  Type-C management IC.
> +
> +properties:
> +  compatible:
> +    const: maxim,max77705
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  charger:
> +    $ref: /schemas/power/supply/power-supply.yaml
> +    additionalProperties: true

No, true is only valid for incomplete schemas (i.e. common ones included 
by another complete schema).

And since you reference another schema, you want 'unevaluatedProperties' 
instead if you want to use any properties defined in power-supply.yaml.

> +    properties:
> +      compatible:
> +        const: maxim,max77705-charger
> +
> +    required:
> +      - compatible
> +      - monitored-battery
> +
> +  fuel_gauge:

fuel-gauge

> +    $ref: /schemas/power/supply/power-supply.yaml
> +    type: object
> +    additionalProperties: true
> +    description: MAX77705 fuel gauge with ModelGauge m5 EZ algorithm support.

blank line

> +    properties:
> +      compatible:
> +        const: maxim,max77705-fuel-gauge
> +
> +      shunt-resistor-micro-ohms:
> +        description: |

Don't need '|'.

> +          The value of current sense resistor in microohms.
> +
> +    required:
> +      - compatible
> +      - shunt-resistor-micro-ohms
> +      - monitored-battery
> +      - power-supplies
> +
> +  haptic:
> +    type: object
> +    additionalProperties: false

blank line

> +    properties:
> +      compatible:
> +        const: maxim,max77705-haptic
> +
> +      haptic-supply: true
> +
> +      pwms:
> +        maxItems: 1
> +
> +    required:
> +      - compatible
> +      - haptic-supply
> +      - pwms
> +
> +  leds:
> +    type: object
> +    additionalProperties: false
> +    description:
> +      Up to 4 LEDs supported. One LED is represented by one child node.

blank line

> +    properties:
> +      compatible:
> +        const: maxim,max77705-led
> +
> +      "#address-cells":
> +        const: 1
> +
> +      "#size-cells":
> +        const: 0
> +
> +    patternProperties:
> +      "^led@[0-3]$":
> +        type: object
> +        $ref: /schemas/leds/common.yaml#

blank line

> +        properties:
> +          reg:
> +            description:
> +              LED index.

blank line

> +        unevaluatedProperties: false

blank line

> +        required:
> +          - reg
> +
> +    required:
> +      - compatible
> +
> +required:
> +  - compatible
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    #include <dt-bindings/leds/common.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        pmic@66 {
> +            compatible = "maxim,max77705";
> +            reg = <0x66>;
> +            interrupt-parent = <&pm8998_gpios>;
> +            interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
> +            pinctrl-0 = <&chg_int_default>;
> +            pinctrl-names = "default";
> +
> +            leds {
> +                compatible = "maxim,max77705-led";
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +
> +                led@1 {
> +                    reg = <1>;
> +                    label = "red:usr1";
> +                };
> +
> +                led@2 {
> +                    reg = <2>;
> +                    label = "green:usr2";
> +                };
> +
> +                led@3 {
> +                    reg = <3>;
> +                    label = "blue:usr3";
> +                };
> +            };
> +
> +            max77705_charger: charger {
> +                compatible = "maxim,max77705-charger";
> +                monitored-battery = <&battery>;
> +            };
> +
> +            fuel_gauge {
> +                compatible = "maxim,max77705-fuel-gauge";
> +                monitored-battery = <&battery>;
> +                power-supplies = <&max77705_charger>;
> +                rsense = <5>;

Not documented.

> +            };
> +
> +
> +            haptic {
> +                compatible = "maxim,max77705-haptic";
> +                haptic-supply = <&vib_regulator>;
> +                pwms = <&vib_pwm 0 50000>;
> +            };
> +        };
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index b65cfa1d322d..59d027591e34 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -14064,6 +14064,7 @@ B:	mailto:linux-samsung-soc@vger.kernel.org
>  F:	Documentation/devicetree/bindings/*/maxim,max14577.yaml
>  F:	Documentation/devicetree/bindings/*/maxim,max77686.yaml
>  F:	Documentation/devicetree/bindings/*/maxim,max77693.yaml
> +F:	Documentation/devicetree/bindings/*/maxim,max77705*.yaml
>  F:	Documentation/devicetree/bindings/*/maxim,max77843.yaml
>  F:	Documentation/devicetree/bindings/clock/maxim,max77686.txt
>  F:	drivers/*/*max77843.c
> 
> -- 
> 2.39.2
>
Re: [PATCH v4 05/27] dt-bindings: mfd: add maxim,max77705
Posted by Rob Herring (Arm) 2 months, 2 weeks ago
On Fri, 13 Sep 2024 18:07:48 +0300, Dzmitry Sankouski wrote:
> Add maxim,max77705 core binding part.
> 
> Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
> 
> ---
> Changes in v4:
> - change dts example intendation from tabs
>  to spaces
> - remove interrupt-names property
> - remove obvious reg description
> - split long(>80) lines
> ---
>  .../devicetree/bindings/mfd/maxim,max77705.yaml    | 169 +++++++++++++++++++++
>  MAINTAINERS                                        |   1 +
>  2 files changed, 170 insertions(+)
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/maxim,max77705.example.dtb: pmic@66: fuel_gauge: 'shunt-resistor-micro-ohms' is a required property
	from schema $id: http://devicetree.org/schemas/mfd/maxim,max77705.yaml#

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240913-starqltechn_integration_upstream-v4-5-2d2efd5c5877@gmail.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.