hlwd 60 drivers/gpio/gpio-hlwd.c struct hlwd_gpio *hlwd = hlwd 68 drivers/gpio/gpio-hlwd.c spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags); hlwd 69 drivers/gpio/gpio-hlwd.c pending = ioread32be(hlwd->regs + HW_GPIOB_INTFLAG); hlwd 70 drivers/gpio/gpio-hlwd.c pending &= ioread32be(hlwd->regs + HW_GPIOB_INTMASK); hlwd 73 drivers/gpio/gpio-hlwd.c emulated_pending = hlwd->edge_emulation & pending; hlwd 78 drivers/gpio/gpio-hlwd.c level = ioread32be(hlwd->regs + HW_GPIOB_INTLVL); hlwd 84 drivers/gpio/gpio-hlwd.c hlwd->regs + HW_GPIOB_INTLVL); hlwd 87 drivers/gpio/gpio-hlwd.c iowrite32be(emulated_pending, hlwd->regs + HW_GPIOB_INTFLAG); hlwd 90 drivers/gpio/gpio-hlwd.c rising &= hlwd->rising_edge; hlwd 91 drivers/gpio/gpio-hlwd.c falling &= hlwd->falling_edge; hlwd 96 drivers/gpio/gpio-hlwd.c spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags); hlwd 101 drivers/gpio/gpio-hlwd.c int irq = irq_find_mapping(hlwd->gpioc.irq.domain, hwirq); hlwd 111 drivers/gpio/gpio-hlwd.c struct hlwd_gpio *hlwd = hlwd 114 drivers/gpio/gpio-hlwd.c iowrite32be(BIT(data->hwirq), hlwd->regs + HW_GPIOB_INTFLAG); hlwd 119 drivers/gpio/gpio-hlwd.c struct hlwd_gpio *hlwd = hlwd 124 drivers/gpio/gpio-hlwd.c spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags); hlwd 125 drivers/gpio/gpio-hlwd.c mask = ioread32be(hlwd->regs + HW_GPIOB_INTMASK); hlwd 127 drivers/gpio/gpio-hlwd.c iowrite32be(mask, hlwd->regs + HW_GPIOB_INTMASK); hlwd 128 drivers/gpio/gpio-hlwd.c spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags); hlwd 133 drivers/gpio/gpio-hlwd.c struct hlwd_gpio *hlwd = hlwd 138 drivers/gpio/gpio-hlwd.c spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags); hlwd 139 drivers/gpio/gpio-hlwd.c mask = ioread32be(hlwd->regs + HW_GPIOB_INTMASK); hlwd 141 drivers/gpio/gpio-hlwd.c iowrite32be(mask, hlwd->regs + HW_GPIOB_INTMASK); hlwd 142 drivers/gpio/gpio-hlwd.c spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags); hlwd 151 drivers/gpio/gpio-hlwd.c static void hlwd_gpio_irq_setup_emulation(struct hlwd_gpio *hlwd, int hwirq, hlwd 157 drivers/gpio/gpio-hlwd.c level = ioread32be(hlwd->regs + HW_GPIOB_INTLVL); hlwd 158 drivers/gpio/gpio-hlwd.c state = ioread32be(hlwd->regs + HW_GPIOB_IN) & BIT(hwirq); hlwd 161 drivers/gpio/gpio-hlwd.c iowrite32be(level, hlwd->regs + HW_GPIOB_INTLVL); hlwd 163 drivers/gpio/gpio-hlwd.c hlwd->edge_emulation |= BIT(hwirq); hlwd 164 drivers/gpio/gpio-hlwd.c hlwd->rising_edge &= ~BIT(hwirq); hlwd 165 drivers/gpio/gpio-hlwd.c hlwd->falling_edge &= ~BIT(hwirq); hlwd 167 drivers/gpio/gpio-hlwd.c hlwd->rising_edge |= BIT(hwirq); hlwd 169 drivers/gpio/gpio-hlwd.c hlwd->falling_edge |= BIT(hwirq); hlwd 174 drivers/gpio/gpio-hlwd.c struct hlwd_gpio *hlwd = hlwd 179 drivers/gpio/gpio-hlwd.c spin_lock_irqsave(&hlwd->gpioc.bgpio_lock, flags); hlwd 181 drivers/gpio/gpio-hlwd.c hlwd->edge_emulation &= ~BIT(data->hwirq); hlwd 185 drivers/gpio/gpio-hlwd.c level = ioread32be(hlwd->regs + HW_GPIOB_INTLVL); hlwd 187 drivers/gpio/gpio-hlwd.c iowrite32be(level, hlwd->regs + HW_GPIOB_INTLVL); hlwd 190 drivers/gpio/gpio-hlwd.c level = ioread32be(hlwd->regs + HW_GPIOB_INTLVL); hlwd 192 drivers/gpio/gpio-hlwd.c iowrite32be(level, hlwd->regs + HW_GPIOB_INTLVL); hlwd 197 drivers/gpio/gpio-hlwd.c hlwd_gpio_irq_setup_emulation(hlwd, data->hwirq, flow_type); hlwd 200 drivers/gpio/gpio-hlwd.c spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags); hlwd 204 drivers/gpio/gpio-hlwd.c spin_unlock_irqrestore(&hlwd->gpioc.bgpio_lock, flags); hlwd 210 drivers/gpio/gpio-hlwd.c struct hlwd_gpio *hlwd; hlwd 214 drivers/gpio/gpio-hlwd.c hlwd = devm_kzalloc(&pdev->dev, sizeof(*hlwd), GFP_KERNEL); hlwd 215 drivers/gpio/gpio-hlwd.c if (!hlwd) hlwd 218 drivers/gpio/gpio-hlwd.c hlwd->regs = devm_platform_ioremap_resource(pdev, 0); hlwd 219 drivers/gpio/gpio-hlwd.c if (IS_ERR(hlwd->regs)) hlwd 220 drivers/gpio/gpio-hlwd.c return PTR_ERR(hlwd->regs); hlwd 231 drivers/gpio/gpio-hlwd.c iowrite32be(0xffffffff, hlwd->regs + HW_GPIO_OWNER); hlwd 233 drivers/gpio/gpio-hlwd.c res = bgpio_init(&hlwd->gpioc, &pdev->dev, 4, hlwd 234 drivers/gpio/gpio-hlwd.c hlwd->regs + HW_GPIOB_IN, hlwd->regs + HW_GPIOB_OUT, hlwd 235 drivers/gpio/gpio-hlwd.c NULL, hlwd->regs + HW_GPIOB_DIR, NULL, hlwd 245 drivers/gpio/gpio-hlwd.c hlwd->gpioc.ngpio = ngpios; hlwd 248 drivers/gpio/gpio-hlwd.c iowrite32be(0, hlwd->regs + HW_GPIOB_INTMASK); hlwd 249 drivers/gpio/gpio-hlwd.c iowrite32be(0xffffffff, hlwd->regs + HW_GPIOB_INTFLAG); hlwd 258 drivers/gpio/gpio-hlwd.c hlwd->irq = platform_get_irq(pdev, 0); hlwd 259 drivers/gpio/gpio-hlwd.c if (hlwd->irq < 0) { hlwd 261 drivers/gpio/gpio-hlwd.c hlwd->irq); hlwd 262 drivers/gpio/gpio-hlwd.c return hlwd->irq; hlwd 265 drivers/gpio/gpio-hlwd.c hlwd->irqc.name = dev_name(&pdev->dev); hlwd 266 drivers/gpio/gpio-hlwd.c hlwd->irqc.irq_mask = hlwd_gpio_irq_mask; hlwd 267 drivers/gpio/gpio-hlwd.c hlwd->irqc.irq_unmask = hlwd_gpio_irq_unmask; hlwd 268 drivers/gpio/gpio-hlwd.c hlwd->irqc.irq_enable = hlwd_gpio_irq_enable; hlwd 269 drivers/gpio/gpio-hlwd.c hlwd->irqc.irq_set_type = hlwd_gpio_irq_set_type; hlwd 271 drivers/gpio/gpio-hlwd.c girq = &hlwd->gpioc.irq; hlwd 272 drivers/gpio/gpio-hlwd.c girq->chip = &hlwd->irqc; hlwd 280 drivers/gpio/gpio-hlwd.c girq->parents[0] = hlwd->irq; hlwd 285 drivers/gpio/gpio-hlwd.c return devm_gpiochip_add_data(&pdev->dev, &hlwd->gpioc, hlwd);