Lines Matching refs:bank
424 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, d->hwirq); in sirfsoc_gpio_irq_ack() local
429 offset = SIRFSOC_GPIO_CTRL(bank->id, idx); in sirfsoc_gpio_irq_ack()
441 struct sirfsoc_gpio_bank *bank, in __sirfsoc_gpio_irq_mask() argument
447 offset = SIRFSOC_GPIO_CTRL(bank->id, idx); in __sirfsoc_gpio_irq_mask()
463 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, d->hwirq); in sirfsoc_gpio_irq_mask() local
465 __sirfsoc_gpio_irq_mask(sgpio, bank, d->hwirq % SIRFSOC_GPIO_BANK_SIZE); in sirfsoc_gpio_irq_mask()
472 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, d->hwirq); in sirfsoc_gpio_irq_unmask() local
477 offset = SIRFSOC_GPIO_CTRL(bank->id, idx); in sirfsoc_gpio_irq_unmask()
493 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, d->hwirq); in sirfsoc_gpio_irq_type() local
498 offset = SIRFSOC_GPIO_CTRL(bank->id, idx); in sirfsoc_gpio_irq_type()
555 struct sirfsoc_gpio_bank *bank; in sirfsoc_gpio_handle_irq() local
562 bank = &sgpio->sgpio_bank[i]; in sirfsoc_gpio_handle_irq()
563 if (bank->parent_irq == irq) in sirfsoc_gpio_handle_irq()
570 status = readl(sgpio->chip.regs + SIRFSOC_GPIO_INT_STATUS(bank->id)); in sirfsoc_gpio_handle_irq()
574 __func__, bank->id, status); in sirfsoc_gpio_handle_irq()
580 ctrl = readl(sgpio->chip.regs + SIRFSOC_GPIO_CTRL(bank->id, idx)); in sirfsoc_gpio_handle_irq()
588 __func__, bank->id, idx); in sirfsoc_gpio_handle_irq()
590 bank->id * SIRFSOC_GPIO_BANK_SIZE)); in sirfsoc_gpio_handle_irq()
613 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, offset); in sirfsoc_gpio_request() local
619 spin_lock_irqsave(&bank->lock, flags); in sirfsoc_gpio_request()
625 sirfsoc_gpio_set_input(sgpio, SIRFSOC_GPIO_CTRL(bank->id, offset)); in sirfsoc_gpio_request()
626 __sirfsoc_gpio_irq_mask(sgpio, bank, offset); in sirfsoc_gpio_request()
628 spin_unlock_irqrestore(&bank->lock, flags); in sirfsoc_gpio_request()
636 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, offset); in sirfsoc_gpio_free() local
639 spin_lock_irqsave(&bank->lock, flags); in sirfsoc_gpio_free()
641 __sirfsoc_gpio_irq_mask(sgpio, bank, offset); in sirfsoc_gpio_free()
642 sirfsoc_gpio_set_input(sgpio, SIRFSOC_GPIO_CTRL(bank->id, offset)); in sirfsoc_gpio_free()
644 spin_unlock_irqrestore(&bank->lock, flags); in sirfsoc_gpio_free()
652 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, gpio); in sirfsoc_gpio_direction_input() local
657 offset = SIRFSOC_GPIO_CTRL(bank->id, idx); in sirfsoc_gpio_direction_input()
659 spin_lock_irqsave(&bank->lock, flags); in sirfsoc_gpio_direction_input()
663 spin_unlock_irqrestore(&bank->lock, flags); in sirfsoc_gpio_direction_input()
669 struct sirfsoc_gpio_bank *bank, in sirfsoc_gpio_set_output() argument
676 spin_lock_irqsave(&bank->lock, flags); in sirfsoc_gpio_set_output()
688 spin_unlock_irqrestore(&bank->lock, flags); in sirfsoc_gpio_set_output()
695 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, gpio); in sirfsoc_gpio_direction_output() local
700 offset = SIRFSOC_GPIO_CTRL(bank->id, idx); in sirfsoc_gpio_direction_output()
704 sirfsoc_gpio_set_output(sgpio, bank, offset, value); in sirfsoc_gpio_direction_output()
714 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, offset); in sirfsoc_gpio_get_value() local
718 spin_lock_irqsave(&bank->lock, flags); in sirfsoc_gpio_get_value()
720 val = readl(sgpio->chip.regs + SIRFSOC_GPIO_CTRL(bank->id, offset)); in sirfsoc_gpio_get_value()
722 spin_unlock_irqrestore(&bank->lock, flags); in sirfsoc_gpio_get_value()
731 struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(sgpio, offset); in sirfsoc_gpio_set_value() local
735 spin_lock_irqsave(&bank->lock, flags); in sirfsoc_gpio_set_value()
737 ctrl = readl(sgpio->chip.regs + SIRFSOC_GPIO_CTRL(bank->id, offset)); in sirfsoc_gpio_set_value()
742 writel(ctrl, sgpio->chip.regs + SIRFSOC_GPIO_CTRL(bank->id, offset)); in sirfsoc_gpio_set_value()
744 spin_unlock_irqrestore(&bank->lock, flags); in sirfsoc_gpio_set_value()
785 struct sirfsoc_gpio_bank *bank; in sirfsoc_gpio_probe() local
836 bank = &sgpio->sgpio_bank[i]; in sirfsoc_gpio_probe()
837 spin_lock_init(&bank->lock); in sirfsoc_gpio_probe()
838 bank->parent_irq = platform_get_irq(pdev, i); in sirfsoc_gpio_probe()
839 if (bank->parent_irq < 0) { in sirfsoc_gpio_probe()
840 err = bank->parent_irq; in sirfsoc_gpio_probe()
843 girq->parents[i] = bank->parent_irq; in sirfsoc_gpio_probe()