Re: [PATCH v3] dt-bindings: mfd: Convert ChromeOS EC bindings to json-schema
From: Rob Herring <robh@kernel.org>
Date: 2020-01-27 16:05:33
Also in:
linux-input
On Tue, Jan 21, 2020 at 03:47:27PM +0800, Ikjoon Jang wrote:
Convert the ChromeOS EC bindings to json-schema. Signed-off-by: Ikjoon Jang <redacted> --- v3: node name changed in rpmsg example v2: cleanup description, fix typos, remove LPC, add add RPMSG example --- .../devicetree/bindings/mfd/cros-ec.txt | 76 ------------ .../devicetree/bindings/mfd/cros-ec.yaml | 111 ++++++++++++++++++ 2 files changed, 111 insertions(+), 76 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mfd/cros-ec.txt create mode 100644 Documentation/devicetree/bindings/mfd/cros-ec.yaml
-Required properties (LPC): -- compatible: "google,cros-ec-lpc" -- reg: List of (IO address, size) pairs defining the interface uses
Where did this go?
quoted hunk ↗ jump to hunk
diff --git a/Documentation/devicetree/bindings/mfd/cros-ec.yaml b/Documentation/devicetree/bindings/mfd/cros-ec.yaml new file mode 100644 index 000000000000..6a5b87cebcfa --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/cros-ec.yaml@@ -0,0 +1,111 @@ +# 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 microcontroller which talks to the AP and + implements various functions such as keyboard and battery charging. + The EC can be connected through various interfaces (I2C, SPI, and others) + and the compatible string specifies which interface is being used. + +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 RPMSG. + const: google,cros-ec-rpmsg + + google,has-vbc-nvram: + description: |
You can drop '|' if there's no formatting to maintain. And you should reflow this.
+ 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: | + This property specifies the delay in usecs between the + assertion of the CS and the first clock pulse.
Needs a type reference at a minumum and ideally some constraints.
+ google,cros-ec-spi-msg-delay: + description: | + This property specifies the delay in usecs between messages.
Same here.
+ required: + - reg +
Add: additionalProperties: false
+examples:
+ # Example for I2C
+ - |
+ i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cros-ec@1e {
+ compatible = "google,cros-ec-i2c";
+ reg = <0x1e>;
+ interrupts = <6 0>;Not documented.
+ interrupt-parent = <&gpx1>;
+ };
+ };
+ # Example for SPI
+ - |
+ spi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cros-ec@0 {
+ compatible = "google,cros-ec-spi";
+ reg = <0x0>;
+ google,cros-ec-spi-msg-delay = <30>;
+ interrupts = <99 0>;
+ interrupt-parent = <&gpio7>;
+ spi-max-frequency = <5000000>;
+ };
+ };
+ # Example for RPMSG
+ - |
+ scp0 {
+ cros-ec@0 {
+ compatible = "google,cros-ec-rpmsg";
+ };
+ };
+...
--
2.25.0.341.g760bfbb309-goog