From patchwork Thu Jan 28 08:40:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Boyd X-Patchwork-Id: 373501 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95BE3C433E0 for ; Thu, 28 Jan 2021 08:41:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 51FF164DD1 for ; Thu, 28 Jan 2021 08:41:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231733AbhA1Ik6 (ORCPT ); Thu, 28 Jan 2021 03:40:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229578AbhA1Ikz (ORCPT ); Thu, 28 Jan 2021 03:40:55 -0500 Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4C259C06174A for ; Thu, 28 Jan 2021 00:40:14 -0800 (PST) Received: by mail-pg1-x536.google.com with SMTP id o16so3834320pgg.5 for ; Thu, 28 Jan 2021 00:40:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=cJIAwStqssO4qlrJsU+DZexmUlk16AIgSgJEzjOLeeM=; b=dhqfKN/9w8VsgNPrc1AXQXAmZwOdSjzVEaYFJ8O1aFkPq3+yVdEn2hzOaOmaJWa4AB dykJLKZqrjHP9erkYh5RmFmxjAWrNe9ED1y1n8OH+8/iLZJkzURf4IEbru3xADFMN+2n cq8CbP6KSQSRCAgLl4qZkcOhE0F75C8nHEBXU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=cJIAwStqssO4qlrJsU+DZexmUlk16AIgSgJEzjOLeeM=; b=RkscmKQRuVYrGFcME1zHGStm1Qcpntfc/CC+LStVYXQgbCACyaTf9Vn6lnYvUvSajD 1ejnS1m/DYw2zLVsyntjDvgDhxD4ck1fsrq45CEMC4lwWyEYCt9swAJENR6zJdiivS6v 3b5uYWB4tAR5o0O3TyfbEvAjak7L3X1xQ07oqyiizmWkrhMT9e6rxQ8F5jhnpdbXh52W xTsZfMbX2HT7g7IgH5NcfMbmLKsSWSSCR/GGVEbSRbIyh9AjStmvam3sdJaZQL2KUnOG zEE4LVxDGLcHSsTIuFb9HbGE17vlXDIP1sK0mWgV0oLmVcv7jTuOFV353HMX+iZ0RHOw JkCQ== X-Gm-Message-State: AOAM532D8w3uMb1uEqbTl5K/wjWi8T7UC+/9T6Z3GTG08uL26iYh7Zs6 LbACZGZ0YCA5yCpQrWAWYTrGsw== X-Google-Smtp-Source: ABdhPJwdTxInMeMQs7wJ0rshDGS+Vl3qWenVzQEcjNEcW2sCGquJ2dqyyBLsunFSKhTq0+2R1e+D2w== X-Received: by 2002:a63:7051:: with SMTP id a17mr15299011pgn.26.1611823213816; Thu, 28 Jan 2021 00:40:13 -0800 (PST) Received: from smtp.gmail.com ([2620:15c:202:201:304c:5453:303a:8268]) by smtp.gmail.com with ESMTPSA id y22sm4951757pfr.163.2021.01.28.00.40.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Jan 2021 00:40:13 -0800 (PST) From: Stephen Boyd To: Jonathan Cameron Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, Dmitry Torokhov , Benson Leung , Guenter Roeck , Douglas Anderson , Gwendal Grignou , devicetree@vger.kernel.org, Rob Herring Subject: [PATCHv3 0/3] iio: Add a ChromeOS EC MKBP proximity driver Date: Thu, 28 Jan 2021 00:40:08 -0800 Message-Id: <20210128084011.3270281-1-swboyd@chromium.org> X-Mailer: git-send-email 2.30.0.280.ga3ce27912f-goog MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This is a different approach to [1] where I tried to add this proximity sensor logic to the input subsystem. Instead, we'll take the approach of making a small IIO proximity driver that parses the EC switch bitmap to find out if the front proximity sensor is detecting something or not. This allows us to treat proximity sensors as IIO devices all the time in userspace instead of handling this switch on the EC via the input subsystem and then other proximity sensors via IIO. I propose this is all merged through IIO subsystem. Please ack the first patch so it can be merged that way. Changes from v2: * Check iio clock and use IIO time if not boottime Changes from v1: * Driver moved location * Put mkbp everywhere * Fixed up DT binding to not fail and make sure is a child of cros-ec * Simplified logic for sending a message * Dropped CONFIG_OF usage * Sorted includes [1] https://lore.kernel.org/r/20201205004709.3126266-1-swboyd@chromium.org Cc: Dmitry Torokhov Cc: Benson Leung Cc: Guenter Roeck Cc: Douglas Anderson Cc: Gwendal Grignou Cc: Cc: Rob Herring Stephen Boyd (3): platform/chrome: cros_ec: Add SW_FRONT_PROXIMITY MKBP define dt-bindings: iio: Add cros ec proximity yaml doc iio: proximity: Add a ChromeOS EC MKBP proximity driver .../google,cros-ec-mkbp-proximity.yaml | 38 +++ .../bindings/mfd/google,cros-ec.yaml | 3 + drivers/iio/proximity/Kconfig | 11 + drivers/iio/proximity/Makefile | 1 + .../iio/proximity/cros_ec_mkbp_proximity.c | 245 ++++++++++++++++++ .../linux/platform_data/cros_ec_commands.h | 1 + 6 files changed, 299 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/proximity/google,cros-ec-mkbp-proximity.yaml create mode 100644 drivers/iio/proximity/cros_ec_mkbp_proximity.c base-commit: 19c329f6808995b142b3966301f217c831e7cf31