Lines Matching refs:pdata
50 struct pwrkey_drv_data *pdata = (struct pwrkey_drv_data *) data; in imx_imx_snvs_check_for_events() local
51 struct input_dev *input = pdata->input; in imx_imx_snvs_check_for_events()
54 regmap_read(pdata->snvs, SNVS_HPSR_REG, &state); in imx_imx_snvs_check_for_events()
58 if (state ^ pdata->keystate) { in imx_imx_snvs_check_for_events()
59 pdata->keystate = state; in imx_imx_snvs_check_for_events()
60 input_event(input, EV_KEY, pdata->keycode, state); in imx_imx_snvs_check_for_events()
62 pm_relax(pdata->input->dev.parent); in imx_imx_snvs_check_for_events()
67 mod_timer(&pdata->check_timer, in imx_imx_snvs_check_for_events()
75 struct pwrkey_drv_data *pdata = platform_get_drvdata(pdev); in imx_snvs_pwrkey_interrupt() local
78 pm_wakeup_event(pdata->input->dev.parent, 0); in imx_snvs_pwrkey_interrupt()
80 regmap_read(pdata->snvs, SNVS_LPSR_REG, &lp_status); in imx_snvs_pwrkey_interrupt()
82 mod_timer(&pdata->check_timer, jiffies + msecs_to_jiffies(DEBOUNCE_TIME)); in imx_snvs_pwrkey_interrupt()
85 regmap_write(pdata->snvs, SNVS_LPSR_REG, SNVS_LPSR_SPO); in imx_snvs_pwrkey_interrupt()
90 static void imx_snvs_pwrkey_act(void *pdata) in imx_snvs_pwrkey_act() argument
92 struct pwrkey_drv_data *pd = pdata; in imx_snvs_pwrkey_act()
99 struct pwrkey_drv_data *pdata = NULL; in imx_snvs_pwrkey_probe() local
109 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); in imx_snvs_pwrkey_probe()
110 if (!pdata) in imx_snvs_pwrkey_probe()
113 pdata->snvs = syscon_regmap_lookup_by_phandle(np, "regmap"); in imx_snvs_pwrkey_probe()
114 if (!pdata->snvs) { in imx_snvs_pwrkey_probe()
119 if (of_property_read_u32(np, "linux,keycode", &pdata->keycode)) { in imx_snvs_pwrkey_probe()
120 pdata->keycode = KEY_POWER; in imx_snvs_pwrkey_probe()
124 pdata->wakeup = of_property_read_bool(np, "wakeup-source"); in imx_snvs_pwrkey_probe()
126 pdata->irq = platform_get_irq(pdev, 0); in imx_snvs_pwrkey_probe()
127 if (pdata->irq < 0) { in imx_snvs_pwrkey_probe()
132 regmap_update_bits(pdata->snvs, SNVS_LPCR_REG, SNVS_LPCR_DEP_EN, SNVS_LPCR_DEP_EN); in imx_snvs_pwrkey_probe()
135 regmap_write(pdata->snvs, SNVS_LPSR_REG, SNVS_LPSR_SPO); in imx_snvs_pwrkey_probe()
137 setup_timer(&pdata->check_timer, in imx_snvs_pwrkey_probe()
138 imx_imx_snvs_check_for_events, (unsigned long) pdata); in imx_snvs_pwrkey_probe()
150 input_set_capability(input, EV_KEY, pdata->keycode); in imx_snvs_pwrkey_probe()
153 error = devm_add_action(&pdev->dev, imx_snvs_pwrkey_act, pdata); in imx_snvs_pwrkey_probe()
159 error = devm_request_irq(&pdev->dev, pdata->irq, in imx_snvs_pwrkey_probe()
175 pdata->input = input; in imx_snvs_pwrkey_probe()
176 platform_set_drvdata(pdev, pdata); in imx_snvs_pwrkey_probe()
178 device_init_wakeup(&pdev->dev, pdata->wakeup); in imx_snvs_pwrkey_probe()
186 struct pwrkey_drv_data *pdata = platform_get_drvdata(pdev); in imx_snvs_pwrkey_suspend() local
189 enable_irq_wake(pdata->irq); in imx_snvs_pwrkey_suspend()
197 struct pwrkey_drv_data *pdata = platform_get_drvdata(pdev); in imx_snvs_pwrkey_resume() local
200 disable_irq_wake(pdata->irq); in imx_snvs_pwrkey_resume()