summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-10-18 21:17:14 -0600
committerSimon Glass <sjg@chromium.org>2015-11-19 20:13:40 -0700
commit745009c4d081a9fb5504ce3e97b39e92cbe77ef4 (patch)
tree695ac969565a22a06a78303185a117f4cc345507
parent66877b0f5fc96906d70f1264b3b8102d2156360f (diff)
downloadu-boot-imx-745009c4d081a9fb5504ce3e97b39e92cbe77ef4.zip
u-boot-imx-745009c4d081a9fb5504ce3e97b39e92cbe77ef4.tar.gz
u-boot-imx-745009c4d081a9fb5504ce3e97b39e92cbe77ef4.tar.bz2
cros_ec: Use udevice instead of cros_ec_dev for keyboard functions
In preparation for converting the cros_ec keyboard driver to driver model, adjust the cros_ec functions it will use to use a normal struct udevice. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/input/cros_ec_keyb.c4
-rw-r--r--drivers/misc/cros_ec.c14
-rw-r--r--include/cros_ec.h4
3 files changed, 13 insertions, 9 deletions
diff --git a/drivers/input/cros_ec_keyb.c b/drivers/input/cros_ec_keyb.c
index 41d8a6f..09e7cbd 100644
--- a/drivers/input/cros_ec_keyb.c
+++ b/drivers/input/cros_ec_keyb.c
@@ -54,7 +54,7 @@ static int check_for_keys(struct keyb *config,
unsigned int row, col, bit, data;
int num_keys;
- if (cros_ec_scan_keyboard(config->dev, &scan)) {
+ if (cros_ec_scan_keyboard(config->dev->dev, &scan)) {
debug("%s: keyboard scan failed\n", __func__);
return -EIO;
}
@@ -139,7 +139,7 @@ int cros_ec_kbc_check(struct input_config *input)
* may return 0 before all keys have been read from the EC.
*/
do {
- irq_pending = cros_ec_interrupt_pending(config.dev);
+ irq_pending = cros_ec_interrupt_pending(config.dev->dev);
if (irq_pending) {
num_keys = check_for_keys(&config, keys, KBC_MAX_KEYS,
&same);
diff --git a/drivers/misc/cros_ec.c b/drivers/misc/cros_ec.c
index ba36795..e3229ef 100644
--- a/drivers/misc/cros_ec.c
+++ b/drivers/misc/cros_ec.c
@@ -358,9 +358,11 @@ static int ec_command(struct cros_ec_dev *dev, uint8_t cmd, int cmd_version,
return len;
}
-int cros_ec_scan_keyboard(struct cros_ec_dev *dev, struct mbkp_keyscan *scan)
+int cros_ec_scan_keyboard(struct udevice *dev, struct mbkp_keyscan *scan)
{
- if (ec_command(dev, EC_CMD_MKBP_STATE, 0, NULL, 0, scan,
+ struct cros_ec_dev *cdev = dev_get_uclass_priv(dev);
+
+ if (ec_command(cdev, EC_CMD_MKBP_STATE, 0, NULL, 0, scan,
sizeof(scan->data)) != sizeof(scan->data))
return -1;
@@ -549,13 +551,15 @@ int cros_ec_reboot(struct cros_ec_dev *dev, enum ec_reboot_cmd cmd,
return 0;
}
-int cros_ec_interrupt_pending(struct cros_ec_dev *dev)
+int cros_ec_interrupt_pending(struct udevice *dev)
{
+ struct cros_ec_dev *cdev = dev_get_uclass_priv(dev);
+
/* no interrupt support : always poll */
- if (!dm_gpio_is_valid(&dev->ec_int))
+ if (!dm_gpio_is_valid(&cdev->ec_int))
return -ENOENT;
- return dm_gpio_get_value(&dev->ec_int);
+ return dm_gpio_get_value(&cdev->ec_int);
}
int cros_ec_info(struct cros_ec_dev *dev, struct ec_response_mkbp_info *info)
diff --git a/include/cros_ec.h b/include/cros_ec.h
index b926934..5fa5f6f 100644
--- a/include/cros_ec.h
+++ b/include/cros_ec.h
@@ -81,7 +81,7 @@ int cros_ec_read_id(struct cros_ec_dev *dev, char *id, int maxlen);
* @param scan Place to put the scan results
* @return 0 if ok, -1 on error
*/
-int cros_ec_scan_keyboard(struct cros_ec_dev *dev, struct mbkp_keyscan *scan);
+int cros_ec_scan_keyboard(struct udevice *dev, struct mbkp_keyscan *scan);
/**
* Read which image is currently running on the CROS-EC device.
@@ -125,7 +125,7 @@ int cros_ec_reboot(struct cros_ec_dev *dev, enum ec_reboot_cmd cmd,
* @param dev CROS-EC device
* @return 0 if no interrupt is pending
*/
-int cros_ec_interrupt_pending(struct cros_ec_dev *dev);
+int cros_ec_interrupt_pending(struct udevice *dev);
enum {
CROS_EC_OK,