Lines Matching refs:decoder
32 static int gpio_decoder_get_gpios_state(struct gpio_decoder *decoder) in gpio_decoder_get_gpios_state() argument
34 struct gpio_descs *gpios = decoder->input_gpios; in gpio_decoder_get_gpios_state()
41 dev_err(decoder->dev, in gpio_decoder_get_gpios_state()
56 struct gpio_decoder *decoder = input_get_drvdata(input); in gpio_decoder_poll_gpios() local
59 state = gpio_decoder_get_gpios_state(decoder); in gpio_decoder_poll_gpios()
60 if (state >= 0 && state != decoder->last_stable) { in gpio_decoder_poll_gpios()
61 input_report_abs(input, decoder->axis, state); in gpio_decoder_poll_gpios()
63 decoder->last_stable = state; in gpio_decoder_poll_gpios()
70 struct gpio_decoder *decoder; in gpio_decoder_probe() local
75 decoder = devm_kzalloc(dev, sizeof(*decoder), GFP_KERNEL); in gpio_decoder_probe()
76 if (!decoder) in gpio_decoder_probe()
79 decoder->dev = dev; in gpio_decoder_probe()
80 device_property_read_u32(dev, "linux,axis", &decoder->axis); in gpio_decoder_probe()
82 decoder->input_gpios = devm_gpiod_get_array(dev, NULL, GPIOD_IN); in gpio_decoder_probe()
83 if (IS_ERR(decoder->input_gpios)) { in gpio_decoder_probe()
85 return PTR_ERR(decoder->input_gpios); in gpio_decoder_probe()
88 if (decoder->input_gpios->ndescs < 2) { in gpio_decoder_probe()
94 max = (1U << decoder->input_gpios->ndescs) - 1; in gpio_decoder_probe()
100 input_set_drvdata(input, decoder); in gpio_decoder_probe()
104 input_set_abs_params(input, decoder->axis, 0, max, 0, 0); in gpio_decoder_probe()