Lines Matching refs:block

71 	struct etraxfs_gpio_block *block;  member
230 struct etraxfs_gpio_block *block = chip->block; in etraxfs_gpio_irq_ack() local
233 writel(BIT(grpirq), block->regs + block->info->rw_ack_intr); in etraxfs_gpio_irq_ack()
240 struct etraxfs_gpio_block *block = chip->block; in etraxfs_gpio_irq_mask() local
243 spin_lock(&block->lock); in etraxfs_gpio_irq_mask()
244 block->mask &= ~BIT(grpirq); in etraxfs_gpio_irq_mask()
245 writel(block->mask, block->regs + block->info->rw_intr_mask); in etraxfs_gpio_irq_mask()
246 spin_unlock(&block->lock); in etraxfs_gpio_irq_mask()
253 struct etraxfs_gpio_block *block = chip->block; in etraxfs_gpio_irq_unmask() local
256 spin_lock(&block->lock); in etraxfs_gpio_irq_unmask()
257 block->mask |= BIT(grpirq); in etraxfs_gpio_irq_unmask()
258 writel(block->mask, block->regs + block->info->rw_intr_mask); in etraxfs_gpio_irq_unmask()
259 spin_unlock(&block->lock); in etraxfs_gpio_irq_unmask()
266 struct etraxfs_gpio_block *block = chip->block; in etraxfs_gpio_irq_set_type() local
290 spin_lock(&block->lock); in etraxfs_gpio_irq_set_type()
291 block->cfg &= ~(0x7 << (grpirq * 3)); in etraxfs_gpio_irq_set_type()
292 block->cfg |= (cfg << (grpirq * 3)); in etraxfs_gpio_irq_set_type()
293 writel(block->cfg, block->regs + block->info->rw_intr_cfg); in etraxfs_gpio_irq_set_type()
294 spin_unlock(&block->lock); in etraxfs_gpio_irq_set_type()
303 struct etraxfs_gpio_block *block = chip->block; in etraxfs_gpio_irq_request_resources() local
307 spin_lock(&block->lock); in etraxfs_gpio_irq_request_resources()
308 if (block->group[grpirq]) in etraxfs_gpio_irq_request_resources()
315 block->group[grpirq] = d->irq; in etraxfs_gpio_irq_request_resources()
316 if (block->info->rw_intr_pins) { in etraxfs_gpio_irq_request_resources()
319 block->pins &= ~(0xf << (grpirq * 4)); in etraxfs_gpio_irq_request_resources()
320 block->pins |= (pin << (grpirq * 4)); in etraxfs_gpio_irq_request_resources()
322 writel(block->pins, block->regs + block->info->rw_intr_pins); in etraxfs_gpio_irq_request_resources()
326 spin_unlock(&block->lock); in etraxfs_gpio_irq_request_resources()
334 struct etraxfs_gpio_block *block = chip->block; in etraxfs_gpio_irq_release_resources() local
337 spin_lock(&block->lock); in etraxfs_gpio_irq_release_resources()
338 block->group[grpirq] = 0; in etraxfs_gpio_irq_release_resources()
340 spin_unlock(&block->lock); in etraxfs_gpio_irq_release_resources()
355 struct etraxfs_gpio_block *block = dev_id; in etraxfs_gpio_interrupt() local
356 unsigned long intr = readl(block->regs + block->info->r_masked_intr); in etraxfs_gpio_interrupt()
360 generic_handle_irq(block->group[bit]); in etraxfs_gpio_interrupt()
370 struct etraxfs_gpio_block *block; in etraxfs_gpio_probe() local
397 block = devm_kzalloc(dev, sizeof(*block), GFP_KERNEL); in etraxfs_gpio_probe()
398 if (!block) in etraxfs_gpio_probe()
401 spin_lock_init(&block->lock); in etraxfs_gpio_probe()
403 block->regs = regs; in etraxfs_gpio_probe()
404 block->info = info; in etraxfs_gpio_probe()
406 writel(0, block->regs + info->rw_intr_mask); in etraxfs_gpio_probe()
407 writel(0, block->regs + info->rw_intr_cfg); in etraxfs_gpio_probe()
410 writel(0, block->regs + info->rw_intr_pins); in etraxfs_gpio_probe()
414 IRQF_SHARED, dev_name(dev), block); in etraxfs_gpio_probe()
429 chip->block = block; in etraxfs_gpio_probe()