Lines Matching refs:ec
46 static int ec_get_version(struct cros_ec_dev *ec, char *str, int maxlen) in ec_get_version() argument
60 msg->command = EC_CMD_GET_VERSION + ec->cmd_offset; in ec_get_version()
64 ret = cros_ec_cmd_xfer(ec->ec_dev, msg); in ec_get_version()
93 struct cros_ec_dev *ec = container_of(inode->i_cdev, in ec_device_open() local
95 filp->private_data = ec; in ec_device_open()
108 struct cros_ec_dev *ec = filp->private_data; in ec_device_read() local
117 ret = ec_get_version(ec, msg, sizeof(msg)); in ec_device_read()
131 static long ec_device_ioctl_xcmd(struct cros_ec_dev *ec, void __user *arg) in ec_device_ioctl_xcmd() argument
150 s_cmd->command += ec->cmd_offset; in ec_device_ioctl_xcmd()
151 ret = cros_ec_cmd_xfer(ec->ec_dev, s_cmd); in ec_device_ioctl_xcmd()
163 static long ec_device_ioctl_readmem(struct cros_ec_dev *ec, void __user *arg) in ec_device_ioctl_readmem() argument
165 struct cros_ec_device *ec_dev = ec->ec_dev; in ec_device_ioctl_readmem()
190 struct cros_ec_dev *ec = filp->private_data; in ec_device_ioctl() local
197 return ec_device_ioctl_xcmd(ec, (void __user *)arg); in ec_device_ioctl()
199 return ec_device_ioctl_readmem(ec, (void __user *)arg); in ec_device_ioctl()
215 struct cros_ec_dev *ec = container_of(dev, struct cros_ec_dev, in __remove() local
217 kfree(ec); in __remove()
226 struct cros_ec_dev *ec = kzalloc(sizeof(*ec), GFP_KERNEL); in ec_device_probe() local
228 if (!ec) in ec_device_probe()
231 dev_set_drvdata(dev, ec); in ec_device_probe()
232 ec->ec_dev = dev_get_drvdata(dev->parent); in ec_device_probe()
233 ec->dev = dev; in ec_device_probe()
234 ec->cmd_offset = ec_platform->cmd_offset; in ec_device_probe()
235 device_initialize(&ec->class_dev); in ec_device_probe()
236 cdev_init(&ec->cdev, &fops); in ec_device_probe()
243 ec->cdev.kobj.parent = &ec->class_dev.kobj; in ec_device_probe()
244 retval = cdev_add(&ec->cdev, devno, 1); in ec_device_probe()
255 ec->class_dev.devt = ec->cdev.dev; in ec_device_probe()
256 ec->class_dev.class = &cros_class; in ec_device_probe()
257 ec->class_dev.parent = dev; in ec_device_probe()
258 ec->class_dev.release = __remove; in ec_device_probe()
260 retval = dev_set_name(&ec->class_dev, "%s", ec_platform->ec_name); in ec_device_probe()
266 retval = device_add(&ec->class_dev); in ec_device_probe()
277 cdev_del(&ec->cdev); in ec_device_probe()
279 kfree(ec); in ec_device_probe()
285 struct cros_ec_dev *ec = dev_get_drvdata(&pdev->dev); in ec_device_remove() local
286 cdev_del(&ec->cdev); in ec_device_remove()
287 device_unregister(&ec->class_dev); in ec_device_remove()