Lines Matching refs:ec_dev
52 int cros_ec_register(struct cros_ec_device *ec_dev) in cros_ec_register() argument
54 struct device *dev = ec_dev->dev; in cros_ec_register()
57 ec_dev->max_request = sizeof(struct ec_params_hello); in cros_ec_register()
58 ec_dev->max_response = sizeof(struct ec_response_get_protocol_info); in cros_ec_register()
59 ec_dev->max_passthru = 0; in cros_ec_register()
61 ec_dev->din = devm_kzalloc(dev, ec_dev->din_size, GFP_KERNEL); in cros_ec_register()
62 if (!ec_dev->din) in cros_ec_register()
65 ec_dev->dout = devm_kzalloc(dev, ec_dev->dout_size, GFP_KERNEL); in cros_ec_register()
66 if (!ec_dev->dout) in cros_ec_register()
69 mutex_init(&ec_dev->lock); in cros_ec_register()
71 cros_ec_query_all(ec_dev); in cros_ec_register()
73 err = mfd_add_devices(ec_dev->dev, PLATFORM_DEVID_AUTO, &ec_cell, 1, in cros_ec_register()
74 NULL, ec_dev->irq, NULL); in cros_ec_register()
82 if (ec_dev->max_passthru) { in cros_ec_register()
91 err = mfd_add_devices(ec_dev->dev, PLATFORM_DEVID_AUTO, in cros_ec_register()
92 &ec_pd_cell, 1, NULL, ec_dev->irq, NULL); in cros_ec_register()
116 int cros_ec_remove(struct cros_ec_device *ec_dev) in cros_ec_remove() argument
118 mfd_remove_devices(ec_dev->dev); in cros_ec_remove()
125 int cros_ec_suspend(struct cros_ec_device *ec_dev) in cros_ec_suspend() argument
127 struct device *dev = ec_dev->dev; in cros_ec_suspend()
130 ec_dev->wake_enabled = !enable_irq_wake(ec_dev->irq); in cros_ec_suspend()
132 disable_irq(ec_dev->irq); in cros_ec_suspend()
133 ec_dev->was_wake_device = ec_dev->wake_enabled; in cros_ec_suspend()
139 int cros_ec_resume(struct cros_ec_device *ec_dev) in cros_ec_resume() argument
141 enable_irq(ec_dev->irq); in cros_ec_resume()
143 if (ec_dev->wake_enabled) { in cros_ec_resume()
144 disable_irq_wake(ec_dev->irq); in cros_ec_resume()
145 ec_dev->wake_enabled = 0; in cros_ec_resume()