Lines Matching refs:pwrkey

68 	struct pm8941_pwrkey *pwrkey = container_of(nb, struct pm8941_pwrkey,  in pm8941_reboot_notify()  local
75 if (pwrkey->revision == 0) in pm8941_reboot_notify()
80 error = regmap_update_bits(pwrkey->regmap, in pm8941_reboot_notify()
81 pwrkey->baseaddr + enable_reg, in pm8941_reboot_notify()
85 dev_err(pwrkey->dev, in pm8941_reboot_notify()
106 error = regmap_update_bits(pwrkey->regmap, in pm8941_reboot_notify()
107 pwrkey->baseaddr + PON_PS_HOLD_RST_CTL, in pm8941_reboot_notify()
111 dev_err(pwrkey->dev, "unable to set ps hold reset type: %d\n", in pm8941_reboot_notify()
114 error = regmap_update_bits(pwrkey->regmap, in pm8941_reboot_notify()
115 pwrkey->baseaddr + enable_reg, in pm8941_reboot_notify()
119 dev_err(pwrkey->dev, "unable to re-set enable: %d\n", error); in pm8941_reboot_notify()
126 struct pm8941_pwrkey *pwrkey = _data; in pm8941_pwrkey_irq() local
130 error = regmap_read(pwrkey->regmap, in pm8941_pwrkey_irq()
131 pwrkey->baseaddr + PON_RT_STS, &sts); in pm8941_pwrkey_irq()
135 input_report_key(pwrkey->input, pwrkey->code, in pm8941_pwrkey_irq()
136 sts & pwrkey->data->status_bit); in pm8941_pwrkey_irq()
137 input_sync(pwrkey->input); in pm8941_pwrkey_irq()
144 struct pm8941_pwrkey *pwrkey = dev_get_drvdata(dev); in pm8941_pwrkey_suspend() local
147 enable_irq_wake(pwrkey->irq); in pm8941_pwrkey_suspend()
154 struct pm8941_pwrkey *pwrkey = dev_get_drvdata(dev); in pm8941_pwrkey_resume() local
157 disable_irq_wake(pwrkey->irq); in pm8941_pwrkey_resume()
167 struct pm8941_pwrkey *pwrkey; in pm8941_pwrkey_probe() local
183 pwrkey = devm_kzalloc(&pdev->dev, sizeof(*pwrkey), GFP_KERNEL); in pm8941_pwrkey_probe()
184 if (!pwrkey) in pm8941_pwrkey_probe()
187 pwrkey->dev = &pdev->dev; in pm8941_pwrkey_probe()
188 pwrkey->data = of_device_get_match_data(&pdev->dev); in pm8941_pwrkey_probe()
191 pwrkey->regmap = dev_get_regmap(parent, NULL); in pm8941_pwrkey_probe()
192 if (!pwrkey->regmap) { in pm8941_pwrkey_probe()
198 pwrkey->regmap = dev_get_regmap(parent->parent, NULL); in pm8941_pwrkey_probe()
199 if (!pwrkey->regmap) { in pm8941_pwrkey_probe()
205 "reg", &pwrkey->baseaddr); in pm8941_pwrkey_probe()
208 &pwrkey->baseaddr); in pm8941_pwrkey_probe()
213 pwrkey->irq = platform_get_irq(pdev, 0); in pm8941_pwrkey_probe()
214 if (pwrkey->irq < 0) in pm8941_pwrkey_probe()
215 return pwrkey->irq; in pm8941_pwrkey_probe()
217 error = regmap_read(pwrkey->regmap, pwrkey->baseaddr + PON_REV2, in pm8941_pwrkey_probe()
218 &pwrkey->revision); in pm8941_pwrkey_probe()
225 &pwrkey->code); in pm8941_pwrkey_probe()
229 pwrkey->code = KEY_POWER; in pm8941_pwrkey_probe()
232 pwrkey->input = devm_input_allocate_device(&pdev->dev); in pm8941_pwrkey_probe()
233 if (!pwrkey->input) { in pm8941_pwrkey_probe()
238 input_set_capability(pwrkey->input, EV_KEY, pwrkey->code); in pm8941_pwrkey_probe()
240 pwrkey->input->name = pwrkey->data->name; in pm8941_pwrkey_probe()
241 pwrkey->input->phys = pwrkey->data->phys; in pm8941_pwrkey_probe()
243 if (pwrkey->data->supports_debounce_config) { in pm8941_pwrkey_probe()
247 error = regmap_update_bits(pwrkey->regmap, in pm8941_pwrkey_probe()
248 pwrkey->baseaddr + PON_DBC_CTL, in pm8941_pwrkey_probe()
258 if (pwrkey->data->pull_up_bit) { in pm8941_pwrkey_probe()
259 error = regmap_update_bits(pwrkey->regmap, in pm8941_pwrkey_probe()
260 pwrkey->baseaddr + PON_PULL_CTL, in pm8941_pwrkey_probe()
261 pwrkey->data->pull_up_bit, in pm8941_pwrkey_probe()
262 pull_up ? pwrkey->data->pull_up_bit : in pm8941_pwrkey_probe()
270 error = devm_request_threaded_irq(&pdev->dev, pwrkey->irq, in pm8941_pwrkey_probe()
273 pwrkey->data->name, pwrkey); in pm8941_pwrkey_probe()
279 error = input_register_device(pwrkey->input); in pm8941_pwrkey_probe()
286 if (pwrkey->data->supports_ps_hold_poff_config) { in pm8941_pwrkey_probe()
287 pwrkey->reboot_notifier.notifier_call = pm8941_reboot_notify; in pm8941_pwrkey_probe()
288 error = register_reboot_notifier(&pwrkey->reboot_notifier); in pm8941_pwrkey_probe()
296 platform_set_drvdata(pdev, pwrkey); in pm8941_pwrkey_probe()
304 struct pm8941_pwrkey *pwrkey = platform_get_drvdata(pdev); in pm8941_pwrkey_remove() local
306 if (pwrkey->data->supports_ps_hold_poff_config) in pm8941_pwrkey_remove()
307 unregister_reboot_notifier(&pwrkey->reboot_notifier); in pm8941_pwrkey_remove()