Searched refs:msm_gpio (Results 1 - 1 of 1) sorted by relevance

/linux-4.1.27/drivers/gpio/
H A Dgpio-msm-v2.c109 static struct msm_gpio_dev msm_gpio; variable in typeref:struct:msm_gpio_dev
111 #define GPIO_INTR_CFG_SU(gpio) (msm_gpio.msm_tlmm_base + 0x0400 + \
113 #define GPIO_CONFIG(gpio) (msm_gpio.msm_tlmm_base + 0x1000 + \
115 #define GPIO_IN_OUT(gpio) (msm_gpio.msm_tlmm_base + 0x1004 + \
117 #define GPIO_INTR_CFG(gpio) (msm_gpio.msm_tlmm_base + 0x1008 + \
119 #define GPIO_INTR_STATUS(gpio) (msm_gpio.msm_tlmm_base + 0x100c + \
241 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_ack()
244 if (test_bit(gpio, msm_gpio.dual_edge_irqs)) msm_gpio_irq_ack()
250 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_mask()
256 __clear_bit(gpio, msm_gpio.enabled_irqs); msm_gpio_irq_mask()
262 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_unmask()
266 __set_bit(gpio, msm_gpio.enabled_irqs); msm_gpio_irq_unmask()
274 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_set_type()
286 __set_bit(gpio, msm_gpio.dual_edge_irqs); msm_gpio_irq_set_type()
288 __clear_bit(gpio, msm_gpio.dual_edge_irqs); msm_gpio_irq_set_type()
292 __clear_bit(gpio, msm_gpio.dual_edge_irqs); msm_gpio_irq_set_type()
323 for_each_set_bit(i, msm_gpio.enabled_irqs, MAX_NR_GPIO) { for_each_set_bit()
325 generic_handle_irq(irq_find_mapping(msm_gpio.domain, for_each_set_bit()
334 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); msm_gpio_irq_set_wake()
337 if (bitmap_empty(msm_gpio.wake_irqs, MAX_NR_GPIO)) msm_gpio_irq_set_wake()
338 irq_set_irq_wake(msm_gpio.summary_irq, 1); msm_gpio_irq_set_wake()
339 set_bit(gpio, msm_gpio.wake_irqs); msm_gpio_irq_set_wake()
341 clear_bit(gpio, msm_gpio.wake_irqs); msm_gpio_irq_set_wake()
342 if (bitmap_empty(msm_gpio.wake_irqs, MAX_NR_GPIO)) msm_gpio_irq_set_wake()
343 irq_set_irq_wake(msm_gpio.summary_irq, 0); msm_gpio_irq_set_wake()
389 bitmap_zero(msm_gpio.enabled_irqs, MAX_NR_GPIO); msm_gpio_probe()
390 bitmap_zero(msm_gpio.wake_irqs, MAX_NR_GPIO); msm_gpio_probe()
391 bitmap_zero(msm_gpio.dual_edge_irqs, MAX_NR_GPIO); msm_gpio_probe()
394 msm_gpio.msm_tlmm_base = devm_ioremap_resource(&pdev->dev, res); msm_gpio_probe()
395 if (IS_ERR(msm_gpio.msm_tlmm_base)) msm_gpio_probe()
396 return PTR_ERR(msm_gpio.msm_tlmm_base); msm_gpio_probe()
398 msm_gpio.gpio_chip.ngpio = ngpio; msm_gpio_probe()
399 msm_gpio.gpio_chip.label = pdev->name; msm_gpio_probe()
400 msm_gpio.gpio_chip.dev = &pdev->dev; msm_gpio_probe()
401 msm_gpio.gpio_chip.base = 0; msm_gpio_probe()
402 msm_gpio.gpio_chip.direction_input = msm_gpio_direction_input; msm_gpio_probe()
403 msm_gpio.gpio_chip.direction_output = msm_gpio_direction_output; msm_gpio_probe()
404 msm_gpio.gpio_chip.get = msm_gpio_get; msm_gpio_probe()
405 msm_gpio.gpio_chip.set = msm_gpio_set; msm_gpio_probe()
406 msm_gpio.gpio_chip.to_irq = msm_gpio_to_irq; msm_gpio_probe()
407 msm_gpio.gpio_chip.request = msm_gpio_request; msm_gpio_probe()
408 msm_gpio.gpio_chip.free = msm_gpio_free; msm_gpio_probe()
410 ret = gpiochip_add(&msm_gpio.gpio_chip); msm_gpio_probe()
416 msm_gpio.summary_irq = platform_get_irq(pdev, 0); msm_gpio_probe()
417 if (msm_gpio.summary_irq < 0) { msm_gpio_probe()
419 return msm_gpio.summary_irq; msm_gpio_probe()
422 msm_gpio.domain = irq_domain_add_linear(pdev->dev.of_node, ngpio, msm_gpio_probe()
424 &msm_gpio); msm_gpio_probe()
425 if (!msm_gpio.domain) msm_gpio_probe()
428 irq_set_chained_handler(msm_gpio.summary_irq, msm_summary_irq_handler); msm_gpio_probe()
441 gpiochip_remove(&msm_gpio.gpio_chip); msm_gpio_remove()
443 irq_set_handler(msm_gpio.summary_irq, NULL); msm_gpio_remove()

Completed in 38 milliseconds