From nobody Wed Apr 8 12:12:32 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 43EEAC38A2D for ; Wed, 26 Oct 2022 00:36:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232530AbiJZAgx (ORCPT ); Tue, 25 Oct 2022 20:36:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231829AbiJZAgr (ORCPT ); Tue, 25 Oct 2022 20:36:47 -0400 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E434B0B3E for ; Tue, 25 Oct 2022 17:36:46 -0700 (PDT) Received: by mail-pj1-x1031.google.com with SMTP id q9-20020a17090a178900b00212fe7c6bbeso644216pja.4 for ; Tue, 25 Oct 2022 17:36:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=r98jDK+T9fL8Gv0MtBbbc/TMEUEgq4q3Fsq5WyKMM8Q=; b=nqThL+5uar8Mxqj9CHwF2R2HVpgUcLIwVIoiZ0RYFtXm1V4O4C3n1NBKIMySkM+rW1 OOjy25kQE0cZtTeeloDAoqy5pC6OgQpE5wTgBTxH6JaaZWCAtVKa/yAwTmxnUKCKe4Dx M2ZAH2QlsieCsVPrB/gbX2ZeI1CWNhx6K55os= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r98jDK+T9fL8Gv0MtBbbc/TMEUEgq4q3Fsq5WyKMM8Q=; b=3KxBEY16x1AI65znjY6f8u9JkWuKBnTOaULwsSD0c6SB9IC5raoCk0Xt8tjBytaMpg o2ixQ57ptCBjgXdqwDjWfp5cZ5xaWCbEAFiRvukV5dHkJhl4/bnwXi4X1I7d1IFf7CeA yswb63vaSiMs3kApu92KxVC3XwCjblk9jj6+iObHBR/XWJ8lUyzn6QvEtnpTjqd4t95n u3xzvuzL5IGL8+L/10iRMwH7nNCxU+W6aFYlltrsrVuJaVZR0vWQQZCM3N7DQu1XUpjL ECd7tr6ntW1GlMaq7gdK6eY2GfLltvHnvj5OExk/3PftGt9iDO5oxSsvgmLxmPqrZ0Qs /C3A== X-Gm-Message-State: ACrzQf2P9vnePy/cYKoBdxk7NTchZqORUcT3O2M4a0lJfNdzPRbu2DWs ygTSyd/Fc8olzNSbGmok8GjTxA== X-Google-Smtp-Source: AMsMyM4WssH20839y1w5BJUEVGKRr62eS2i7x3Z6lUn543Pkt4/arkwGI0QyFpPzsc+kBgERWtagxA== X-Received: by 2002:a17:902:e952:b0:17c:7aaa:c679 with SMTP id b18-20020a170902e95200b0017c7aaac679mr41322792pll.74.1666744605506; Tue, 25 Oct 2022 17:36:45 -0700 (PDT) Received: from smtp.gmail.com ([2620:15c:11a:201:c1b0:de11:3d5e:16c0]) by smtp.gmail.com with ESMTPSA id ik29-20020a170902ab1d00b001868ba9a867sm1717405plb.303.2022.10.25.17.36.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 17:36:44 -0700 (PDT) From: Stephen Boyd To: Rob Herring , Krzysztof Kozlowski Cc: linux-kernel@vger.kernel.org, patches@lists.linux.dev, Rob Herring , devicetree@vger.kernel.org, chrome-platform@lists.linux.dev, Guenter Roeck , Douglas Anderson , Craig Hesling , Tom Hughes , Alexandru M Stan , Tzung-Bi Shih , Matthias Kaehlcke , Benson Leung , Lee Jones Subject: [PATCH v7 1/2] dt-bindings: cros-ec: Reorganize and enforce property availability Date: Tue, 25 Oct 2022 17:36:40 -0700 Message-Id: <20221026003641.2688765-2-swboyd@chromium.org> X-Mailer: git-send-email 2.38.1.273.g43a17bfeac-goog In-Reply-To: <20221026003641.2688765-1-swboyd@chromium.org> References: <20221026003641.2688765-1-swboyd@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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. This reveals that many of the examples in bindings that use cros-ec were missing the interrupts property. Add the property to make those bindings whole again. Reviewed-by: Rob Herring Cc: Krzysztof Kozlowski Cc: Cc: Cc: Guenter Roeck Reviewed-by: Douglas Anderson Cc: Craig Hesling Cc: Tom Hughes Cc: Alexandru M Stan Cc: Tzung-Bi Shih Cc: Matthias Kaehlcke Cc: Benson Leung Cc: Lee Jones Signed-off-by: Stephen Boyd --- .../bindings/chrome/google,cros-ec-typec.yaml | 1 + .../chrome/google,cros-kbd-led-backlight.yaml | 1 + .../bindings/extcon/extcon-usbc-cros-ec.yaml | 1 + .../i2c/google,cros-ec-i2c-tunnel.yaml | 1 + .../bindings/mfd/google,cros-ec.yaml | 36 ++++++++++++------- .../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, 30 insertions(+), 13 deletions(-) diff --git a/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.= yaml b/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml index 50ebd8c57795..defcf1e12aa1 100644 --- a/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml +++ b/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml @@ -48,6 +48,7 @@ examples: cros_ec: ec@0 { compatible =3D "google,cros-ec-spi"; reg =3D <0>; + interrupts =3D <35 0>; =20 typec { compatible =3D "google,cros-ec-typec"; diff --git a/Documentation/devicetree/bindings/chrome/google,cros-kbd-led-b= acklight.yaml b/Documentation/devicetree/bindings/chrome/google,cros-kbd-le= d-backlight.yaml index 5b875af6a95a..40244d003c32 100644 --- a/Documentation/devicetree/bindings/chrome/google,cros-kbd-led-backligh= t.yaml +++ b/Documentation/devicetree/bindings/chrome/google,cros-kbd-led-backligh= t.yaml @@ -27,6 +27,7 @@ examples: cros_ec: ec@0 { compatible =3D "google,cros-ec-spi"; reg =3D <0>; + interrupts =3D <15 0>; =20 kbd-led-backlight { compatible =3D "google,cros-kbd-led-backlight"; diff --git a/Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.y= aml 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 =3D "google,cros-ec-spi"; reg =3D <0>; + interrupts =3D <44 0>; =20 usbc_extcon0: extcon0 { compatible =3D "google,extcon-usbc-cros-ec"; diff --git a/Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunne= l.yaml b/Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.ya= ml 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 =3D "google,cros-ec-spi"; reg =3D <0>; spi-max-frequency =3D <5000000>; + interrupts =3D <99 0>; =20 i2c-tunnel { compatible =3D "google,cros-ec-i2c-tunnel"; diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Do= cumentation/devicetree/bindings/mfd/google,cros-ec.yaml index 04962bb29576..659d3f64b550 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 =20 - controller-data: - description: - SPI controller data, see bindings/spi/samsung,spi-peripheral-props.y= aml - type: object + controller-data: true =20 google,cros-ec-spi-pre-delay: description: @@ -62,8 +59,7 @@ properties: the SCP. $ref: "/schemas/types.yaml#/definitions/string" =20 - spi-max-frequency: - description: Maximum SPI frequency of the device in Hz. + spi-max-frequency: true =20 reg: maxItems: 1 @@ -155,18 +151,32 @@ allOf: - if: properties: compatible: - contains: - enum: - - google,cros-ec-i2c - - google,cros-ec-rpmsg + not: + contains: + const: google,cros-ec-spi 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 =20 + - if: + properties: + compatible: + not: + contains: + const: google,cros-ec-rpmsg + then: + properties: + mediatek,rpmsg-name: false + + required: + - reg + - interrupts + additionalProperties: false =20 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 =3D "google,cros-ec-spi"; reg =3D <0>; + interrupts =3D <101 0>; =20 cros_ec_pwm: pwm { compatible =3D "google,cros-ec-pwm"; diff --git a/Documentation/devicetree/bindings/regulator/google,cros-ec-reg= ulator.yaml b/Documentation/devicetree/bindings/regulator/google,cros-ec-re= gulator.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 =3D <0>; #address-cells =3D <1>; #size-cells =3D <0>; + interrupts =3D <99 0>; =20 regulator@0 { compatible =3D "google,cros-ec-regulator"; diff --git a/Documentation/devicetree/bindings/sound/google,cros-ec-codec.y= aml 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 =3D "google,cros-ec-spi"; reg =3D <0>; + interrupts =3D <93 0>; =20 codecs { #address-cells =3D <2>; --=20 https://chromeos.dev From nobody Wed Apr 8 12:12:32 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BB816C38A02 for ; Wed, 26 Oct 2022 00:36:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232574AbiJZAg4 (ORCPT ); Tue, 25 Oct 2022 20:36:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230453AbiJZAgs (ORCPT ); Tue, 25 Oct 2022 20:36:48 -0400 Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8647ABD42 for ; Tue, 25 Oct 2022 17:36:47 -0700 (PDT) Received: by mail-pj1-x102f.google.com with SMTP id f5-20020a17090a4a8500b002131bb59d61so2334606pjh.1 for ; Tue, 25 Oct 2022 17:36:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7o9M7KU4VkIHlOlHu9OUDgP8BHNeP5A3lj7/KBP6MkM=; b=kFhmSao+3OKJQW3idOU2E/AVTPoknHK6CowE9bpV0senKL4UHeXg+Ap2hdTeBxiM8U j0ofHVR1SbI5TlYKqMazdfDpVGUC7DFoxrGyjVYn2Hjb6ZjzPm72B5+SvFv78TvPlRgZ CGDtw2fsGRx80b1UWZmJACMIjPtauam0QTrcQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7o9M7KU4VkIHlOlHu9OUDgP8BHNeP5A3lj7/KBP6MkM=; b=BqsYf+Il/LhDFmDD5cL5r9T+XBMbhqZ5VjyC6V7X3SD6GlPJ95pIbQCxjY0vUvkv1W +86NRXWhJ3liHymfGYuKm0nk3rBHes3u3QR3V4syW5KF6Ntba9o/fBJ0HCWhuP39haLY XgaIWP/MTUS3OavngaNUSDQhG4wJ5RkWVbdg01COoyB/pnJJohQ366cQONohTZWiG2GY +U0lcpKVuusRaDjjpv69hOuOiD6x0OoQKU+ETapCWGGoqmf4dsWRmYt+dvnpADu1MFH5 CLLNjaNRq9CscimbtCGyhEmBhMC6yfDHb82NntS1zS+sW/yLK/2APdtcTlMi20I7cHMk i6NA== X-Gm-Message-State: ACrzQf0tggLu/3Wyf7u6emKOXpT7dCGxJ8O/er2/F1x95SY10nPEwM5I 32RGBHuLMNAs/eErWua1KcrJGQ== X-Google-Smtp-Source: AMsMyM7/cm23zoDs3NnMPXi2JgJMk+3YKnEgib7FoJKI2NWceBzcR55vJo8kkhdx3yhRf89ohNjsxw== X-Received: by 2002:a17:902:b708:b0:184:3921:df30 with SMTP id d8-20020a170902b70800b001843921df30mr41796671pls.43.1666744607237; Tue, 25 Oct 2022 17:36:47 -0700 (PDT) Received: from smtp.gmail.com ([2620:15c:11a:201:c1b0:de11:3d5e:16c0]) by smtp.gmail.com with ESMTPSA id ik29-20020a170902ab1d00b001868ba9a867sm1717405plb.303.2022.10.25.17.36.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 17:36:46 -0700 (PDT) From: Stephen Boyd To: Rob Herring , Krzysztof Kozlowski Cc: linux-kernel@vger.kernel.org, patches@lists.linux.dev, devicetree@vger.kernel.org, chrome-platform@lists.linux.dev, Guenter Roeck , Douglas Anderson , Craig Hesling , Tom Hughes , Alexandru M Stan , Tzung-Bi Shih , Matthias Kaehlcke , Benson Leung , Lee Jones Subject: [PATCH v7 2/2] dt-bindings: cros-ec: Add ChromeOS fingerprint binding Date: Tue, 25 Oct 2022 17:36:41 -0700 Message-Id: <20221026003641.2688765-3-swboyd@chromium.org> X-Mailer: git-send-email 2.38.1.273.g43a17bfeac-goog In-Reply-To: <20221026003641.2688765-1-swboyd@chromium.org> References: <20221026003641.2688765-1-swboyd@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 Cc: Krzysztof Kozlowski Cc: Cc: Cc: Guenter Roeck Cc: Douglas Anderson Cc: Craig Hesling Cc: Tom Hughes Cc: Alexandru M Stan Cc: Tzung-Bi Shih Cc: Matthias Kaehlcke Cc: Benson Leung Cc: Lee Jones Signed-off-by: Stephen Boyd Reviewed-by: Rob Herring --- .../bindings/mfd/google,cros-ec.yaml | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Do= cumentation/devicetree/bindings/mfd/google,cros-ec.yaml index 659d3f64b550..3d5efa5578d1 100644 --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml @@ -25,6 +25,11 @@ properties: - description: For implementations of the EC connected through SPI. const: google,cros-ec-spi + - description: + For implementations of the FPMCU connected through SPI. + items: + - const: google,cros-ec-fp + - const: google,cros-ec-spi - description: For implementations of the EC connected through RPMSG. const: google,cros-ec-rpmsg @@ -67,6 +72,15 @@ properties: interrupts: maxItems: 1 =20 + reset-gpios: + maxItems: 1 + + boot0-gpios: + maxItems: 1 + description: Assert for bootloader mode. + + vdd-supply: true + wakeup-source: description: Button can wake-up the system. =20 @@ -177,6 +191,41 @@ allOf: - reg - interrupts =20 + - if: + properties: + compatible: + contains: + const: google,cros-ec-fp + then: + properties: + '#address-cells': false + '#size-cells': false + typec: false + ec-pwm: false + kbd-led-backlight: false + keyboard-controller: false + proximity: false + codecs: false + cbas: false + + patternProperties: + "^i2c-tunnel[0-9]*$": false + "^regulator@[0-9]+$": false + "^extcon[0-9]*$": false + + # Using additionalProperties: false here and + # listing true properties doesn't work + + required: + - reset-gpios + - boot0-gpios + - vdd-supply + else: + properties: + reset-gpios: false + boot0-gpios: false + vdd-supply: false + additionalProperties: false =20 examples: @@ -232,4 +281,22 @@ examples: compatible =3D "google,cros-ec-rpmsg"; }; }; + + # Example for FPMCU + - | + spi0 { + #address-cells =3D <0x1>; + #size-cells =3D <0x0>; + + ec@0 { + compatible =3D "google,cros-ec-fp", "google,cros-ec-spi"; + reg =3D <0x0>; + interrupt-parent =3D <&gpio_controller>; + interrupts =3D <4 IRQ_TYPE_LEVEL_LOW>; + spi-max-frequency =3D <3000000>; + reset-gpios =3D <&gpio_controller 5 GPIO_ACTIVE_LOW>; + boot0-gpios =3D <&gpio_controller 10 GPIO_ACTIVE_HIGH>; + vdd-supply =3D <&pp3300_fp_mcu>; + }; + }; ... --=20 https://chromeos.dev