Messages in this thread | | | Date | Mon, 8 Apr 2019 11:19:39 -0700 | From | Benson Leung <> | Subject | Re: [PATCH v3 4/4] mfd: cros_ec: instantiate properly CrOS Touchpad MCU device |
| |
Hi Enric,
On Mon, Apr 08, 2019 at 11:41:41AM +0200, Enric Balletbo i Serra wrote: > Support Touchpad MCU as a special of CrOS EC devices. The current > Touchpad MCU is used on Eve Chromebook and used the same protocol as > other CrOS EC devices. > > When a MCU has touchpad support (aka EC_FEATURE_TOUCHPAD), it is > instantiated as a special CrOS EC device with device name 'cros_tp'. So > regardless of the probing order between the actual cros_ec and cros_tp, > the userspace and other kernel drivers should not confuse them. > > Signed-off-by: Wei-Ning Huang <wnhuang@google.com> > Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Reviewed-by: Benson Leung <bleung@chromium.org>
> --- > > Changes in v3: None > Changes in v2: None > > drivers/mfd/cros_ec_dev.c | 10 ++++++++++ > include/linux/mfd/cros_ec.h | 1 + > 2 files changed, 11 insertions(+) > > diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c > index 79746e817cdb..be827910e9d0 100644 > --- a/drivers/mfd/cros_ec_dev.c > +++ b/drivers/mfd/cros_ec_dev.c > @@ -659,6 +659,16 @@ static int ec_device_probe(struct platform_device *pdev) > ec_platform->ec_name = CROS_EC_DEV_ISH_NAME; > } > > + /* Check whether this is actually a Touchpad MCU rather than an EC */ > + if (cros_ec_check_features(ec, EC_FEATURE_TOUCHPAD)) { > + dev_info(dev, "CrOS Touchpad MCU detected.\n"); > + /* > + * Help userspace differentiating ECs from TP MCU, > + * regardless of the probing order. > + */ > + ec_platform->ec_name = CROS_EC_DEV_TP_NAME; > + } > + > /* > * Add the class device > * Link to the character device for creating the /dev entry > diff --git a/include/linux/mfd/cros_ec.h b/include/linux/mfd/cros_ec.h > index b393bd4e4b73..981381fbb3fd 100644 > --- a/include/linux/mfd/cros_ec.h > +++ b/include/linux/mfd/cros_ec.h > @@ -26,6 +26,7 @@ > #define CROS_EC_DEV_FP_NAME "cros_fp" > #define CROS_EC_DEV_ISH_NAME "cros_ish" > #define CROS_EC_DEV_PD_NAME "cros_pd" > +#define CROS_EC_DEV_TP_NAME "cros_tp" > > /* > * The EC is unresponsive for a time after a reboot command. Add a > -- > 2.20.1 >
-- Benson Leung Staff Software Engineer Chrome OS Kernel Google Inc. bleung@google.com Chromium OS Project bleung@chromium.org [unhandled content-type:application/pgp-signature] | |