Lines Matching +full:push +full:- +full:button
1 // SPDX-License-Identifier: GPL-2.0
3 // Driver for TPS65219 Push Button
5 // Copyright (C) 2022 BayLibre Incorporated - https://www.baylibre.com/
28 input_report_key(pwr->idev, KEY_POWER, 1); in tps65219_pb_push_irq()
29 pm_wakeup_event(pwr->dev, 0); in tps65219_pb_push_irq()
30 input_sync(pwr->idev); in tps65219_pb_push_irq()
39 input_report_key(pwr->idev, KEY_POWER, 0); in tps65219_pb_release_irq()
40 input_sync(pwr->idev); in tps65219_pb_release_irq()
47 struct tps65219 *tps = dev_get_drvdata(pdev->dev.parent); in tps65219_pb_probe()
48 struct device *dev = &pdev->dev; in tps65219_pb_probe()
57 return -ENOMEM; in tps65219_pb_probe()
61 return -ENOMEM; in tps65219_pb_probe()
63 idev->name = pdev->name; in tps65219_pb_probe()
64 snprintf(pwr->phys, sizeof(pwr->phys), "%s/input0", in tps65219_pb_probe()
65 pdev->name); in tps65219_pb_probe()
66 idev->phys = pwr->phys; in tps65219_pb_probe()
67 idev->id.bustype = BUS_I2C; in tps65219_pb_probe()
71 pwr->dev = dev; in tps65219_pb_probe()
72 pwr->idev = idev; in tps65219_pb_probe()
77 return -EINVAL; in tps65219_pb_probe()
81 return -EINVAL; in tps65219_pb_probe()
86 dev->init_name, pwr); in tps65219_pb_probe()
88 dev_err(dev, "failed to request push IRQ #%d: %d\n", push_irq, in tps65219_pb_probe()
96 dev->init_name, pwr); in tps65219_pb_probe()
105 dev_err(dev, "Can't register power button: %d\n", error); in tps65219_pb_probe()
110 regmap_clear_bits(tps->regmap, TPS65219_REG_MASK_CONFIG, in tps65219_pb_probe()
114 regmap_update_bits(tps->regmap, TPS65219_REG_MFP_2_CONFIG, in tps65219_pb_probe()
122 struct tps65219 *tps = dev_get_drvdata(pdev->dev.parent); in tps65219_pb_remove()
126 ret = regmap_set_bits(tps->regmap, TPS65219_REG_MASK_CONFIG, in tps65219_pb_remove()
129 dev_warn(&pdev->dev, "Failed to disable irq (%pe)\n", ERR_PTR(ret)); in tps65219_pb_remove()
133 { "tps65219-pwrbutton", },
148 MODULE_DESCRIPTION("TPS65219 Power Button");
150 MODULE_AUTHOR("Markus Schneider-Pargmann <msp@baylibre.com");