All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ikjoon Jang <ikjn@chromium.org>
To: devicetree@vger.kernel.org
Cc: Rob Herring <robh+dt@kernel.org>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Lee Jones <lee.jones@linaro.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Benson Leung <bleung@chromium.org>,
	Enric Balletbo i Serra <enric.balletbo@collabora.com>,
	Guenter Roeck <groeck@chromium.org>,
	Jiri Kosina <jikos@kernel.org>,
	Benjamin Tissoires <benjamin.tissoires@redhat.com>,
	Nicolas Boitchat <drinkcat@chromium.org>,
	linux-input@vger.kernel.org, Ikjoon Jang <ikjn@chromium.org>
Subject: [PATCH] dt-bindings: mfd: Convert ChromeOS EC bindings to json-schema
Date: Tue, 14 Jan 2020 10:19:34 +0800	[thread overview]
Message-ID: <20200114021934.178057-1-ikjn@chromium.org> (raw)

Convert the ChromeOS EC bindings to json-schema.

Signed-off-by: Ikjoon Jang <ikjn@chromium.org>
---
 .../devicetree/bindings/mfd/cros-ec.txt       |  76 ----------
 .../devicetree/bindings/mfd/cros-ec.yaml      | 138 ++++++++++++++++++
 2 files changed, 138 insertions(+), 76 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mfd/cros-ec.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/cros-ec.yaml

diff --git a/Documentation/devicetree/bindings/mfd/cros-ec.txt b/Documentation/devicetree/bindings/mfd/cros-ec.txt
deleted file mode 100644
index 4860eabd0f72..000000000000
--- a/Documentation/devicetree/bindings/mfd/cros-ec.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-ChromeOS Embedded Controller
-
-Google's ChromeOS EC is a Cortex-M device which talks to the AP and
-implements various function such as keyboard and battery charging.
-
-The EC can be connect through various means (I2C, SPI, LPC, RPMSG) and the
-compatible string used depends on the interface. Each connection method has
-its own driver which connects to the top level interface-agnostic EC driver.
-Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to
-the top-level driver.
-
-Required properties (I2C):
-- compatible: "google,cros-ec-i2c"
-- reg: I2C slave address
-
-Required properties (SPI):
-- compatible: "google,cros-ec-spi"
-- reg: SPI chip select
-
-Required properties (RPMSG):
-- compatible: "google,cros-ec-rpmsg"
-
-Optional properties (SPI):
-- google,cros-ec-spi-pre-delay: Some implementations of the EC need a little
-  time to wake up from sleep before they can receive SPI transfers at a high
-  clock rate. This property specifies the delay, in usecs, between the
-  assertion of the CS to the start of the first clock pulse.
-- google,cros-ec-spi-msg-delay: Some implementations of the EC require some
-  additional processing time in order to accept new transactions. If the delay
-  between transactions is not long enough the EC may not be able to respond
-  properly to subsequent transactions and cause them to hang. This property
-  specifies the delay, in usecs, introduced between transactions to account
-  for the time required by the EC to get back into a state in which new data
-  can be accepted.
-
-Required properties (LPC):
-- compatible: "google,cros-ec-lpc"
-- reg: List of (IO address, size) pairs defining the interface uses
-
-Optional properties (all):
-- google,has-vbc-nvram: Some implementations of the EC include a small
-  nvram space used to store verified boot context data. This boolean flag
-  is used to specify whether this nvram is present or not.
-
-Example for I2C:
-
-i2c@12ca0000 {
-	cros-ec@1e {
-		reg = <0x1e>;
-		compatible = "google,cros-ec-i2c";
-		interrupts = <14 0>;
-		interrupt-parent = <&wakeup_eint>;
-		wakeup-source;
-	};
-
-
-Example for SPI:
-
-spi@131b0000 {
-	ec@0 {
-		compatible = "google,cros-ec-spi";
-		reg = <0x0>;
-		interrupts = <14 0>;
-		interrupt-parent = <&wakeup_eint>;
-		wakeup-source;
-		spi-max-frequency = <5000000>;
-		controller-data {
-		cs-gpio = <&gpf0 3 4 3 0>;
-		samsung,spi-cs;
-		samsung,spi-feedback-delay = <2>;
-		};
-	};
-};
-
-
-Example for LPC is not supplied as it is not yet implemented.
diff --git a/Documentation/devicetree/bindings/mfd/cros-ec.yaml b/Documentation/devicetree/bindings/mfd/cros-ec.yaml
new file mode 100644
index 000000000000..ea430f0a553b
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/cros-ec.yaml
@@ -0,0 +1,138 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/cros-ec.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ChromeOS Embedded Controller
+
+maintainers:
+  - Benson Leung <bleung@chromium.org>
+  - Enric Balletbo i Serra <enric.balletbo@collabora.com>
+  - Guenter Roeck <groeck@chromium.org>
+
+description: |
+  Google's ChromeOS EC is a Cortex-M device which talks to the AP and
+  implements various function such as keyboard and battery charging.
+  The EC can be connect through various means (I2C, SPI, LPC, RPMSG)
+  and the compatible string used depends on the interface.
+  Each connection method has its own driver which connects to the
+  top level interface-agnostic EC driver. Other Linux driver
+  (such as cros-ec-keyb for the matrix keyboard) connect to the
+  top-level driver.
+
+properties:
+  compatible:
+    oneOf:
+      - description:
+          For implementations of the EC is connected through I2C.
+        const: google,cros-ec-i2c
+      - description:
+          For implementations of the EC is connected through SPI.
+        const: google,cros-ec-spi
+      - description:
+          For implementations of the EC is connected through LPC.
+        const: google,cros-ec-lpc
+      - description:
+          For implementations of the EC is connected through RPMSG.
+        const: google,cros-ec-rpmsg
+
+  google,has-vbc-nvram:
+    description: |
+      Some implementations of the EC include a small
+      nvram space used to store verified boot context data.
+      This boolean flag is used to specify whether this nvram is present or not.
+    type: boolean
+
+required:
+  - compatible
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          const: google,cros-ec-i2c
+    then:
+      properties:
+        reg:
+          description: I2C slave address
+          maxItems: 1
+      required:
+        - reg
+  - if:
+      properties:
+        compatible:
+          const: google,cros-ec-spi
+    then:
+      properties:
+        reg:
+          description: SPI chip select
+          maxItems: 1
+        google,cros-ec-spi-pre-delay:
+          description: |
+            Some implementations of the EC need a little time to wake up
+            from sleep before they can receive SPI transfers
+            at a high clock rate. This property specifies the delay,
+            in usecs, between the assertion of the CS to the start of
+            the first clock pulse.
+        google,cros-ec-spi-msg-delay:
+          description: |
+            Some implementations of the EC require some additional
+            processing time in order to accept new transactions.
+            If the delay between transactions is not long enough
+            the EC may not be able to respond properly to
+            subsequent transactions and cause them to hang.
+            This property specifies the delay, in usecs,
+            introduced between transactions to account for the
+            time required by the EC to get back into a state
+            in which new data can be accepted.
+      required:
+        - reg
+
+  - if:
+      properties:
+        compatible:
+          const: google,cros-ec-lpc
+    then:
+      properties:
+        reg:
+          description: |
+            List of (IO address, size) pairs defining the interface uses
+      required:
+        - reg
+
+examples:
+  - |+
+    // Example for I2C
+    i2c@12ca0000 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        cros-ec@1e {
+            reg = <0x1e>;
+            compatible = "google,cros-ec-i2c";
+            interrupts = <14 0>;
+            interrupt-parent = <&wakeup_eint>;
+            wakeup-source;
+        };
+    };
+  - |+
+    // Example for SPI
+    spi@131b0000 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        ec@0 {
+            compatible = "google,cros-ec-spi";
+            reg = <0x0>;
+            interrupts = <14 0>;
+            interrupt-parent = <&wakeup_eint>;
+            wakeup-source;
+            spi-max-frequency = <5000000>;
+            controller-data {
+                cs-gpio = <&gpf0 3 4 3 0>;
+                samsung,spi-cs;
+                samsung,spi-feedback-delay = <2>;
+            };
+        };
+    };
+
+...
-- 
2.25.0.rc1.283.g88dfdc4193-goog


             reply	other threads:[~2020-01-14  2:19 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-14  2:19 Ikjoon Jang [this message]
2020-01-14 12:58 ` [PATCH] dt-bindings: mfd: Convert ChromeOS EC bindings to json-schema Enric Balletbo i Serra
2020-01-15  9:56   ` Ikjoon Jang
2020-01-16 10:13 ` Ikjoon Jang
2020-01-16 12:29   ` Enric Balletbo i Serra
2020-01-21  7:47 ` [PATCH v3] " Ikjoon Jang
2020-01-27 15:57   ` Enric Balletbo i Serra
2020-01-27 16:12     ` Rob Herring
2020-01-27 16:25       ` Enric Balletbo i Serra
2020-02-04  7:44         ` Ikjoon Jang
2020-01-27 16:05   ` Rob Herring
2020-02-04  8:39     ` Ikjoon Jang
2020-02-14  6:26 ` [PATCH v4] " Ikjoon Jang
2020-02-14 15:39   ` Enric Balletbo i Serra
2020-02-18 20:20   ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200114021934.178057-1-ikjn@chromium.org \
    --to=ikjn@chromium.org \
    --cc=benjamin.tissoires@redhat.com \
    --cc=bleung@chromium.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=drinkcat@chromium.org \
    --cc=enric.balletbo@collabora.com \
    --cc=groeck@chromium.org \
    --cc=jikos@kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-input@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.