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 <ikjn@xxxxxxxxxxxx> > --- > 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? > 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@xxxxxxxxxxxx> > + - Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx> > + - Guenter Roeck <groeck@xxxxxxxxxxxx> > + > +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 >