Lines Matching refs:pwrkey
62 struct pm8941_pwrkey *pwrkey = container_of(nb, struct pm8941_pwrkey,
69 if (pwrkey->revision == 0)
74 error = regmap_update_bits(pwrkey->regmap,
75 pwrkey->baseaddr + enable_reg,
79 dev_err(pwrkey->dev,
100 error = regmap_update_bits(pwrkey->regmap,
101 pwrkey->baseaddr + PON_PS_HOLD_RST_CTL,
105 dev_err(pwrkey->dev, "unable to set ps hold reset type: %d\n",
108 error = regmap_update_bits(pwrkey->regmap,
109 pwrkey->baseaddr + enable_reg,
113 dev_err(pwrkey->dev, "unable to re-set enable: %d\n", error);
120 struct pm8941_pwrkey *pwrkey = _data;
124 error = regmap_read(pwrkey->regmap,
125 pwrkey->baseaddr + PON_RT_STS, &sts);
129 input_report_key(pwrkey->input, pwrkey->code,
130 sts & pwrkey->data->status_bit);
131 input_sync(pwrkey->input);
138 struct pm8941_pwrkey *pwrkey = dev_get_drvdata(dev);
141 enable_irq_wake(pwrkey->irq);
148 struct pm8941_pwrkey *pwrkey = dev_get_drvdata(dev);
151 disable_irq_wake(pwrkey->irq);
161 struct pm8941_pwrkey *pwrkey;
177 pwrkey = devm_kzalloc(&pdev->dev, sizeof(*pwrkey), GFP_KERNEL);
178 if (!pwrkey)
181 pwrkey->dev = &pdev->dev;
182 pwrkey->data = of_device_get_match_data(&pdev->dev);
185 pwrkey->regmap = dev_get_regmap(parent, NULL);
186 if (!pwrkey->regmap) {
192 pwrkey->regmap = dev_get_regmap(parent->parent, NULL);
193 if (!pwrkey->regmap) {
199 "reg", &pwrkey->baseaddr);
202 &pwrkey->baseaddr);
207 pwrkey->irq = platform_get_irq(pdev, 0);
208 if (pwrkey->irq < 0)
209 return pwrkey->irq;
211 error = regmap_read(pwrkey->regmap, pwrkey->baseaddr + PON_REV2,
212 &pwrkey->revision);
219 &pwrkey->code);
223 pwrkey->code = KEY_POWER;
226 pwrkey->input = devm_input_allocate_device(&pdev->dev);
227 if (!pwrkey->input) {
232 input_set_capability(pwrkey->input, EV_KEY, pwrkey->code);
234 pwrkey->input->name = "pm8941_pwrkey";
235 pwrkey->input->phys = "pm8941_pwrkey/input0";
240 error = regmap_update_bits(pwrkey->regmap,
241 pwrkey->baseaddr + PON_DBC_CTL,
249 error = regmap_update_bits(pwrkey->regmap,
250 pwrkey->baseaddr + PON_PULL_CTL,
251 pwrkey->data->pull_up_bit,
252 pull_up ? pwrkey->data->pull_up_bit : 0);
258 error = devm_request_threaded_irq(&pdev->dev, pwrkey->irq,
261 "pm8941_pwrkey", pwrkey);
267 error = input_register_device(pwrkey->input);
274 pwrkey->reboot_notifier.notifier_call = pm8941_reboot_notify,
275 error = register_reboot_notifier(&pwrkey->reboot_notifier);
282 platform_set_drvdata(pdev, pwrkey);
290 struct pm8941_pwrkey *pwrkey = platform_get_drvdata(pdev);
292 unregister_reboot_notifier(&pwrkey->reboot_notifier);
308 { .compatible = "qcom,pm8941-pwrkey", .data = &pwrkey_data },
318 .name = "pm8941-pwrkey",