Lines Matching refs:data

53 static irqreturn_t pps_gpio_irq_handler(int irq, void *data)  in pps_gpio_irq_handler()  argument
62 info = data; in pps_gpio_irq_handler()
77 get_irqf_trigger_flags(const struct pps_gpio_device_data *data) in get_irqf_trigger_flags() argument
79 unsigned long flags = data->assert_falling_edge ? in get_irqf_trigger_flags()
82 if (data->capture_clear) { in get_irqf_trigger_flags()
92 struct pps_gpio_device_data *data; in pps_gpio_probe() local
100 data = devm_kzalloc(&pdev->dev, sizeof(struct pps_gpio_device_data), in pps_gpio_probe()
102 if (!data) in pps_gpio_probe()
106 data->gpio_pin = pdata->gpio_pin; in pps_gpio_probe()
109 data->assert_falling_edge = pdata->assert_falling_edge; in pps_gpio_probe()
110 data->capture_clear = pdata->capture_clear; in pps_gpio_probe()
117 data->gpio_pin = ret; in pps_gpio_probe()
121 data->assert_falling_edge = true; in pps_gpio_probe()
125 ret = devm_gpio_request(&pdev->dev, data->gpio_pin, gpio_label); in pps_gpio_probe()
128 data->gpio_pin); in pps_gpio_probe()
132 ret = gpio_direction_input(data->gpio_pin); in pps_gpio_probe()
139 ret = gpio_to_irq(data->gpio_pin); in pps_gpio_probe()
144 data->irq = ret; in pps_gpio_probe()
147 data->info.mode = PPS_CAPTUREASSERT | PPS_OFFSETASSERT | in pps_gpio_probe()
149 if (data->capture_clear) in pps_gpio_probe()
150 data->info.mode |= PPS_CAPTURECLEAR | PPS_OFFSETCLEAR | in pps_gpio_probe()
152 data->info.owner = THIS_MODULE; in pps_gpio_probe()
153 snprintf(data->info.name, PPS_MAX_NAME_LEN - 1, "%s.%d", in pps_gpio_probe()
158 if (data->capture_clear) in pps_gpio_probe()
160 data->pps = pps_register_source(&data->info, pps_default_params); in pps_gpio_probe()
161 if (data->pps == NULL) { in pps_gpio_probe()
163 data->irq); in pps_gpio_probe()
168 ret = devm_request_irq(&pdev->dev, data->irq, pps_gpio_irq_handler, in pps_gpio_probe()
169 get_irqf_trigger_flags(data), data->info.name, data); in pps_gpio_probe()
171 pps_unregister_source(data->pps); in pps_gpio_probe()
172 dev_err(&pdev->dev, "failed to acquire IRQ %d\n", data->irq); in pps_gpio_probe()
176 platform_set_drvdata(pdev, data); in pps_gpio_probe()
177 dev_info(data->pps->dev, "Registered IRQ %d as PPS source\n", in pps_gpio_probe()
178 data->irq); in pps_gpio_probe()
185 struct pps_gpio_device_data *data = platform_get_drvdata(pdev); in pps_gpio_remove() local
187 pps_unregister_source(data->pps); in pps_gpio_remove()
188 dev_info(&pdev->dev, "removed IRQ %d as PPS source\n", data->irq); in pps_gpio_remove()