Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1256099ybl; Fri, 23 Aug 2019 16:18:47 -0700 (PDT) X-Google-Smtp-Source: APXvYqzvSK1tkSoc6zf7H5WPb81vgJbrMSQWGhUmnGyGCbqZt1bewpavbeIDpqaNFRHG7f6736Bu X-Received: by 2002:a62:fb18:: with SMTP id x24mr7787679pfm.231.1566602326973; Fri, 23 Aug 2019 16:18:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566602326; cv=none; d=google.com; s=arc-20160816; b=YC0Sgqi5xw/7dbCvGo5+lkd0dbFuy+hK6xH3p0aw4lyHObp1XeJQ4m0vJS4DMGjX/n zJZGZ1u6FHh7CmfMIkJuvcxKhlLdxlJVlzxNitzEuKsM8oVg6wnRsxPcGbOZepbur2zS OLFJXu5NBUt0OLnzMsdiyjKE6VbNkB8hbJXcjhnWmPDQEKv/vZXQQJKX5OKYZgbPILZQ kfsUuiYw57QA8/a3cpmnsY413BFb+3c6L5IVKCyyFcYo+gi6eubXNlzxm2PSuV6hUQlO 6BDr73bJFYlMaRV5fIABpm4lHAzqMEkG7Ektf1wIA3NrDfIL+bOttDogp89YueasJtjx aQNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=t46BwjSMTSBe0JRCN+yQo5P+0EOKQcnMtudNGQI0fvQ=; b=NGFWtk+FOKc94abBOgKmM4WwrMZ1FIqyV+YsbDErdvhkAzT84yai0iDPbBZWr4sTnz vjGTDgHZiBVsvr3+9tZandEaD+Q2Qeb257pTn6mWv8C/C6wYbDNl3WkNlMJxAEEg7kbh sXFGuUxDwCR2h8gV37qq9DMfyF9fv4Adgro71YHSt42wPjDLeUiUcDSOaHPKkHkljUhh sbAfebC6SLGNLOOy+iJBBjEDPJ9zBsUgmjhs/fsN0kO+KjVlSq/PNoCIqivpVQLtCPj0 WWxDpPLDQYOAO6SW2FtdeJULjSwdqdwoF3Rw+35gMHM9ns1E1puh35nNIl63/Z5lp3XZ rn9g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b14si2993549pgi.587.2019.08.23.16.18.32; Fri, 23 Aug 2019 16:18:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389308AbfHWMxu (ORCPT + 99 others); Fri, 23 Aug 2019 08:53:50 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:46222 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731848AbfHWMxu (ORCPT ); Fri, 23 Aug 2019 08:53:50 -0400 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: eballetbo) with ESMTPSA id 558AF28D311 From: Enric Balletbo i Serra To: linux-kernel@vger.kernel.org Cc: Jonathan Corbet , Krzysztof Kozlowski , Will Deacon , MyungJoo Ham , Chanwoo Choi , Benson Leung , Guenter Roeck , Jonathan Cameron , Dmitry Torokhov , Mauro Carvalho Chehab , Lee Jones , Sebastian Reichel , Thierry Reding , Alexandre Belloni , Liam Girdwood , Mark Brown , Neil Armstrong , Greg Kroah-Hartman , Collabora kernel ML Subject: [PATCH v6 00/11] Move part of cros-ec out of MFD subsystem Date: Fri, 23 Aug 2019 14:53:20 +0200 Message-Id: <20190823125331.5070-1-enric.balletbo@collabora.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Now that rc1 is released is time to send another patchset rebased on top. This is an attempt to clean up a bit more the cros-ec driver to have a better separation on what is part of the MFD subsystem and what is part of platform/chrome. The major changes introduced by this patchset are: 1. Move the core driver to platform/chrome, as is not really related to an MFD device driver. 2. Create a new misc chardev driver to replace the chardev bits from cros-ec-dev (MFD) 3. Added some convenience structs on cros-ec-dev (MFD) to easy add more subdrivers avoiding to add more boiler plate. Once applied we have moved all the code to platform/chrome except the cros-ec-dev driver, which is the one that instantiates the different subdrivers as cells of the MFD driver. I tested the following patches on Veyron, Kevin, Samus, Peach Pi and Peach Pit without noticing any problem, but they would need more tests. Thanks, Enric Changes in v6: - Move cros_ec_chardev.h to include/linux/platform_data - Add a break statement once the MCU type has been determined (Lee Jones) - Improve patch description stating the reason of the change (Lee Jones) Changes in v5: - Prefix the versions strings with CROS_EC_DEV_VERSION (Gwendal) Changes in v4: - Rebase on top of for-mfd-next to avoid conflicts. Changes in v3: - Collect more acks an tested-by - Fix 'linux/mfd/cros_ec.h' is not exported (reported by lkp) - Use mfd_add_hotplug_devices helper (Gwendal) - Add a new patch to use mfd_add_hoplug_devices to register subdevices Changes in v2: - Collect acks received. - Remove '[PATCH 07/10] mfd: cros_ec: Update with SPDX Licence identifier and fix description' to avoid conflicts with some tree-wide patches that actually updates the Licence identifier. - Add '[PATCH 10/10] arm/arm64: defconfig: Update configs to use the new CROS_EC options' to update the defconfigs after change some config symbols. - Remove the list, and the lock, as are not needed (Greg Kroah-Hartman) - Remove dev_info in probe, anyway we will see the chardev or not if the probe fails (Greg Kroah-Hartman) Enric Balletbo i Serra (11): mfd / platform: cros_ec: Handle chained ECs as platform devices mfd / platform: cros_ec: Move cros-ec core driver out from MFD mfd / platform: cros_ec: Miscellaneous character device to talk with the EC mfd: cros_ec: Switch to use the new cros-ec-chardev driver mfd / platform: cros_ec: Rename config to a better name mfd / platform: cros_ec: Reorganize platform and mfd includes mfd: cros_ec: Use kzalloc and cros_ec_cmd_xfer_status helper mfd: cros_ec: Add convenience struct to define dedicated CrOS EC MCUs mfd: cros_ec: Add convenience struct to define autodetectable CrOS EC subdevices mfd: cros_ec: Use mfd_add_hotplug_devices() helper arm/arm64: defconfig: Update configs to use the new CROS_EC options arch/arm/configs/exynos_defconfig | 6 +- arch/arm/configs/multi_v7_defconfig | 6 +- arch/arm/configs/pxa_defconfig | 4 +- arch/arm/configs/tegra_defconfig | 2 +- arch/arm64/configs/defconfig | 6 +- drivers/extcon/Kconfig | 2 +- drivers/extcon/extcon-usbc-cros-ec.c | 3 +- drivers/hid/Kconfig | 2 +- drivers/hid/hid-google-hammer.c | 4 +- drivers/i2c/busses/Kconfig | 2 +- drivers/i2c/busses/i2c-cros-ec-tunnel.c | 4 +- drivers/iio/accel/cros_ec_accel_legacy.c | 3 +- drivers/iio/common/cros_ec_sensors/Kconfig | 2 +- .../cros_ec_sensors/cros_ec_lid_angle.c | 3 +- .../common/cros_ec_sensors/cros_ec_sensors.c | 3 +- .../cros_ec_sensors/cros_ec_sensors_core.c | 3 +- drivers/iio/light/cros_ec_light_prox.c | 3 +- drivers/iio/pressure/cros_ec_baro.c | 3 +- drivers/input/keyboard/Kconfig | 2 +- drivers/input/keyboard/cros_ec_keyb.c | 4 +- drivers/media/platform/Kconfig | 3 +- .../media/platform/cros-ec-cec/cros-ec-cec.c | 5 +- drivers/mfd/Kconfig | 26 +- drivers/mfd/Makefile | 4 +- drivers/mfd/cros_ec_dev.c | 463 ++++++------------ drivers/platform/chrome/Kconfig | 50 +- drivers/platform/chrome/Makefile | 2 + drivers/{mfd => platform/chrome}/cros_ec.c | 64 +-- drivers/platform/chrome/cros_ec_chardev.c | 252 ++++++++++ drivers/platform/chrome/cros_ec_debugfs.c | 3 +- drivers/platform/chrome/cros_ec_i2c.c | 12 +- drivers/platform/chrome/cros_ec_ishtp.c | 5 +- drivers/platform/chrome/cros_ec_lightbar.c | 3 +- drivers/platform/chrome/cros_ec_lpc.c | 7 +- drivers/platform/chrome/cros_ec_proto.c | 3 +- drivers/platform/chrome/cros_ec_rpmsg.c | 6 +- drivers/platform/chrome/cros_ec_spi.c | 12 +- drivers/platform/chrome/cros_ec_sysfs.c | 3 +- drivers/platform/chrome/cros_ec_trace.c | 2 +- drivers/platform/chrome/cros_ec_trace.h | 4 +- drivers/platform/chrome/cros_ec_vbc.c | 3 +- drivers/platform/chrome/cros_usbpd_logger.c | 5 +- drivers/power/supply/Kconfig | 2 +- drivers/power/supply/cros_usbpd-charger.c | 5 +- drivers/pwm/Kconfig | 2 +- drivers/pwm/pwm-cros-ec.c | 4 +- drivers/rtc/Kconfig | 2 +- drivers/rtc/rtc-cros-ec.c | 3 +- include/Kbuild | 2 +- .../linux/iio/common/cros_ec_sensors_core.h | 3 +- include/linux/mfd/cros_ec.h | 292 ----------- .../linux/platform_data/cros_ec_chardev.h | 12 +- .../{mfd => platform_data}/cros_ec_commands.h | 0 include/linux/platform_data/cros_ec_proto.h | 319 ++++++++++++ sound/soc/codecs/Kconfig | 4 +- sound/soc/codecs/cros_ec_codec.c | 4 +- sound/soc/qcom/Kconfig | 2 +- 57 files changed, 907 insertions(+), 753 deletions(-) rename drivers/{mfd => platform/chrome}/cros_ec.c (84%) create mode 100644 drivers/platform/chrome/cros_ec_chardev.c rename drivers/mfd/cros_ec_dev.h => include/linux/platform_data/cros_ec_chardev.h (79%) rename include/linux/{mfd => platform_data}/cros_ec_commands.h (100%) create mode 100644 include/linux/platform_data/cros_ec_proto.h -- 2.20.1