Lines Matching refs:pdata

34 	const struct rotary_encoder_platform_data *pdata;  member
48 static int rotary_encoder_get_state(const struct rotary_encoder_platform_data *pdata) in rotary_encoder_get_state() argument
50 int a = !!gpio_get_value(pdata->gpio_a); in rotary_encoder_get_state()
51 int b = !!gpio_get_value(pdata->gpio_b); in rotary_encoder_get_state()
53 a ^= pdata->inverted_a; in rotary_encoder_get_state()
54 b ^= pdata->inverted_b; in rotary_encoder_get_state()
61 const struct rotary_encoder_platform_data *pdata = encoder->pdata; in rotary_encoder_report_event() local
63 if (pdata->relative_axis) { in rotary_encoder_report_event()
65 pdata->axis, encoder->dir ? -1 : 1); in rotary_encoder_report_event()
71 if (pdata->rollover) in rotary_encoder_report_event()
72 pos += pdata->steps; in rotary_encoder_report_event()
77 if (pdata->rollover || pos < pdata->steps) in rotary_encoder_report_event()
81 if (pdata->rollover) in rotary_encoder_report_event()
82 pos %= pdata->steps; in rotary_encoder_report_event()
85 input_report_abs(encoder->input, pdata->axis, encoder->pos); in rotary_encoder_report_event()
96 state = rotary_encoder_get_state(encoder->pdata); in rotary_encoder_irq()
125 state = rotary_encoder_get_state(encoder->pdata); in rotary_encoder_half_period_irq()
157 struct rotary_encoder_platform_data *pdata; in rotary_encoder_parse_dt() local
163 pdata = kzalloc(sizeof(struct rotary_encoder_platform_data), in rotary_encoder_parse_dt()
165 if (!pdata) in rotary_encoder_parse_dt()
168 of_property_read_u32(np, "rotary-encoder,steps", &pdata->steps); in rotary_encoder_parse_dt()
169 of_property_read_u32(np, "linux,axis", &pdata->axis); in rotary_encoder_parse_dt()
171 pdata->gpio_a = of_get_gpio_flags(np, 0, &flags); in rotary_encoder_parse_dt()
172 pdata->inverted_a = flags & OF_GPIO_ACTIVE_LOW; in rotary_encoder_parse_dt()
174 pdata->gpio_b = of_get_gpio_flags(np, 1, &flags); in rotary_encoder_parse_dt()
175 pdata->inverted_b = flags & OF_GPIO_ACTIVE_LOW; in rotary_encoder_parse_dt()
177 pdata->relative_axis = !!of_get_property(np, in rotary_encoder_parse_dt()
179 pdata->rollover = !!of_get_property(np, in rotary_encoder_parse_dt()
181 pdata->half_period = !!of_get_property(np, in rotary_encoder_parse_dt()
184 return pdata; in rotary_encoder_parse_dt()
197 const struct rotary_encoder_platform_data *pdata = dev_get_platdata(dev); in rotary_encoder_probe() local
203 if (!pdata) { in rotary_encoder_probe()
204 pdata = rotary_encoder_parse_dt(dev); in rotary_encoder_probe()
205 if (IS_ERR(pdata)) in rotary_encoder_probe()
206 return PTR_ERR(pdata); in rotary_encoder_probe()
208 if (!pdata) { in rotary_encoder_probe()
222 encoder->pdata = pdata; in rotary_encoder_probe()
228 if (pdata->relative_axis) { in rotary_encoder_probe()
230 input->relbit[0] = BIT_MASK(pdata->axis); in rotary_encoder_probe()
234 pdata->axis, 0, pdata->steps, 0, 1); in rotary_encoder_probe()
238 err = gpio_request_one(pdata->gpio_a, GPIOF_IN, dev_name(dev)); in rotary_encoder_probe()
240 dev_err(dev, "unable to request GPIO %d\n", pdata->gpio_a); in rotary_encoder_probe()
244 err = gpio_request_one(pdata->gpio_b, GPIOF_IN, dev_name(dev)); in rotary_encoder_probe()
246 dev_err(dev, "unable to request GPIO %d\n", pdata->gpio_b); in rotary_encoder_probe()
250 encoder->irq_a = gpio_to_irq(pdata->gpio_a); in rotary_encoder_probe()
251 encoder->irq_b = gpio_to_irq(pdata->gpio_b); in rotary_encoder_probe()
254 if (pdata->half_period) { in rotary_encoder_probe()
256 encoder->last_stable = rotary_encoder_get_state(pdata); in rotary_encoder_probe()
292 gpio_free(pdata->gpio_b); in rotary_encoder_probe()
294 gpio_free(pdata->gpio_a); in rotary_encoder_probe()
299 kfree(pdata); in rotary_encoder_probe()
307 const struct rotary_encoder_platform_data *pdata = encoder->pdata; in rotary_encoder_remove() local
311 gpio_free(pdata->gpio_a); in rotary_encoder_remove()
312 gpio_free(pdata->gpio_b); in rotary_encoder_remove()
318 kfree(pdata); in rotary_encoder_remove()