Lines Matching refs:gpio

111 #define GPIO_INTR_CFG_SU(gpio)    (msm_gpio.msm_tlmm_base + 0x0400 + \  argument
112 (0x04 * (gpio)))
113 #define GPIO_CONFIG(gpio) (msm_gpio.msm_tlmm_base + 0x1000 + \ argument
114 (0x10 * (gpio)))
115 #define GPIO_IN_OUT(gpio) (msm_gpio.msm_tlmm_base + 0x1004 + \ argument
116 (0x10 * (gpio)))
117 #define GPIO_INTR_CFG(gpio) (msm_gpio.msm_tlmm_base + 0x1008 + \ argument
118 (0x10 * (gpio)))
119 #define GPIO_INTR_STATUS(gpio) (msm_gpio.msm_tlmm_base + 0x100c + \ argument
120 (0x10 * (gpio)))
218 static void msm_gpio_update_dual_edge_pos(unsigned gpio) in msm_gpio_update_dual_edge_pos() argument
224 val = readl(GPIO_IN_OUT(gpio)) & BIT(GPIO_IN); in msm_gpio_update_dual_edge_pos()
226 clear_gpio_bits(BIT(INTR_POL_CTL), GPIO_INTR_CFG(gpio)); in msm_gpio_update_dual_edge_pos()
228 set_gpio_bits(BIT(INTR_POL_CTL), GPIO_INTR_CFG(gpio)); in msm_gpio_update_dual_edge_pos()
229 val2 = readl(GPIO_IN_OUT(gpio)) & BIT(GPIO_IN); in msm_gpio_update_dual_edge_pos()
230 intstat = readl(GPIO_INTR_STATUS(gpio)) & BIT(INTR_STATUS); in msm_gpio_update_dual_edge_pos()
241 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); in msm_gpio_irq_ack() local
243 writel(BIT(INTR_STATUS), GPIO_INTR_STATUS(gpio)); in msm_gpio_irq_ack()
244 if (test_bit(gpio, msm_gpio.dual_edge_irqs)) in msm_gpio_irq_ack()
245 msm_gpio_update_dual_edge_pos(gpio); in msm_gpio_irq_ack()
250 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); in msm_gpio_irq_mask() local
254 writel(TARGET_PROC_NONE, GPIO_INTR_CFG_SU(gpio)); in msm_gpio_irq_mask()
255 clear_gpio_bits(BIT(INTR_RAW_STATUS_EN) | BIT(INTR_ENABLE), GPIO_INTR_CFG(gpio)); in msm_gpio_irq_mask()
256 __clear_bit(gpio, msm_gpio.enabled_irqs); in msm_gpio_irq_mask()
262 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); in msm_gpio_irq_unmask() local
266 __set_bit(gpio, msm_gpio.enabled_irqs); in msm_gpio_irq_unmask()
267 set_gpio_bits(BIT(INTR_RAW_STATUS_EN) | BIT(INTR_ENABLE), GPIO_INTR_CFG(gpio)); in msm_gpio_irq_unmask()
268 writel(TARGET_PROC_SCORPION, GPIO_INTR_CFG_SU(gpio)); in msm_gpio_irq_unmask()
274 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); in msm_gpio_irq_set_type() local
280 bits = readl(GPIO_INTR_CFG(gpio)); in msm_gpio_irq_set_type()
286 __set_bit(gpio, msm_gpio.dual_edge_irqs); in msm_gpio_irq_set_type()
288 __clear_bit(gpio, msm_gpio.dual_edge_irqs); in msm_gpio_irq_set_type()
292 __clear_bit(gpio, msm_gpio.dual_edge_irqs); in msm_gpio_irq_set_type()
300 writel(bits, GPIO_INTR_CFG(gpio)); in msm_gpio_irq_set_type()
303 msm_gpio_update_dual_edge_pos(gpio); in msm_gpio_irq_set_type()
334 int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq); in msm_gpio_irq_set_wake() local
339 set_bit(gpio, msm_gpio.wake_irqs); in msm_gpio_irq_set_wake()
341 clear_bit(gpio, msm_gpio.wake_irqs); in msm_gpio_irq_set_wake()