Lines Matching refs:pdata
35 const struct rotary_encoder_platform_data *pdata; member
49 static int rotary_encoder_get_state(const struct rotary_encoder_platform_data *pdata) in rotary_encoder_get_state() argument
51 int a = !!gpio_get_value(pdata->gpio_a); in rotary_encoder_get_state()
52 int b = !!gpio_get_value(pdata->gpio_b); in rotary_encoder_get_state()
54 a ^= pdata->inverted_a; in rotary_encoder_get_state()
55 b ^= pdata->inverted_b; in rotary_encoder_get_state()
62 const struct rotary_encoder_platform_data *pdata = encoder->pdata; in rotary_encoder_report_event() local
64 if (pdata->relative_axis) { in rotary_encoder_report_event()
66 pdata->axis, encoder->dir ? -1 : 1); in rotary_encoder_report_event()
72 if (pdata->rollover) in rotary_encoder_report_event()
73 pos += pdata->steps; in rotary_encoder_report_event()
78 if (pdata->rollover || pos < pdata->steps) in rotary_encoder_report_event()
82 if (pdata->rollover) in rotary_encoder_report_event()
83 pos %= pdata->steps; in rotary_encoder_report_event()
86 input_report_abs(encoder->input, pdata->axis, encoder->pos); in rotary_encoder_report_event()
97 state = rotary_encoder_get_state(encoder->pdata); in rotary_encoder_irq()
126 state = rotary_encoder_get_state(encoder->pdata); in rotary_encoder_half_period_irq()
152 state = rotary_encoder_get_state(encoder->pdata); in rotary_encoder_quarter_period_irq()
207 struct rotary_encoder_platform_data *pdata; in rotary_encoder_parse_dt() local
214 pdata = kzalloc(sizeof(struct rotary_encoder_platform_data), in rotary_encoder_parse_dt()
216 if (!pdata) in rotary_encoder_parse_dt()
219 of_property_read_u32(np, "rotary-encoder,steps", &pdata->steps); in rotary_encoder_parse_dt()
220 of_property_read_u32(np, "linux,axis", &pdata->axis); in rotary_encoder_parse_dt()
222 pdata->gpio_a = of_get_gpio_flags(np, 0, &flags); in rotary_encoder_parse_dt()
223 pdata->inverted_a = flags & OF_GPIO_ACTIVE_LOW; in rotary_encoder_parse_dt()
225 pdata->gpio_b = of_get_gpio_flags(np, 1, &flags); in rotary_encoder_parse_dt()
226 pdata->inverted_b = flags & OF_GPIO_ACTIVE_LOW; in rotary_encoder_parse_dt()
228 pdata->relative_axis = in rotary_encoder_parse_dt()
230 pdata->rollover = of_property_read_bool(np, "rotary-encoder,rollover"); in rotary_encoder_parse_dt()
233 &pdata->steps_per_period); in rotary_encoder_parse_dt()
241 pdata->steps_per_period = 2; in rotary_encoder_parse_dt()
244 pdata->steps_per_period = 1; in rotary_encoder_parse_dt()
248 pdata->wakeup_source = of_property_read_bool(np, "wakeup-source"); in rotary_encoder_parse_dt()
250 return pdata; in rotary_encoder_parse_dt()
263 const struct rotary_encoder_platform_data *pdata = dev_get_platdata(dev); in rotary_encoder_probe() local
269 if (!pdata) { in rotary_encoder_probe()
270 pdata = rotary_encoder_parse_dt(dev); in rotary_encoder_probe()
271 if (IS_ERR(pdata)) in rotary_encoder_probe()
272 return PTR_ERR(pdata); in rotary_encoder_probe()
274 if (!pdata) { in rotary_encoder_probe()
288 encoder->pdata = pdata; in rotary_encoder_probe()
294 if (pdata->relative_axis) { in rotary_encoder_probe()
296 input->relbit[0] = BIT_MASK(pdata->axis); in rotary_encoder_probe()
300 pdata->axis, 0, pdata->steps, 0, 1); in rotary_encoder_probe()
304 err = gpio_request_one(pdata->gpio_a, GPIOF_IN, dev_name(dev)); in rotary_encoder_probe()
306 dev_err(dev, "unable to request GPIO %d\n", pdata->gpio_a); in rotary_encoder_probe()
310 err = gpio_request_one(pdata->gpio_b, GPIOF_IN, dev_name(dev)); in rotary_encoder_probe()
312 dev_err(dev, "unable to request GPIO %d\n", pdata->gpio_b); in rotary_encoder_probe()
316 encoder->irq_a = gpio_to_irq(pdata->gpio_a); in rotary_encoder_probe()
317 encoder->irq_b = gpio_to_irq(pdata->gpio_b); in rotary_encoder_probe()
319 switch (pdata->steps_per_period) { in rotary_encoder_probe()
322 encoder->last_stable = rotary_encoder_get_state(pdata); in rotary_encoder_probe()
326 encoder->last_stable = rotary_encoder_get_state(pdata); in rotary_encoder_probe()
333 pdata->steps_per_period); in rotary_encoder_probe()
360 device_init_wakeup(&pdev->dev, pdata->wakeup_source); in rotary_encoder_probe()
371 gpio_free(pdata->gpio_b); in rotary_encoder_probe()
373 gpio_free(pdata->gpio_a); in rotary_encoder_probe()
378 kfree(pdata); in rotary_encoder_probe()
386 const struct rotary_encoder_platform_data *pdata = encoder->pdata; in rotary_encoder_remove() local
392 gpio_free(pdata->gpio_a); in rotary_encoder_remove()
393 gpio_free(pdata->gpio_b); in rotary_encoder_remove()
399 kfree(pdata); in rotary_encoder_remove()