[2/5] staging: dt-bindings: mfd: adi,max77541.yaml Add MAX77541 bindings
Commit Message
This patch adds document the bindings for MAX77541 MFD driver. It also
includes MAX77540 driver whose regmap is covered by MAX77541.
Signed-off-by: Okan Sahin <okan.sahin@analog.com>
---
.../devicetree/bindings/mfd/adi,max77541.yaml | 134 ++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 135 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/adi,max77541.yaml
Comments
On 07/12/2022 10:08, Okan Sahin wrote:
> This patch adds document the bindings for MAX77541 MFD driver. It also
Do not use "This commit/patch".
https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95
> includes MAX77540 driver whose regmap is covered by MAX77541.
>
> Signed-off-by: Okan Sahin <okan.sahin@analog.com>
> ---
> .../devicetree/bindings/mfd/adi,max77541.yaml | 134 ++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 135 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mfd/adi,max77541.yaml
>
> diff --git a/Documentation/devicetree/bindings/mfd/adi,max77541.yaml b/Documentation/devicetree/bindings/mfd/adi,max77541.yaml
> new file mode 100644
> index 000000000000..205953e6dd15
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/adi,max77541.yaml
> @@ -0,0 +1,134 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/adi,max77541.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MAX77540/MAX77541 PMIC from ADI.
Drop trailing space.
> +
> +maintainers:
> + - Okan Sahin <okan.sahin@analog.com>
> +
> +description: |
> + MAX77540 is a Power Management IC with 2 buck regulators.
> +
> + MAX77541 is a Power Management IC with 2 buck regulators and 1 ADC.
> +
> +properties:
> + compatible:
> + enum:
> + - adi,max77540
> + - adi,max77541
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + regulators:
> + $ref: /schemas/regulator/adi,max77541.yaml#
I don't think you tested this patch. There is no such file.
> +
> + adc:
> + type: object
> + additionalProperties: false
> + properties:
> + compatible:
> + const: adi,max77541-adc
Why having a child without any resources? It does not look like needed
and instead your parent driver should instantiate the child device.
> + required:
> + -compatible
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: adi,max77540
> + then:
> + properties:
> + regulator:
> + properties:
> + compatible:
> + const: adi,max77540-regulator
> + else:
> + properties:
> + regulator:
> + properties:
> + compatible:
> + const: adi,max77541-regulator
> + adc:
> + properties:
> + compatible:
> + const: adi,max77541-adc
The adc part is not needed anyway - duplicating what's in top-level
properties.
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmic@69 {
> + compatible = "adi,max77540";
> + reg = <0x69>;
> + interrupt-parent = <&gpio>;
> + interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
> +
> + regulators {
> + buck1 {
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <5200000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> + buck2 {
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <5200000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> + };
> + };
> + };
> +
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmic@69 {
> + compatible = "adi,max77541";
Keep only one example (more complex one) - they are almost the same.
> + reg = <0x63>;
> + interrupt-parent = <&gpio>;
> + interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
> +
> + regulators {
> + buck1 {
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <5200000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> + buck2 {
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <5200000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> + };
> +
> + adc {
> + compatible = "adi,max77541-adc";
> + }
> + };
> + };
> \ No newline at end of file
Error here.
> diff --git a/MAINTAINERS b/MAINTAINERS
> index af94d06bb9f0..22f5a9c490e3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12501,6 +12501,7 @@ MAXIM MAX77541 PMIC MFD DRIVER
> M: Okan Sahin <okan.sahin@analog.com>
> L: linux-kernel@vger.kernel.org
> S: Maintained
> +F: Documentation/devicetree/bindings/mfd/adi,max77541.yaml
> F: drivers/mfd/max77541.c
> F: include/linux/mfd/max77541.h
>
Best regards,
Krzysztof
On Wed, 07 Dec 2022 12:08:41 +0300, Okan Sahin wrote:
> This patch adds document the bindings for MAX77541 MFD driver. It also
> includes MAX77540 driver whose regmap is covered by MAX77541.
>
> Signed-off-by: Okan Sahin <okan.sahin@analog.com>
> ---
> .../devicetree/bindings/mfd/adi,max77541.yaml | 134 ++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 135 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mfd/adi,max77541.yaml
>
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
./Documentation/devicetree/bindings/mfd/adi,max77541.yaml:134:7: [error] no new line character at the end of file (new-line-at-end-of-file)
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/adi,max77541.yaml: properties:adc:required: '-compatible' is not of type 'array'
from schema $id: http://json-schema.org/draft-07/schema#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/adi,max77541.yaml: properties:adc:required: '-compatible' is not of type 'array'
from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
./Documentation/devicetree/bindings/mfd/adi,max77541.yaml: Unable to find schema file matching $id: http://devicetree.org/schemas/regulator/adi,max77541.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/adi,max77541.yaml: ignoring, error in schema: properties: adc: required
Error: Documentation/devicetree/bindings/mfd/adi,max77541.example.dts:99.13-14 syntax error
FATAL ERROR: Unable to parse input tree
make[1]: *** [scripts/Makefile.lib:406: Documentation/devicetree/bindings/mfd/adi,max77541.example.dtb] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1492: dt_binding_check] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20221207090906.5896-3-okan.sahin@analog.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.
new file mode 100644
@@ -0,0 +1,134 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/adi,max77541.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MAX77540/MAX77541 PMIC from ADI.
+
+maintainers:
+ - Okan Sahin <okan.sahin@analog.com>
+
+description: |
+ MAX77540 is a Power Management IC with 2 buck regulators.
+
+ MAX77541 is a Power Management IC with 2 buck regulators and 1 ADC.
+
+properties:
+ compatible:
+ enum:
+ - adi,max77540
+ - adi,max77541
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ regulators:
+ $ref: /schemas/regulator/adi,max77541.yaml#
+
+ adc:
+ type: object
+ additionalProperties: false
+ properties:
+ compatible:
+ const: adi,max77541-adc
+ required:
+ -compatible
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: adi,max77540
+ then:
+ properties:
+ regulator:
+ properties:
+ compatible:
+ const: adi,max77540-regulator
+ else:
+ properties:
+ regulator:
+ properties:
+ compatible:
+ const: adi,max77541-regulator
+ adc:
+ properties:
+ compatible:
+ const: adi,max77541-adc
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@69 {
+ compatible = "adi,max77540";
+ reg = <0x69>;
+ interrupt-parent = <&gpio>;
+ interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+
+ regulators {
+ buck1 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <5200000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ buck2 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <5200000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ };
+ };
+ };
+
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@69 {
+ compatible = "adi,max77541";
+ reg = <0x63>;
+ interrupt-parent = <&gpio>;
+ interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+
+ regulators {
+ buck1 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <5200000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ buck2 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <5200000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ };
+
+ adc {
+ compatible = "adi,max77541-adc";
+ }
+ };
+ };
\ No newline at end of file
@@ -12501,6 +12501,7 @@ MAXIM MAX77541 PMIC MFD DRIVER
M: Okan Sahin <okan.sahin@analog.com>
L: linux-kernel@vger.kernel.org
S: Maintained
+F: Documentation/devicetree/bindings/mfd/adi,max77541.yaml
F: drivers/mfd/max77541.c
F: include/linux/mfd/max77541.h