Lines Matching defs:decoder
24 static int gpio_decoder_get_gpios_state(struct gpio_decoder *decoder)
26 struct gpio_descs *gpios = decoder->input_gpios;
33 dev_err(decoder->dev,
48 struct gpio_decoder *decoder = input_get_drvdata(input);
51 state = gpio_decoder_get_gpios_state(decoder);
52 if (state >= 0 && state != decoder->last_stable) {
53 input_report_abs(input, decoder->axis, state);
55 decoder->last_stable = state;
62 struct gpio_decoder *decoder;
67 decoder = devm_kzalloc(dev, sizeof(*decoder), GFP_KERNEL);
68 if (!decoder)
71 decoder->dev = dev;
72 device_property_read_u32(dev, "linux,axis", &decoder->axis);
74 decoder->input_gpios = devm_gpiod_get_array(dev, NULL, GPIOD_IN);
75 if (IS_ERR(decoder->input_gpios)) {
77 return PTR_ERR(decoder->input_gpios);
80 if (decoder->input_gpios->ndescs < 2) {
85 if (device_property_read_u32(dev, "decoder-max-value", &max))
86 max = (1U << decoder->input_gpios->ndescs) - 1;
92 input_set_drvdata(input, decoder);
96 input_set_abs_params(input, decoder->axis, 0, max, 0, 0);
115 { .compatible = "gpio-decoder", },
124 .name = "gpio-decoder",
130 MODULE_DESCRIPTION("GPIO decoder input driver");