Lines Matching defs:decoder
32 static int gpio_decoder_get_gpios_state(struct gpio_decoder *decoder)
34 struct gpio_descs *gpios = decoder->input_gpios;
41 dev_err(decoder->dev,
56 struct gpio_decoder *decoder = input_get_drvdata(input);
59 state = gpio_decoder_get_gpios_state(decoder);
60 if (state >= 0 && state != decoder->last_stable) {
61 input_report_abs(input, decoder->axis, state);
63 decoder->last_stable = state;
70 struct gpio_decoder *decoder;
75 decoder = devm_kzalloc(dev, sizeof(*decoder), GFP_KERNEL);
76 if (!decoder)
79 decoder->dev = dev;
80 device_property_read_u32(dev, "linux,axis", &decoder->axis);
82 decoder->input_gpios = devm_gpiod_get_array(dev, NULL, GPIOD_IN);
83 if (IS_ERR(decoder->input_gpios)) {
85 return PTR_ERR(decoder->input_gpios);
88 if (decoder->input_gpios->ndescs < 2) {
93 if (device_property_read_u32(dev, "decoder-max-value", &max))
94 max = (1U << decoder->input_gpios->ndescs) - 1;
100 input_set_drvdata(input, decoder);
104 input_set_abs_params(input, decoder->axis, 0, max, 0, 0);
123 { .compatible = "gpio-decoder", },
132 .name = "gpio-decoder",
138 MODULE_DESCRIPTION("GPIO decoder input driver");