Re: [PATCH v3] dt-bindings: mfd: Convert ChromeOS EC bindings to json-schema
From: Ikjoon Jang <hidden>
Date: 2020-02-04 08:39:52
Also in:
linux-devicetree
On Tue, Jan 28, 2020 at 12:05 AM Rob Herring [off-list ref] wrote:
On Tue, Jan 21, 2020 at 03:47:27PM +0800, Ikjoon Jang wrote:quoted
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.yamlquoted
-Required properties (LPC): -- compatible: "google,cros-ec-lpc" -- reg: List of (IO address, size) pairs defining the interface usesWhere did this go?
I'm not sure about the details or future plans on LPC interface, but I guess LPC has been just a future plan without any usages, so removed it.
quoted
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. +
I will drop | here also.
quoted
+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.
Okay,
quoted
+ 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.
Got it, I will add a type reference here, and for the constraints, these spi transaction delay cannot be bound. I will just add default: 0 here.
quoted
+ google,cros-ec-spi-msg-delay: + description: | + This property specifies the delay in usecs between messages.Same here.quoted
+ required: + - reg +Add: additionalProperties: false
Ack.
quoted
+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.
Sorry but I can't understand this part, can you elaborate on here? Do you mean adding comments here? or need more documentation on cros-ec-i2c?
quoted
+ 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