Lines Matching defs:axp20x_pek
40 struct axp20x_pek {
92 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
96 ret = regmap_read(axp20x_pek->axp20x->regmap, AXP20X_PEK_KEY, &val);
114 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
116 return axp20x_show_attr(dev, axp20x_pek->info->startup_time,
117 axp20x_pek->info->startup_mask, buf);
124 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
126 return axp20x_show_attr(dev, axp20x_pek->info->shutdown_time,
127 axp20x_pek->info->shutdown_mask, buf);
135 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
167 ret = regmap_update_bits(axp20x_pek->axp20x->regmap, AXP20X_PEK_KEY,
179 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
181 return axp20x_store_attr(dev, axp20x_pek->info->startup_time,
182 axp20x_pek->info->startup_mask, buf, count);
189 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
191 return axp20x_store_attr(dev, axp20x_pek->info->shutdown_time,
192 axp20x_pek->info->shutdown_mask, buf, count);
210 struct axp20x_pek *axp20x_pek = input_get_drvdata(idev);
216 if (irq == axp20x_pek->irq_dbf)
218 else if (irq == axp20x_pek->irq_dbr)
226 static int axp20x_pek_probe_input_device(struct axp20x_pek *axp20x_pek,
229 struct axp20x_dev *axp20x = axp20x_pek->axp20x;
233 axp20x_pek->irq_dbr = platform_get_irq_byname(pdev, "PEK_DBR");
234 if (axp20x_pek->irq_dbr < 0)
235 return axp20x_pek->irq_dbr;
236 axp20x_pek->irq_dbr = regmap_irq_get_virq(axp20x->regmap_irqc,
237 axp20x_pek->irq_dbr);
239 axp20x_pek->irq_dbf = platform_get_irq_byname(pdev, "PEK_DBF");
240 if (axp20x_pek->irq_dbf < 0)
241 return axp20x_pek->irq_dbf;
242 axp20x_pek->irq_dbf = regmap_irq_get_virq(axp20x->regmap_irqc,
243 axp20x_pek->irq_dbf);
245 axp20x_pek->input = devm_input_allocate_device(&pdev->dev);
246 if (!axp20x_pek->input)
249 idev = axp20x_pek->input;
257 input_set_drvdata(idev, axp20x_pek);
259 error = devm_request_any_context_irq(&pdev->dev, axp20x_pek->irq_dbr,
264 axp20x_pek->irq_dbr, error);
268 error = devm_request_any_context_irq(&pdev->dev, axp20x_pek->irq_dbf,
273 axp20x_pek->irq_dbf, error);
289 static bool axp20x_pek_should_register_input(struct axp20x_pek *axp20x_pek)
292 axp20x_pek->axp20x->variant == AXP288_ID) {
310 struct axp20x_pek *axp20x_pek;
319 axp20x_pek = devm_kzalloc(&pdev->dev, sizeof(struct axp20x_pek),
321 if (!axp20x_pek)
324 axp20x_pek->axp20x = dev_get_drvdata(pdev->dev.parent);
326 if (axp20x_pek_should_register_input(axp20x_pek)) {
327 error = axp20x_pek_probe_input_device(axp20x_pek, pdev);
332 axp20x_pek->info = (struct axp20x_info *)match->driver_data;
334 platform_set_drvdata(pdev, axp20x_pek);
341 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
348 enable_irq_wake(axp20x_pek->irq_dbf);
349 enable_irq_wake(axp20x_pek->irq_dbr);
351 disable_irq(axp20x_pek->irq_dbf);
352 disable_irq(axp20x_pek->irq_dbr);
360 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
363 disable_irq_wake(axp20x_pek->irq_dbf);
364 disable_irq_wake(axp20x_pek->irq_dbr);
366 enable_irq(axp20x_pek->irq_dbf);
367 enable_irq(axp20x_pek->irq_dbr);
375 struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
377 if (axp20x_pek->axp20x->variant != AXP288_ID)
384 regmap_write(axp20x_pek->axp20x->regmap,