diff mbox series

[v5,3/3] dt-bindings: cros-ec: Add ChromeOS fingerprint binding

Message ID 20220512013921.164637-4-swboyd@chromium.org (mailing list archive)
State Superseded
Headers show
Series dt-bindings: cros-ec: Update for fingerprint devices | expand

Commit Message

Stephen Boyd May 12, 2022, 1:39 a.m. UTC
Add a binding to describe the fingerprint processor found on Chromebooks
with a fingerprint sensor. Previously we've been describing this with
the google,cros-ec-spi binding but it lacks gpio and regulator control
used during firmware flashing.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: <devicetree@vger.kernel.org>
Cc: <chrome-platform@lists.linux.dev>
Cc: Guenter Roeck <groeck@chromium.org>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Craig Hesling <hesling@chromium.org>
Cc: Tom Hughes <tomhughes@chromium.org>
Cc: Alexandru M Stan <amstan@chromium.org>
Cc: Tzung-Bi Shih <tzungbi@kernel.org>
Cc: Matthias Kaehlcke <mka@chromium.org>
Cc: Benson Leung <bleung@chromium.org>
Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
---
 .../bindings/mfd/google,cros-ec.yaml          | 80 ++++++++++++++++---
 1 file changed, 71 insertions(+), 9 deletions(-)

Comments

Doug Anderson May 12, 2022, 11:44 p.m. UTC | #1
Hi,

On Wed, May 11, 2022 at 6:39 PM Stephen Boyd <swboyd@chromium.org> wrote:
>
> @@ -176,6 +189,37 @@ allOf:
>          - reg
>          - interrupts
>
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: google,cros-ec-fp
> +    then:
> +      properties:
> +        '#address-cells': false
> +        '#size-cells': false
> +        typec: false
> +        ec-pwm: false
> +        keyboard-controller: false
> +        proximity: false
> +        codecs: false
> +        cbas: false
> +
> +      patternProperties:
> +        "^i2c-tunnel[0-9]*$": false
> +        "^regulator@[0-9]+$": false
> +        "^extcon[0-9]*$": false
> +
> +      required:
> +        - reset-gpios
> +        - boot0-gpios
> +        - vdd-supply
> +    else:
> +      properties:
> +        reset-gpios: false
> +        boot0-gpios: false
> +        vdd-supply: false

Wow, that's a huge pain to have to specify it this way, but I don't
know of any other way to make things happy and still have the
"google,cros-ec-spi" fallback that we decided on having in previous
versions.


>  additionalProperties: false
>
>  examples:
> @@ -231,4 +275,22 @@ examples:
>              compatible = "google,cros-ec-rpmsg";
>          };
>      };
> +
> +  - |

nit: all the other examples have a little "# For <blah>" comment
before them. It's not really necessary, but do we want one here to
match?

In any case, it seems OK to me.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Rob Herring (Arm) May 16, 2022, 3:20 p.m. UTC | #2
On Wed, May 11, 2022 at 06:39:21PM -0700, Stephen Boyd wrote:
> Add a binding to describe the fingerprint processor found on Chromebooks
> with a fingerprint sensor. Previously we've been describing this with
> the google,cros-ec-spi binding but it lacks gpio and regulator control
> used during firmware flashing.
> 
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
> Cc: <devicetree@vger.kernel.org>
> Cc: <chrome-platform@lists.linux.dev>
> Cc: Guenter Roeck <groeck@chromium.org>
> Cc: Douglas Anderson <dianders@chromium.org>
> Cc: Craig Hesling <hesling@chromium.org>
> Cc: Tom Hughes <tomhughes@chromium.org>
> Cc: Alexandru M Stan <amstan@chromium.org>
> Cc: Tzung-Bi Shih <tzungbi@kernel.org>
> Cc: Matthias Kaehlcke <mka@chromium.org>
> Cc: Benson Leung <bleung@chromium.org>
> Cc: Lee Jones <lee.jones@linaro.org>
> Signed-off-by: Stephen Boyd <swboyd@chromium.org>
> ---
>  .../bindings/mfd/google,cros-ec.yaml          | 80 ++++++++++++++++---
>  1 file changed, 71 insertions(+), 9 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> index 409ecef967ce..e5fe60beb9fe 100644
> --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> @@ -19,15 +19,19 @@ description:
>  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
> +      # For implementations of the EC is connected through I2C.

Using 'description' was preferred.

> +      - items:
> +          - const: google,cros-ec-i2c
> +      # For implementations of the FPMCU connected through SPI.
> +      - items:
> +          - const: google,cros-ec-fp
> +          - const: google,cros-ec-spi
> +      # For implementations of the EC is connected through SPI.
> +      - items:
> +          - const: google,cros-ec-spi
> +      # For implementations of the EC is connected through RPMSG.
> +      - items:
> +          - const: google,cros-ec-rpmsg
>  
>    controller-data:
>      description:
> @@ -132,6 +136,15 @@ properties:
>  
>      additionalProperties: false
>  
> +  reset-gpios:
> +    maxItems: 1
> +
> +  boot0-gpios:
> +    maxItems: 1
> +    description: Assert for bootloader mode.
> +
> +  vdd-supply: true
> +
>  patternProperties:
>    "^i2c-tunnel[0-9]*$":
>      type: object
> @@ -176,6 +189,37 @@ allOf:
>          - reg
>          - interrupts
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: google,cros-ec-fp
> +    then:
> +      properties:
> +        '#address-cells': false
> +        '#size-cells': false
> +        typec: false
> +        ec-pwm: false
> +        keyboard-controller: false
> +        proximity: false
> +        codecs: false
> +        cbas: false
> +
> +      patternProperties:
> +        "^i2c-tunnel[0-9]*$": false
> +        "^regulator@[0-9]+$": false
> +        "^extcon[0-9]*$": false

Is the list of what's allowed shorter? If so, you could list those 
properties and use 'additionalProperties: false'.

Or maybe this is a sign that this should be a separate schema document.

> +
> +      required:
> +        - reset-gpios
> +        - boot0-gpios
> +        - vdd-supply
> +    else:
> +      properties:
> +        reset-gpios: false
> +        boot0-gpios: false
> +        vdd-supply: false
Stephen Boyd May 16, 2022, 7:23 p.m. UTC | #3
Quoting Rob Herring (2022-05-16 08:20:03)
> On Wed, May 11, 2022 at 06:39:21PM -0700, Stephen Boyd wrote:
> > diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > index 409ecef967ce..e5fe60beb9fe 100644
> > --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > @@ -19,15 +19,19 @@ description:
> >  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
> > +      # For implementations of the EC is connected through I2C.
>
> Using 'description' was preferred.

I just learned that I should use anyOf instead of oneOf. Confusing!

>
> > +      - items:
> > +          - const: google,cros-ec-i2c
> > +      # For implementations of the FPMCU connected through SPI.
> > +      - items:
> > +          - const: google,cros-ec-fp
> > +          - const: google,cros-ec-spi
> > +      # For implementations of the EC is connected through SPI.
> > +      - items:
> > +          - const: google,cros-ec-spi
> > +      # For implementations of the EC is connected through RPMSG.
> > +      - items:
> > +          - const: google,cros-ec-rpmsg
> >
> >    controller-data:
> >      description:
> > @@ -176,6 +189,37 @@ allOf:
> >          - reg
> >          - interrupts
> >
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: google,cros-ec-fp
> > +    then:
> > +      properties:
> > +        '#address-cells': false
> > +        '#size-cells': false
> > +        typec: false
> > +        ec-pwm: false
> > +        keyboard-controller: false
> > +        proximity: false
> > +        codecs: false
> > +        cbas: false
> > +
> > +      patternProperties:
> > +        "^i2c-tunnel[0-9]*$": false
> > +        "^regulator@[0-9]+$": false
> > +        "^extcon[0-9]*$": false
>
> Is the list of what's allowed shorter? If so, you could list those
> properties and use 'additionalProperties: false'.

Yes.

>
> Or maybe this is a sign that this should be a separate schema document.

I couldn't figure that out. I tried to add new properties here but it
didn't work. And then when I tried to make a different schema document
it complained that the example for google,cros-ec-spi in here had a
problem. Can properties be defined in this section? Or only listed and
then additionalProperties be marked false?
Rob Herring (Arm) May 18, 2022, 4:13 p.m. UTC | #4
On Mon, May 16, 2022 at 12:23:03PM -0700, Stephen Boyd wrote:
> Quoting Rob Herring (2022-05-16 08:20:03)
> > On Wed, May 11, 2022 at 06:39:21PM -0700, Stephen Boyd wrote:
> > > diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > index 409ecef967ce..e5fe60beb9fe 100644
> > > --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > @@ -19,15 +19,19 @@ description:
> > >  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
> > > +      # For implementations of the EC is connected through I2C.
> >
> > Using 'description' was preferred.
> 
> I just learned that I should use anyOf instead of oneOf. Confusing!

Uhh, no. It can only be one of these entries at a time.


> >
> > > +      - items:
> > > +          - const: google,cros-ec-i2c
> > > +      # For implementations of the FPMCU connected through SPI.
> > > +      - items:
> > > +          - const: google,cros-ec-fp
> > > +          - const: google,cros-ec-spi
> > > +      # For implementations of the EC is connected through SPI.
> > > +      - items:
> > > +          - const: google,cros-ec-spi
> > > +      # For implementations of the EC is connected through RPMSG.
> > > +      - items:
> > > +          - const: google,cros-ec-rpmsg
> > >
> > >    controller-data:
> > >      description:
> > > @@ -176,6 +189,37 @@ allOf:
> > >          - reg
> > >          - interrupts
> > >
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            const: google,cros-ec-fp
> > > +    then:
> > > +      properties:
> > > +        '#address-cells': false
> > > +        '#size-cells': false
> > > +        typec: false
> > > +        ec-pwm: false
> > > +        keyboard-controller: false
> > > +        proximity: false
> > > +        codecs: false
> > > +        cbas: false
> > > +
> > > +      patternProperties:
> > > +        "^i2c-tunnel[0-9]*$": false
> > > +        "^regulator@[0-9]+$": false
> > > +        "^extcon[0-9]*$": false
> >
> > Is the list of what's allowed shorter? If so, you could list those
> > properties and use 'additionalProperties: false'.
> 
> Yes.
> 
> >
> > Or maybe this is a sign that this should be a separate schema document.
> 
> I couldn't figure that out. I tried to add new properties here but it
> didn't work.

Like this?:

then:
  properties:
    allowed-prop-1: true
    allowed-prop-2: true
    allowed-prop-3: true
  additionalProperties: false

> And then when I tried to make a different schema document
> it complained that the example for google,cros-ec-spi in here had a
> problem.

You probably need a custom 'select' so that both schemas aren't 
matching. Otherwise a schema is applied if any of the compatible strings 
match.

> Can properties be defined in this section? 

Yes, but discouraged for vendor specific properties. The if/then should 
really be just additional constraints.

Rob
Stephen Boyd May 18, 2022, 7:56 p.m. UTC | #5
Quoting Rob Herring (2022-05-18 09:13:48)
> On Mon, May 16, 2022 at 12:23:03PM -0700, Stephen Boyd wrote:
> > Quoting Rob Herring (2022-05-16 08:20:03)
> > > On Wed, May 11, 2022 at 06:39:21PM -0700, Stephen Boyd wrote:
> > > > diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > > index 409ecef967ce..e5fe60beb9fe 100644
> > > > --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > > +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > > +      - items:
> > > > +          - const: google,cros-ec-i2c
> > > > +      # For implementations of the FPMCU connected through SPI.
> > > > +      - items:
> > > > +          - const: google,cros-ec-fp
> > > > +          - const: google,cros-ec-spi
> > > > +      # For implementations of the EC is connected through SPI.
> > > > +      - items:
> > > > +          - const: google,cros-ec-spi
> > > > +      # For implementations of the EC is connected through RPMSG.
> > > > +      - items:
> > > > +          - const: google,cros-ec-rpmsg
> > > >
> > > >    controller-data:
> > > >      description:
> > > > @@ -176,6 +189,37 @@ allOf:
> > > >          - reg
> > > >          - interrupts
> > > >
> > > > +  - if:
> > > > +      properties:
> > > > +        compatible:
> > > > +          contains:
> > > > +            const: google,cros-ec-fp
> > > > +    then:
> > > > +      properties:
> > > > +        '#address-cells': false
> > > > +        '#size-cells': false
> > > > +        typec: false
> > > > +        ec-pwm: false
> > > > +        keyboard-controller: false
> > > > +        proximity: false
> > > > +        codecs: false
> > > > +        cbas: false
> > > > +
> > > > +      patternProperties:
> > > > +        "^i2c-tunnel[0-9]*$": false
> > > > +        "^regulator@[0-9]+$": false
> > > > +        "^extcon[0-9]*$": false
> > >
> > > Is the list of what's allowed shorter? If so, you could list those
> > > properties and use 'additionalProperties: false'.
> >
> > Yes.
> >
> > >
> > > Or maybe this is a sign that this should be a separate schema document.
> >
> > I couldn't figure that out. I tried to add new properties here but it
> > didn't work.
>
> Like this?:
>
> then:
>   properties:
>     allowed-prop-1: true
>     allowed-prop-2: true
>     allowed-prop-3: true
>   additionalProperties: false

It doesn't seem to combine constraints?

I get this error:

	Documentation/devicetree/bindings/mfd/google,cros-ec.example.dt.yaml:
	ec@0: Additional properties are not allowed ('$nodename' was unexpected)


with this interdiff. I added the spi properties to reduce the additional
properties that aren't allowed.

---8<----
diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
index 04b847fd5070..d47c7a273026 100644
--- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
+++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
@@ -18,24 +18,21 @@ description:

 properties:
   compatible:
-    anyOf:
+    oneOf:
       - description:
           For implementations of the EC connected through I2C.
-      - items:
-          - const: google,cros-ec-i2c
+        const: google,cros-ec-i2c
       - description:
           For implementations of the FPMCU connected through SPI.
-      - items:
+        items:
           - const: google,cros-ec-fp
           - const: google,cros-ec-spi
       - description:
           For implementations of the EC connected through SPI.
-      - items:
-          - const: google,cros-ec-spi
+        const: google,cros-ec-spi
       - description:
           For implementations of the EC connected through RPMSG.
-      - items:
-          - const: google,cros-ec-rpmsg
+        const: google,cros-ec-rpmsg

   controller-data:
     description:
@@ -200,19 +197,14 @@ allOf:
             const: google,cros-ec-fp
     then:
       properties:
-        '#address-cells': false
-        '#size-cells': false
-        typec: false
-        ec-pwm: false
-        keyboard-controller: false
-        proximity: false
-        codecs: false
-        cbas: false
-
-      patternProperties:
-        "^i2c-tunnel[0-9]*$": false
-        "^regulator@[0-9]+$": false
-        "^extcon[0-9]*$": false
+        reset-gpios: true
+        boot0-gpios: true
+        vdd-supply: true
+        interrupts: true
+        compatible: true
+        reg: true
+        spi-max-frequency: true
+      additionalProperties: false

       required:
         - reset-gpios

>
> > And then when I tried to make a different schema document
> > it complained that the example for google,cros-ec-spi in here had a
> > problem.
>
> You probably need a custom 'select' so that both schemas aren't
> matching. Otherwise a schema is applied if any of the compatible strings
> match.

I see. Maybe that's better vs. jamming it all into one file.

>
> > Can properties be defined in this section?
>
> Yes, but discouraged for vendor specific properties. The if/then should
> really be just additional constraints.

Ok.
Rob Herring (Arm) May 19, 2022, 7:48 p.m. UTC | #6
On Wed, May 18, 2022 at 12:56:17PM -0700, Stephen Boyd wrote:
> Quoting Rob Herring (2022-05-18 09:13:48)
> > On Mon, May 16, 2022 at 12:23:03PM -0700, Stephen Boyd wrote:
> > > Quoting Rob Herring (2022-05-16 08:20:03)
> > > > On Wed, May 11, 2022 at 06:39:21PM -0700, Stephen Boyd wrote:
> > > > > diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > > > index 409ecef967ce..e5fe60beb9fe 100644
> > > > > --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > > > +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
> > > > > +      - items:
> > > > > +          - const: google,cros-ec-i2c
> > > > > +      # For implementations of the FPMCU connected through SPI.
> > > > > +      - items:
> > > > > +          - const: google,cros-ec-fp
> > > > > +          - const: google,cros-ec-spi
> > > > > +      # For implementations of the EC is connected through SPI.
> > > > > +      - items:
> > > > > +          - const: google,cros-ec-spi
> > > > > +      # For implementations of the EC is connected through RPMSG.
> > > > > +      - items:
> > > > > +          - const: google,cros-ec-rpmsg
> > > > >
> > > > >    controller-data:
> > > > >      description:
> > > > > @@ -176,6 +189,37 @@ allOf:
> > > > >          - reg
> > > > >          - interrupts
> > > > >
> > > > > +  - if:
> > > > > +      properties:
> > > > > +        compatible:
> > > > > +          contains:
> > > > > +            const: google,cros-ec-fp
> > > > > +    then:
> > > > > +      properties:
> > > > > +        '#address-cells': false
> > > > > +        '#size-cells': false
> > > > > +        typec: false
> > > > > +        ec-pwm: false
> > > > > +        keyboard-controller: false
> > > > > +        proximity: false
> > > > > +        codecs: false
> > > > > +        cbas: false
> > > > > +
> > > > > +      patternProperties:
> > > > > +        "^i2c-tunnel[0-9]*$": false
> > > > > +        "^regulator@[0-9]+$": false
> > > > > +        "^extcon[0-9]*$": false
> > > >
> > > > Is the list of what's allowed shorter? If so, you could list those
> > > > properties and use 'additionalProperties: false'.
> > >
> > > Yes.
> > >
> > > >
> > > > Or maybe this is a sign that this should be a separate schema document.
> > >
> > > I couldn't figure that out. I tried to add new properties here but it
> > > didn't work.
> >
> > Like this?:
> >
> > then:
> >   properties:
> >     allowed-prop-1: true
> >     allowed-prop-2: true
> >     allowed-prop-3: true
> >   additionalProperties: false
> 
> It doesn't seem to combine constraints?
> 
> I get this error:
> 
> 	Documentation/devicetree/bindings/mfd/google,cros-ec.example.dt.yaml:
> 	ec@0: Additional properties are not allowed ('$nodename' was unexpected)

That would be a bug or limitation in the tools. We would need to add 
all the other properties we automatically add as well... I think either 
leaving it as-is or a separate file is going to be the better route 
here.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
index 409ecef967ce..e5fe60beb9fe 100644
--- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
+++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
@@ -19,15 +19,19 @@  description:
 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
+      # For implementations of the EC is connected through I2C.
+      - items:
+          - const: google,cros-ec-i2c
+      # For implementations of the FPMCU connected through SPI.
+      - items:
+          - const: google,cros-ec-fp
+          - const: google,cros-ec-spi
+      # For implementations of the EC is connected through SPI.
+      - items:
+          - const: google,cros-ec-spi
+      # For implementations of the EC is connected through RPMSG.
+      - items:
+          - const: google,cros-ec-rpmsg
 
   controller-data:
     description:
@@ -132,6 +136,15 @@  properties:
 
     additionalProperties: false
 
+  reset-gpios:
+    maxItems: 1
+
+  boot0-gpios:
+    maxItems: 1
+    description: Assert for bootloader mode.
+
+  vdd-supply: true
+
 patternProperties:
   "^i2c-tunnel[0-9]*$":
     type: object
@@ -176,6 +189,37 @@  allOf:
         - reg
         - interrupts
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,cros-ec-fp
+    then:
+      properties:
+        '#address-cells': false
+        '#size-cells': false
+        typec: false
+        ec-pwm: false
+        keyboard-controller: false
+        proximity: false
+        codecs: false
+        cbas: false
+
+      patternProperties:
+        "^i2c-tunnel[0-9]*$": false
+        "^regulator@[0-9]+$": false
+        "^extcon[0-9]*$": false
+
+      required:
+        - reset-gpios
+        - boot0-gpios
+        - vdd-supply
+    else:
+      properties:
+        reset-gpios: false
+        boot0-gpios: false
+        vdd-supply: false
+
 additionalProperties: false
 
 examples:
@@ -231,4 +275,22 @@  examples:
             compatible = "google,cros-ec-rpmsg";
         };
     };
+
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+    spi {
+      #address-cells = <0x1>;
+      #size-cells = <0x0>;
+      ec@0 {
+        compatible = "google,cros-ec-fp", "google,cros-ec-spi";
+        reg = <0>;
+        interrupt-parent = <&gpio_controller>;
+        interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+        spi-max-frequency = <3000000>;
+        reset-gpios = <&gpio_controller 5 GPIO_ACTIVE_LOW>;
+        boot0-gpios = <&gpio_controller 10 GPIO_ACTIVE_HIGH>;
+        vdd-supply = <&pp3300_fp_mcu>;
+      };
+    };
 ...