History

mfd: cros_ec: Instantiate properly CrOS Touchpad MCU device

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.

Enric Balletbo i Serra committed 7 years ago

Commit 4f8f2bb1 parent 90486af2 files · +11 −0Browse files

Unified · Split

2 files
  1. drivers/mfd/cros_ec_dev.c +10 −0
  2. include/linux/mfd/cros_ec.h +1 −0
drivers/mfd/cros_ec_dev.c+10−0
@@ -442,6 +442,16 @@ static int ec_device_probe(struct platform_device *pdev) · 441 unmodified lines
442442 ec_platform->ec_name = CROS_EC_DEV_ISH_NAME;
443443 }
444444
445+ /* Check whether this is actually a Touchpad MCU rather than an EC */
446+ if (cros_ec_check_features(ec, EC_FEATURE_TOUCHPAD)) {
447+ dev_info(dev, "CrOS Touchpad MCU detected.\n");
448+ /*
449+ * Help userspace differentiating ECs from TP MCU,
450+ * regardless of the probing order.
451+ */
452+ ec_platform->ec_name = CROS_EC_DEV_TP_NAME;
453+ }
454+
445455 /*
446456 * Add the class device
447457 * Link to the character device for creating the /dev entry
include/linux/mfd/cros_ec.h+1−0
@@ -25,6 +25,7 @@ · 24 unmodified lines
2525 #define CROS_EC_DEV_NAME "cros_ec"
2626 #define CROS_EC_DEV_FP_NAME "cros_fp"
2727 #define CROS_EC_DEV_PD_NAME "cros_pd"
28+#define CROS_EC_DEV_TP_NAME "cros_tp"
2829 #define CROS_EC_DEV_ISH_NAME "cros_ish"
2930
3031 /*

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t