* [PATCH v6 0/2] dt-bindings: cros-ec: Update for fingerprint devices @ 2022-06-14 19:51 Stephen Boyd 2022-06-14 19:51 ` [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability Stephen Boyd 2022-06-14 19:51 ` [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding Stephen Boyd 0 siblings, 2 replies; 10+ messages in thread From: Stephen Boyd @ 2022-06-14 19:51 UTC (permalink / raw) To: Benson Leung Cc: linux-kernel, patches, Rob Herring, Krzysztof Kozlowski, devicetree, chrome-platform, Guenter Roeck, Douglas Anderson, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones This patch series introduces a DT binding for chromeos fingerprint devices. The first patches tightens up the existing cros-ec binding and the second patch introduces the fingerprint binding. As there aren't any driver patches this can probably go directly through the chrome platform tree if Lee can ack the mfd partfs. Changes from v5 (https://lore.kernel.org/r/20220512013921.164637-1-swboyd@chromium.org): * Split out to different binding file again, while using 'select' * Fixed examples to have required interrupts property for cros-ec-spi Changes from v4 (https://lore.kernel.org/r/20220321191100.1993-1-swboyd@chromium.org): * Drop last patch that implemented driver logic * Drop second to last patch because it's not really needed until compatible is used. * Rolled cros-ec-spi into cros-ec-fp compatible to get all the pieces Changes from v3 (https://lore.kernel.org/r/20220318015451.2869388-1-swboyd@chromium.org): * Drop spi_device_id because it isn't used * Dropped struct members for gpios * Picked up tags Changes from v2 (https://lore.kernel.org/r/20220317005814.2496302-1-swboyd@chromium.org): * Dropped cros-ec spi dt properties that aren't of use right now * Picked up tags Changes from v1 (https://lore.kernel.org/r/20220314232214.4183078-1-swboyd@chromium.org): * Properly do the boot sequence * Add a message that we're booting and delaying a while * Fix typo in commit text * Change binding to not spell out reset-gpios and indicate that boot0 is about asserting boot mode * Split device id to different patch as it's a different topic from booting Stephen Boyd (2): dt-bindings: cros-ec: Reorganize property availability dt-bindings: cros-ec: Add ChromeOS fingerprint binding .../bindings/chrome/google,cros-ec-fp.yaml | 97 +++++++++++++++++++ .../bindings/chrome/google,cros-ec-typec.yaml | 1 + .../bindings/extcon/extcon-usbc-cros-ec.yaml | 1 + .../i2c/google,cros-ec-i2c-tunnel.yaml | 1 + .../bindings/mfd/google,cros-ec.yaml | 38 ++++++-- .../bindings/pwm/google,cros-ec-pwm.yaml | 1 + .../regulator/google,cros-ec-regulator.yaml | 1 + .../bindings/sound/google,cros-ec-codec.yaml | 1 + 8 files changed, 132 insertions(+), 9 deletions(-) create mode 100644 Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml 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> base-commit: f2906aa863381afb0015a9eb7fefad885d4e5a56 -- https://chromeos.dev ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability 2022-06-14 19:51 [PATCH v6 0/2] dt-bindings: cros-ec: Update for fingerprint devices Stephen Boyd @ 2022-06-14 19:51 ` Stephen Boyd 2022-06-14 22:41 ` Doug Anderson 2022-06-27 21:35 ` Rob Herring 2022-06-14 19:51 ` [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding Stephen Boyd 1 sibling, 2 replies; 10+ messages in thread From: Stephen Boyd @ 2022-06-14 19:51 UTC (permalink / raw) To: Benson Leung Cc: linux-kernel, patches, Rob Herring, Krzysztof Kozlowski, devicetree, chrome-platform, Guenter Roeck, Douglas Anderson, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones Various properties in the cros-ec binding only apply to different compatible strings. For example, the interrupts and reg property are required for all cros-ec devices except for the rpmsg version. Add some conditions to update the availability of properties so that they can't be used with compatibles that don't support them. Cc: Rob Herring <robh@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/chrome/google,cros-ec-typec.yaml | 1 + .../bindings/extcon/extcon-usbc-cros-ec.yaml | 1 + .../i2c/google,cros-ec-i2c-tunnel.yaml | 1 + .../bindings/mfd/google,cros-ec.yaml | 29 +++++++++++++------ .../bindings/pwm/google,cros-ec-pwm.yaml | 1 + .../regulator/google,cros-ec-regulator.yaml | 1 + .../bindings/sound/google,cros-ec-codec.yaml | 1 + 7 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml b/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml index 2d98f7c4d3bc..adde8c44372b 100644 --- a/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml +++ b/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml @@ -37,6 +37,7 @@ examples: cros_ec: ec@0 { compatible = "google,cros-ec-spi"; reg = <0>; + interrupts = <35 0>; typec { compatible = "google,cros-ec-typec"; diff --git a/Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.yaml b/Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.yaml index 2d82b44268db..2e5b39881449 100644 --- a/Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.yaml +++ b/Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.yaml @@ -40,6 +40,7 @@ examples: cros-ec@0 { compatible = "google,cros-ec-spi"; reg = <0>; + interrupts = <44 0>; usbc_extcon0: extcon0 { compatible = "google,extcon-usbc-cros-ec"; diff --git a/Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml b/Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml index 6e1c70e9275e..cf523615f5e3 100644 --- a/Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml +++ b/Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml @@ -47,6 +47,7 @@ examples: compatible = "google,cros-ec-spi"; reg = <0>; spi-max-frequency = <5000000>; + interrupts = <99 0>; i2c-tunnel { compatible = "google,cros-ec-i2c-tunnel"; diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml index e25caf8ef9f4..178e26ab115c 100644 --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml @@ -20,19 +20,16 @@ properties: compatible: oneOf: - description: - For implementations of the EC is connected through I2C. + For implementations of the EC connected through I2C. const: google,cros-ec-i2c - description: - For implementations of the EC is connected through SPI. + For implementations of the EC connected through SPI. const: google,cros-ec-spi - description: - For implementations of the EC is connected through RPMSG. + For implementations of the EC connected through RPMSG. const: google,cros-ec-rpmsg - controller-data: - description: - SPI controller data, see bindings/spi/samsung,spi-peripheral-props.yaml - type: object + controller-data: true google,cros-ec-spi-pre-delay: description: @@ -62,8 +59,7 @@ properties: the SCP. $ref: "/schemas/types.yaml#/definitions/string" - spi-max-frequency: - description: Maximum SPI frequency of the device in Hz. + spi-max-frequency: true reg: maxItems: 1 @@ -158,12 +154,27 @@ allOf: - google,cros-ec-rpmsg then: properties: + controller-data: false google,cros-ec-spi-pre-delay: false google,cros-ec-spi-msg-delay: false spi-max-frequency: false else: $ref: /schemas/spi/spi-peripheral-props.yaml + - if: + properties: + compatible: + not: + contains: + const: google,cros-ec-rpmsg + then: + properties: + mediatek,rpmsg-name: false + + required: + - reg + - interrupts + additionalProperties: false examples: diff --git a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml index c8577bdf6c94..3afe1480df52 100644 --- a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml +++ b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml @@ -48,6 +48,7 @@ examples: cros-ec@0 { compatible = "google,cros-ec-spi"; reg = <0>; + interrupts = <101 0>; cros_ec_pwm: pwm { compatible = "google,cros-ec-pwm"; diff --git a/Documentation/devicetree/bindings/regulator/google,cros-ec-regulator.yaml b/Documentation/devicetree/bindings/regulator/google,cros-ec-regulator.yaml index 69e5402da761..0921f012c901 100644 --- a/Documentation/devicetree/bindings/regulator/google,cros-ec-regulator.yaml +++ b/Documentation/devicetree/bindings/regulator/google,cros-ec-regulator.yaml @@ -41,6 +41,7 @@ examples: reg = <0>; #address-cells = <1>; #size-cells = <0>; + interrupts = <99 0>; regulator@0 { compatible = "google,cros-ec-regulator"; diff --git a/Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml b/Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml index c3e9f3485449..67134e06765a 100644 --- a/Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml +++ b/Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml @@ -57,6 +57,7 @@ examples: cros-ec@0 { compatible = "google,cros-ec-spi"; reg = <0>; + interrupts = <93 0>; codecs { #address-cells = <2>; -- https://chromeos.dev ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability 2022-06-14 19:51 ` [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability Stephen Boyd @ 2022-06-14 22:41 ` Doug Anderson 2022-06-16 0:39 ` Stephen Boyd 2022-06-27 21:35 ` Rob Herring 1 sibling, 1 reply; 10+ messages in thread From: Doug Anderson @ 2022-06-14 22:41 UTC (permalink / raw) To: Stephen Boyd Cc: Benson Leung, LKML, patches, Rob Herring, Krzysztof Kozlowski, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, chrome-platform, Guenter Roeck, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones Hi, On Tue, Jun 14, 2022 at 12:51 PM Stephen Boyd <swboyd@chromium.org> wrote: > > Various properties in the cros-ec binding only apply to different > compatible strings. For example, the interrupts and reg property are > required for all cros-ec devices except for the rpmsg version. Add some > conditions to update the availability of properties so that they can't > be used with compatibles that don't support them. > > Cc: Rob Herring <robh@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/chrome/google,cros-ec-typec.yaml | 1 + > .../bindings/extcon/extcon-usbc-cros-ec.yaml | 1 + > .../i2c/google,cros-ec-i2c-tunnel.yaml | 1 + > .../bindings/mfd/google,cros-ec.yaml | 29 +++++++++++++------ > .../bindings/pwm/google,cros-ec-pwm.yaml | 1 + > .../regulator/google,cros-ec-regulator.yaml | 1 + > .../bindings/sound/google,cros-ec-codec.yaml | 1 + > 7 files changed, 26 insertions(+), 9 deletions(-) slight nit that from reading the subject of this patch I'd expect that it was a no-op. Just a reorganization / cleanup. In fact, it actually is more than a no-op. It enforces restrictions that should probably have always been enforced. I think it'd be better if the subject was something like "tighten property requirements" or something like that. > @@ -158,12 +154,27 @@ allOf: > - google,cros-ec-rpmsg > then: > properties: > + controller-data: false > google,cros-ec-spi-pre-delay: false > google,cros-ec-spi-msg-delay: false > spi-max-frequency: false > else: > $ref: /schemas/spi/spi-peripheral-props.yaml > > + - if: > + properties: > + compatible: > + not: > + contains: > + const: google,cros-ec-rpmsg > + then: > + properties: > + mediatek,rpmsg-name: false > + > + required: > + - reg > + - interrupts slight nit that think it would be easier to understand this bottom section if you made the "SPI" and "RPMSG" sections more symmetric to each other. I think it would be easy to just change the SPI one to say "not SPI" instead of explicitly listing "i2c" and "rpmsg". In any case, this overall looks pretty nice to me. My two requests are both pretty small nits, so either with or without fixing them: Reviewed-by: Douglas Anderson <dianders@chromium.org> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability 2022-06-14 22:41 ` Doug Anderson @ 2022-06-16 0:39 ` Stephen Boyd 0 siblings, 0 replies; 10+ messages in thread From: Stephen Boyd @ 2022-06-16 0:39 UTC (permalink / raw) To: Doug Anderson Cc: Benson Leung, LKML, patches, Rob Herring, Krzysztof Kozlowski, devicetree, chrome-platform, Guenter Roeck, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones Quoting Doug Anderson (2022-06-14 15:41:38) > > slight nit that from reading the subject of this patch I'd expect that > it was a no-op. Just a reorganization / cleanup. In fact, it actually > is more than a no-op. It enforces restrictions that should probably > have always been enforced. I think it'd be better if the subject was > something like "tighten property requirements" or something like that. Sure. It sort of got out of control but I didn't update the commit text to explain that we're enforcing reg and interrupts for i2c/spi devices. > > slight nit that think it would be easier to understand this bottom > section if you made the "SPI" and "RPMSG" sections more symmetric to > each other. I think it would be easy to just change the SPI one to say > "not SPI" instead of explicitly listing "i2c" and "rpmsg". I had done that earlier but now it has an 'else' condition after commit f412fe11c1a9 ("mfd: dt-bindings: google,cros-ec: Reference Samsung SPI bindings"), so this kept the diff smaller. > > In any case, this overall looks pretty nice to me. My two requests are > both pretty small nits, so either with or without fixing them: > > Reviewed-by: Douglas Anderson <dianders@chromium.org> But if it gets a reviewed-by tag with more diff then I'll do it ;-) ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability 2022-06-14 19:51 ` [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability Stephen Boyd 2022-06-14 22:41 ` Doug Anderson @ 2022-06-27 21:35 ` Rob Herring 1 sibling, 0 replies; 10+ messages in thread From: Rob Herring @ 2022-06-27 21:35 UTC (permalink / raw) To: Stephen Boyd Cc: Krzysztof Kozlowski, Guenter Roeck, Alexandru M Stan, Matthias Kaehlcke, chrome-platform, Benson Leung, Lee Jones, Craig Hesling, devicetree, patches, Tom Hughes, Tzung-Bi Shih, linux-kernel, Douglas Anderson On Tue, 14 Jun 2022 12:51:43 -0700, Stephen Boyd wrote: > Various properties in the cros-ec binding only apply to different > compatible strings. For example, the interrupts and reg property are > required for all cros-ec devices except for the rpmsg version. Add some > conditions to update the availability of properties so that they can't > be used with compatibles that don't support them. > > Cc: Rob Herring <robh@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/chrome/google,cros-ec-typec.yaml | 1 + > .../bindings/extcon/extcon-usbc-cros-ec.yaml | 1 + > .../i2c/google,cros-ec-i2c-tunnel.yaml | 1 + > .../bindings/mfd/google,cros-ec.yaml | 29 +++++++++++++------ > .../bindings/pwm/google,cros-ec-pwm.yaml | 1 + > .../regulator/google,cros-ec-regulator.yaml | 1 + > .../bindings/sound/google,cros-ec-codec.yaml | 1 + > 7 files changed, 26 insertions(+), 9 deletions(-) > Reviewed-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding 2022-06-14 19:51 [PATCH v6 0/2] dt-bindings: cros-ec: Update for fingerprint devices Stephen Boyd 2022-06-14 19:51 ` [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability Stephen Boyd @ 2022-06-14 19:51 ` Stephen Boyd 2022-06-14 22:41 ` Doug Anderson 1 sibling, 1 reply; 10+ messages in thread From: Stephen Boyd @ 2022-06-14 19:51 UTC (permalink / raw) To: Benson Leung Cc: linux-kernel, patches, Rob Herring, Krzysztof Kozlowski, devicetree, chrome-platform, Guenter Roeck, Douglas Anderson, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones 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/chrome/google,cros-ec-fp.yaml | 97 +++++++++++++++++++ .../bindings/mfd/google,cros-ec.yaml | 9 ++ 2 files changed, 106 insertions(+) create mode 100644 Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml diff --git a/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml b/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml new file mode 100644 index 000000000000..48c02bd4585c --- /dev/null +++ b/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml @@ -0,0 +1,97 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/chrome/google,cros-ec-fp.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ChromeOS Embedded Fingerprint Controller + +description: + Google's ChromeOS embedded fingerprint controller is a device which + implements fingerprint functionality such as unlocking a Chromebook + without typing a password. + +maintainers: + - Tom Hughes <tomhughes@chromium.org> + +select: + properties: + compatible: + contains: + const: google,cros-ec-spi + required: + - compatible + - boot0-gpios + +allOf: + - $ref: /schemas/spi/spi-peripheral-props.yaml# + +properties: + compatible: + items: + - const: google,cros-ec-fp + - const: google,cros-ec-spi + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + controller-data: true + + 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. + $ref: /schemas/types.yaml#/definitions/uint32 + default: 0 + + google,cros-ec-spi-msg-delay: + description: + This property specifies the delay in usecs between messages. + $ref: /schemas/types.yaml#/definitions/uint32 + default: 0 + + spi-max-frequency: + maximum: 3000000 + + reset-gpios: + maxItems: 1 + + boot0-gpios: + maxItems: 1 + description: Assert for bootloader mode. + + vdd-supply: true + +required: + - compatible + - reg + - interrupts + - reset-gpios + - boot0-gpios + - vdd-supply + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + #include <dt-bindings/gpio/gpio.h> + spi0 { + #address-cells = <0x1>; + #size-cells = <0x0>; + + ec@0 { + compatible = "google,cros-ec-fp", "google,cros-ec-spi"; + reg = <0x0>; + 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>; + }; + }; +... diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml index 178e26ab115c..a7453bbd7bed 100644 --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml @@ -10,6 +10,15 @@ maintainers: - Benson Leung <bleung@chromium.org> - Guenter Roeck <groeck@chromium.org> +select: + properties: + compatible: + contains: + const: google,cros-ec-spi + boot0-gpios: false + required: + - compatible + description: Google's ChromeOS EC is a microcontroller which talks to the AP and implements various functions such as keyboard and battery charging. -- https://chromeos.dev ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding 2022-06-14 19:51 ` [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding Stephen Boyd @ 2022-06-14 22:41 ` Doug Anderson 2022-06-16 0:50 ` Stephen Boyd 2022-06-27 21:57 ` Rob Herring 0 siblings, 2 replies; 10+ messages in thread From: Doug Anderson @ 2022-06-14 22:41 UTC (permalink / raw) To: Stephen Boyd Cc: Benson Leung, LKML, patches, Rob Herring, Krzysztof Kozlowski, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, chrome-platform, Guenter Roeck, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones Hi, On Tue, Jun 14, 2022 at 12:51 PM Stephen Boyd <swboyd@chromium.org> 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/chrome/google,cros-ec-fp.yaml | 97 +++++++++++++++++++ > .../bindings/mfd/google,cros-ec.yaml | 9 ++ > 2 files changed, 106 insertions(+) > create mode 100644 Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml > > diff --git a/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml b/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml > new file mode 100644 > index 000000000000..48c02bd4585c > --- /dev/null > +++ b/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml > @@ -0,0 +1,97 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/chrome/google,cros-ec-fp.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: ChromeOS Embedded Fingerprint Controller > + > +description: > + Google's ChromeOS embedded fingerprint controller is a device which > + implements fingerprint functionality such as unlocking a Chromebook > + without typing a password. > + > +maintainers: > + - Tom Hughes <tomhughes@chromium.org> > + > +select: > + properties: > + compatible: > + contains: > + const: google,cros-ec-spi > + required: > + - compatible > + - boot0-gpios I've never personally used "select" before and I'm not sure where it's documented. Without knowing anything, it seems weird to me that in this file we're matching against a compatible that's not google,cros-ec-fp. Randomly grabbing some other example that's similar (panel-lvds.yaml) looks more like what I would have expected. AKA in this file: select: properties: compatible: contains: const: google,cros-ec-fp required: - compatible ...and then in the other file: select: properties: compatible: contains: const: google,cros-ec-spi not: properties: compatible: contains: const: google,cros-ec-fp required: - compatible Of course, if one of the dt maintainers gives different advice then listen to them. ;-) -Doug ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding 2022-06-14 22:41 ` Doug Anderson @ 2022-06-16 0:50 ` Stephen Boyd 2022-06-27 21:57 ` Rob Herring 1 sibling, 0 replies; 10+ messages in thread From: Stephen Boyd @ 2022-06-16 0:50 UTC (permalink / raw) To: Doug Anderson Cc: Benson Leung, LKML, patches, Rob Herring, Krzysztof Kozlowski, devicetree, chrome-platform, Guenter Roeck, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones Quoting Doug Anderson (2022-06-14 15:41:25) > On Tue, Jun 14, 2022 at 12:51 PM Stephen Boyd <swboyd@chromium.org> wrote: > > + > > +select: > > + properties: > > + compatible: > > + contains: > > + const: google,cros-ec-spi > > + required: > > + - compatible > > + - boot0-gpios > > I've never personally used "select" before and I'm not sure where it's > documented. Without knowing anything, it seems weird to me that in > this file we're matching against a compatible that's not > google,cros-ec-fp. Randomly grabbing some other example that's similar > (panel-lvds.yaml) looks more like what I would have expected. AKA in > this file: > > select: > properties: > compatible: > contains: > const: google,cros-ec-fp > required: > - compatible > > ...and then in the other file: > > select: > properties: > compatible: > contains: > const: google,cros-ec-spi > not: > properties: > compatible: > contains: > const: google,cros-ec-fp > required: > - compatible > > > Of course, if one of the dt maintainers gives different advice then > listen to them. ;-) > I followed a pwm example, see renesas,tpu-pwm.yaml, but I suspect this works just as well. I don't really care either way so I'll defer to DT maintainers here. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding 2022-06-14 22:41 ` Doug Anderson 2022-06-16 0:50 ` Stephen Boyd @ 2022-06-27 21:57 ` Rob Herring 2022-06-29 7:29 ` Stephen Boyd 1 sibling, 1 reply; 10+ messages in thread From: Rob Herring @ 2022-06-27 21:57 UTC (permalink / raw) To: Doug Anderson Cc: Stephen Boyd, Benson Leung, LKML, patches, Krzysztof Kozlowski, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, chrome-platform, Guenter Roeck, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones On Tue, Jun 14, 2022 at 03:41:25PM -0700, Doug Anderson wrote: > Hi, > > On Tue, Jun 14, 2022 at 12:51 PM Stephen Boyd <swboyd@chromium.org> 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/chrome/google,cros-ec-fp.yaml | 97 +++++++++++++++++++ > > .../bindings/mfd/google,cros-ec.yaml | 9 ++ > > 2 files changed, 106 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml > > > > diff --git a/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml b/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml > > new file mode 100644 > > index 000000000000..48c02bd4585c > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/chrome/google,cros-ec-fp.yaml > > @@ -0,0 +1,97 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/chrome/google,cros-ec-fp.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: ChromeOS Embedded Fingerprint Controller > > + > > +description: > > + Google's ChromeOS embedded fingerprint controller is a device which > > + implements fingerprint functionality such as unlocking a Chromebook > > + without typing a password. > > + > > +maintainers: > > + - Tom Hughes <tomhughes@chromium.org> > > + > > +select: > > + properties: > > + compatible: > > + contains: > > + const: google,cros-ec-spi > > + required: > > + - compatible > > + - boot0-gpios > > I've never personally used "select" before and I'm not sure where it's > documented. Documentation/devicetree/bindings/writing-schema.rst > Without knowing anything, it seems weird to me that in > this file we're matching against a compatible that's not > google,cros-ec-fp. Randomly grabbing some other example that's similar > (panel-lvds.yaml) looks more like what I would have expected. AKA in > this file: > > select: > properties: > compatible: > contains: > const: google,cros-ec-fp > required: > - compatible > > ...and then in the other file: > > select: > properties: > compatible: > contains: > const: google,cros-ec-spi What about i2c and rpmsg variants? > not: > properties: > compatible: > contains: > const: google,cros-ec-fp > required: > - compatible That is what is needed assuming the binding stands as-is. Otherwise, boot0-gpios erroneously present or missing will give unexpected results. If we were starting from scratch, I would say you should just drop 'google,cros-ec-spi' from this binding. But I guess you want to preserve compatibility here. In that case, I think all this should be added to the existing doc with an if/then schema for conditional parts. That also avoids defining the common properties twice or moving them to a common, shared schema. Rob ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding 2022-06-27 21:57 ` Rob Herring @ 2022-06-29 7:29 ` Stephen Boyd 0 siblings, 0 replies; 10+ messages in thread From: Stephen Boyd @ 2022-06-29 7:29 UTC (permalink / raw) To: Doug Anderson, Rob Herring Cc: Benson Leung, LKML, patches, Krzysztof Kozlowski, devicetree, chrome-platform, Guenter Roeck, Craig Hesling, Tom Hughes, Alexandru M Stan, Tzung-Bi Shih, Matthias Kaehlcke, Lee Jones Quoting Rob Herring (2022-06-27 14:57:20) > > If we were starting from scratch, I would say you should just drop > 'google,cros-ec-spi' from this binding. But I guess you want to preserve > compatibility here. In that case, I think all this should be added to > the existing doc with an if/then schema for conditional parts. That also > avoids defining the common properties twice or moving them to a common, > shared schema. > I had it all combined in a previous version. Let me see if I can merge the two together (again) and fix the bugs. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-06-29 7:29 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-06-14 19:51 [PATCH v6 0/2] dt-bindings: cros-ec: Update for fingerprint devices Stephen Boyd 2022-06-14 19:51 ` [PATCH v6 1/2] dt-bindings: cros-ec: Reorganize property availability Stephen Boyd 2022-06-14 22:41 ` Doug Anderson 2022-06-16 0:39 ` Stephen Boyd 2022-06-27 21:35 ` Rob Herring 2022-06-14 19:51 ` [PATCH v6 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding Stephen Boyd 2022-06-14 22:41 ` Doug Anderson 2022-06-16 0:50 ` Stephen Boyd 2022-06-27 21:57 ` Rob Herring 2022-06-29 7:29 ` Stephen Boyd
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).