Thread (15 messages) 15 messages, 4 authors, 2019-10-16

Re: [PATCH v2 1/6] dt-bindings: mfd: max77650: convert the binding document to yaml

From: Bartosz Golaszewski <hidden>
Date: 2019-10-16 15:29:05
Also in: linux-leds, linux-pm, lkml

śr., 16 paź 2019 o 15:51 Rob Herring [off-list ref] napisał(a):
On Wed, Oct 16, 2019 at 7:55 AM Bartosz Golaszewski [off-list ref] wrote:
quoted
wt., 15 paź 2019 o 23:17 Rob Herring [off-list ref] napisał(a):
quoted
On Tue, Oct 15, 2019 at 11:23 AM Bartosz Golaszewski [off-list ref] wrote:
quoted
From: Bartosz Golaszewski <redacted>

Convert the binding document for MAX77650 core MFD module to YAML.

Signed-off-by: Bartosz Golaszewski <redacted>
---
 .../devicetree/bindings/mfd/max77650.txt      | 47 +----------
 .../devicetree/bindings/mfd/max77650.yaml     | 83 +++++++++++++++++++
 2 files changed, 84 insertions(+), 46 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/max77650.yaml
diff --git a/Documentation/devicetree/bindings/mfd/max77650.txt b/Documentation/devicetree/bindings/mfd/max77650.txt
index b529d8d19335..080871686b3b 100644
--- a/Documentation/devicetree/bindings/mfd/max77650.txt
+++ b/Documentation/devicetree/bindings/mfd/max77650.txt
@@ -1,46 +1 @@
-MAX77650 ultra low-power PMIC from Maxim Integrated.
-
-Required properties:
--------------------
-- compatible:          Must be "maxim,max77650"
-- reg:                 I2C device address.
-- interrupts:          The interrupt on the parent the controller is
-                       connected to.
-- interrupt-controller: Marks the device node as an interrupt controller.
-- #interrupt-cells:    Must be <2>.
-
-- gpio-controller:     Marks the device node as a gpio controller.
-- #gpio-cells:         Must be <2>. The first cell is the pin number and
-                       the second cell is used to specify the gpio active
-                       state.
-
-Optional properties:
---------------------
-gpio-line-names:       Single string containing the name of the GPIO line.
-
-The GPIO-controller module is represented as part of the top-level PMIC
-node. The device exposes a single GPIO line.
-
-For device-tree bindings of other sub-modules (regulator, power supply,
-LEDs and onkey) refer to the binding documents under the respective
-sub-system directories.
-
-For more details on GPIO bindings, please refer to the generic GPIO DT
-binding document <devicetree/bindings/gpio/gpio.txt>.
-
-Example:
---------
-
-       pmic@48 {
-               compatible = "maxim,max77650";
-               reg = <0x48>;
-
-               interrupt-controller;
-               interrupt-parent = <&gpio2>;
-               #interrupt-cells = <2>;
-               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
-
-               gpio-controller;
-               #gpio-cells = <2>;
-               gpio-line-names = "max77650-charger";
-       };
+This file has been moved to max77650.yaml.
diff --git a/Documentation/devicetree/bindings/mfd/max77650.yaml b/Documentation/devicetree/bindings/mfd/max77650.yaml
new file mode 100644
index 000000000000..5186ad287ec7
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/max77650.yaml
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/max77650.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MAX77650 ultra low-power PMIC from Maxim Integrated.
+
+maintainers:
+  - Bartosz Golaszewski <bgolaszewski@baylibre.com>
+
+description: |
+  This document describes the DT properties of the core MFD controller.
+
+  The GPIO-controller module is represented as part of the top-level PMIC
+  node. The device exposes a single GPIO line.
+
+  For device-tree bindings of other sub-modules (regulator, power supply,
+  LEDs and onkey) refer to the binding documents under the respective
+  sub-system directories.
+
+  For more details on GPIO bindings, please refer to the generic GPIO DT
+  binding document <devicetree/bindings/gpio/gpio.txt>.
+
+properties:
+  compatible:
+    const: maxim,max77650
+
+  reg:
+    description:
+      I2C device address.
+    maxItems: 1
+
+  interrupts:
+    description:
+      The interrupt on the parent the controller is connected to.
+    maxItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 2
+    description:
+      The first cell is the IRQ number, the second cell is the trigger type.
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+    description:
+      The first cell is the pin number and the second cell is used to specify
+      the gpio active state.
+
+  gpio-line-names:
+    $ref: '/schemas/types.yaml#/definitions/string-array'
+    maxItems: 1
+    description:
+      Single string containing the name of the GPIO line.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-controller
+  - "#interrupt-cells"
+  - gpio-controller
+  - "#gpio-cells"
+
+examples:
+  - |
+    pmic@48 {
+        compatible = "maxim,max77650";
+        reg = <0x48>;
+
+        interrupt-controller;
+        interrupt-parent = <&gpio2>;
+        #interrupt-cells = <2>;
+        interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
Examples are built now. Run 'make dt_binding_check' on bindings before
sending them:

Error: Documentation/devicetree/bindings/mfd/max77650.example.dts:24.29-30
syntax error
FATAL ERROR: Unable to parse input tree
scripts/Makefile.lib:321: recipe for target
'Documentation/devicetree/bindings/mfd/max77650.example.dt.yaml'
failed
make[1]: *** [Documentation/devicetree/bindings/mfd/max77650.example.dt.yaml]
Error 1

You need to include any includes that you use.

Rob
Hi Rob,

thanks for the review.

I'm on v5.4-rc3 and when running dt_binding_check, the error I'm
getting is this:

# make dt_binding_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/mfd/max77650.yaml
  SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
  CHKDT   Documentation/devicetree/bindings/mfd/max77650.yaml
make[1]: *** No rule to make target
'Documentation/devicetree/bindings/mfd/max77650.example.dt.yaml',
needed by '__build'.  Stop.
make: *** [Makefile:1263: dt_binding_check] Error 2

Is this caused by the same issue or am I missing something?
I believe that's because dtc needs to be built with libyaml support.
Indeed, I didn't have the development package installed, but
surprisingly I didn't get the warning from scripts/dtc/Makefile about
that either.

Bart
Rob
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help