Lines Matching refs:onkey
93 struct da9063_onkey *onkey = container_of(work, in da9063_poll_on() local
96 const struct da906x_chip_config *config = onkey->config; in da9063_poll_on()
103 error = regmap_read(onkey->regmap, in da9063_poll_on()
107 dev_err(onkey->dev, in da9063_poll_on()
113 error = regmap_update_bits(onkey->regmap, in da9063_poll_on()
118 dev_err(onkey->dev, in da9063_poll_on()
123 input_report_key(onkey->input, KEY_POWER, 0); in da9063_poll_on()
124 input_sync(onkey->input); in da9063_poll_on()
133 error = regmap_read(onkey->regmap, in da9063_poll_on()
137 dev_warn(&onkey->input->dev, in da9063_poll_on()
140 error = regmap_write(onkey->regmap, in da9063_poll_on()
144 dev_warn(&onkey->input->dev, in da9063_poll_on()
151 dev_dbg(&onkey->input->dev, in da9063_poll_on()
153 error = regmap_write(onkey->regmap, in da9063_poll_on()
157 dev_err(&onkey->input->dev, in da9063_poll_on()
165 schedule_delayed_work(&onkey->work, msecs_to_jiffies(50)); in da9063_poll_on()
170 struct da9063_onkey *onkey = data; in da9063_onkey_irq_handler() local
171 const struct da906x_chip_config *config = onkey->config; in da9063_onkey_irq_handler()
175 error = regmap_read(onkey->regmap, in da9063_onkey_irq_handler()
178 if (onkey->key_power && !error && (val & config->onkey_nonkey_mask)) { in da9063_onkey_irq_handler()
179 input_report_key(onkey->input, KEY_POWER, 1); in da9063_onkey_irq_handler()
180 input_sync(onkey->input); in da9063_onkey_irq_handler()
181 schedule_delayed_work(&onkey->work, 0); in da9063_onkey_irq_handler()
182 dev_dbg(onkey->dev, "KEY_POWER pressed.\n"); in da9063_onkey_irq_handler()
184 input_report_key(onkey->input, KEY_SLEEP, 1); in da9063_onkey_irq_handler()
185 input_sync(onkey->input); in da9063_onkey_irq_handler()
186 input_report_key(onkey->input, KEY_SLEEP, 0); in da9063_onkey_irq_handler()
187 input_sync(onkey->input); in da9063_onkey_irq_handler()
188 dev_dbg(onkey->dev, "KEY_SLEEP pressed.\n"); in da9063_onkey_irq_handler()
196 struct da9063_onkey *onkey = data; in da9063_cancel_poll() local
198 cancel_delayed_work_sync(&onkey->work); in da9063_cancel_poll()
205 struct da9063_onkey *onkey; in da9063_onkey_probe() local
215 onkey = devm_kzalloc(&pdev->dev, sizeof(struct da9063_onkey), in da9063_onkey_probe()
217 if (!onkey) { in da9063_onkey_probe()
222 onkey->config = match->data; in da9063_onkey_probe()
223 onkey->dev = &pdev->dev; in da9063_onkey_probe()
225 onkey->regmap = dev_get_regmap(pdev->dev.parent, NULL); in da9063_onkey_probe()
226 if (!onkey->regmap) { in da9063_onkey_probe()
232 onkey->key_power = pdata->key_power; in da9063_onkey_probe()
234 onkey->key_power = in da9063_onkey_probe()
238 onkey->input = devm_input_allocate_device(&pdev->dev); in da9063_onkey_probe()
239 if (!onkey->input) { in da9063_onkey_probe()
244 onkey->input->name = onkey->config->name; in da9063_onkey_probe()
245 snprintf(onkey->phys, sizeof(onkey->phys), "%s/input0", in da9063_onkey_probe()
246 onkey->config->name); in da9063_onkey_probe()
247 onkey->input->phys = onkey->phys; in da9063_onkey_probe()
248 onkey->input->dev.parent = &pdev->dev; in da9063_onkey_probe()
250 if (onkey->key_power) in da9063_onkey_probe()
251 input_set_capability(onkey->input, EV_KEY, KEY_POWER); in da9063_onkey_probe()
253 input_set_capability(onkey->input, EV_KEY, KEY_SLEEP); in da9063_onkey_probe()
255 INIT_DELAYED_WORK(&onkey->work, da9063_poll_on); in da9063_onkey_probe()
257 error = devm_add_action(&pdev->dev, da9063_cancel_poll, onkey); in da9063_onkey_probe()
275 "ONKEY", onkey); in da9063_onkey_probe()
282 error = input_register_device(onkey->input); in da9063_onkey_probe()
289 platform_set_drvdata(pdev, onkey); in da9063_onkey_probe()