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

Rob Herring
2024-09-13T21:55:22Z

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
>