Lines Matching refs:gpios

23 	struct snd_soc_jack_gpio *gpios;
281 struct snd_soc_jack_gpio *gpios)
286 gpiod_unexport(gpios[i].desc);
287 unregister_pm_notifier(&gpios[i].pm_notifier);
288 free_irq(gpiod_to_irq(gpios[i].desc), &gpios[i]);
289 cancel_delayed_work_sync(&gpios[i].work);
290 gpiod_put(gpios[i].desc);
291 gpios[i].jack = NULL;
299 jack_free_gpios(tbl->jack, tbl->count, tbl->gpios);
307 * @gpios: array of gpio pins
313 struct snd_soc_jack_gpio *gpios)
323 tbl->gpios = gpios;
326 if (!gpios[i].name) {
333 if (gpios[i].desc) {
336 } else if (gpios[i].gpiod_dev) {
338 gpios[i].desc = gpiod_get_index(gpios[i].gpiod_dev,
339 gpios[i].name,
340 gpios[i].idx, GPIOD_IN);
341 if (IS_ERR(gpios[i].desc)) {
342 ret = PTR_ERR(gpios[i].desc);
343 dev_err(gpios[i].gpiod_dev,
350 if (!gpio_is_valid(gpios[i].gpio)) {
353 gpios[i].gpio);
358 ret = gpio_request_one(gpios[i].gpio, GPIOF_IN,
359 gpios[i].name);
363 gpios[i].desc = gpio_to_desc(gpios[i].gpio);
366 INIT_DELAYED_WORK(&gpios[i].work, gpio_work);
367 gpios[i].jack = jack;
369 ret = request_any_context_irq(gpiod_to_irq(gpios[i].desc),
373 gpios[i].name,
374 &gpios[i]);
378 if (gpios[i].wake) {
379 ret = irq_set_irq_wake(gpiod_to_irq(gpios[i].desc), 1);
390 gpios[i].pm_notifier.notifier_call = snd_soc_jack_pm_notifier;
391 register_pm_notifier(&gpios[i].pm_notifier);
394 gpiod_export(gpios[i].desc, false);
397 schedule_delayed_work(&gpios[i].work,
398 msecs_to_jiffies(gpios[i].debounce_time));
405 gpio_free(gpios[i].gpio);
407 jack_free_gpios(jack, i, gpios);
420 * @gpios: array of gpio pins
427 int count, struct snd_soc_jack_gpio *gpios)
432 gpios[i].gpiod_dev = gpiod_dev;
434 return snd_soc_jack_add_gpios(jack, count, gpios);
443 * @gpios: array of gpio pins
448 struct snd_soc_jack_gpio *gpios)
450 jack_free_gpios(jack, count, gpios);