Lines Matching refs:bank

54 	struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
55 unsigned long reg_mask = our_chip->eint_mask + bank->eint_offset;
59 raw_spin_lock_irqsave(&bank->slock, flags);
61 mask = readl(bank->eint_base + reg_mask);
63 writel(mask, bank->eint_base + reg_mask);
65 raw_spin_unlock_irqrestore(&bank->slock, flags);
72 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
73 unsigned long reg_pend = our_chip->eint_pend + bank->eint_offset;
75 writel(1 << irqd->hwirq, bank->eint_base + reg_pend);
82 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
83 unsigned long reg_mask = our_chip->eint_mask + bank->eint_offset;
98 raw_spin_lock_irqsave(&bank->slock, flags);
100 mask = readl(bank->eint_base + reg_mask);
102 writel(mask, bank->eint_base + reg_mask);
104 raw_spin_unlock_irqrestore(&bank->slock, flags);
111 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
114 unsigned long reg_con = our_chip->eint_con + bank->eint_offset;
142 con = readl(bank->eint_base + reg_con);
145 writel(con, bank->eint_base + reg_con);
152 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
153 const struct samsung_pin_bank_type *bank_type = bank->type;
158 ret = gpiochip_lock_as_irq(&bank->gpio_chip, irqd->hwirq);
160 dev_err(bank->gpio_chip.parent,
162 bank->name, irqd->hwirq);
166 reg_con = bank->pctl_offset + bank_type->reg_offset[PINCFG_TYPE_FUNC];
170 raw_spin_lock_irqsave(&bank->slock, flags);
172 con = readl(bank->pctl_base + reg_con);
175 writel(con, bank->pctl_base + reg_con);
177 raw_spin_unlock_irqrestore(&bank->slock, flags);
184 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
185 const struct samsung_pin_bank_type *bank_type = bank->type;
189 reg_con = bank->pctl_offset + bank_type->reg_offset[PINCFG_TYPE_FUNC];
193 raw_spin_lock_irqsave(&bank->slock, flags);
195 con = readl(bank->pctl_base + reg_con);
198 writel(con, bank->pctl_base + reg_con);
200 raw_spin_unlock_irqrestore(&bank->slock, flags);
202 gpiochip_unlock_as_irq(&bank->gpio_chip, irqd->hwirq);
246 struct samsung_pin_bank *bank = d->pin_banks;
250 svc = readl(bank->eint_base + EXYNOS_SVC_OFFSET);
256 bank += (group - 1);
258 ret = generic_handle_domain_irq(bank->irq_domain, pin);
278 struct samsung_pin_bank *bank;
295 bank = d->pin_banks;
296 for (i = 0; i < d->nr_banks; ++i, ++bank) {
297 if (bank->eint_type != EINT_TYPE_GPIO)
300 bank->irq_chip = devm_kmemdup(dev, &exynos_gpio_irq_chip,
301 sizeof(*bank->irq_chip), GFP_KERNEL);
302 if (!bank->irq_chip) {
306 bank->irq_chip->chip.name = bank->name;
308 bank->irq_domain = irq_domain_create_linear(bank->fwnode,
309 bank->nr_pins, &exynos_eint_irqd_ops, bank);
310 if (!bank->irq_domain) {
316 bank->soc_priv = devm_kzalloc(d->dev,
318 if (!bank->soc_priv) {
319 irq_domain_remove(bank->irq_domain);
329 for (--i, --bank; i >= 0; --i, --bank) {
330 if (bank->eint_type != EINT_TYPE_GPIO)
332 irq_domain_remove(bank->irq_domain);
342 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd);
343 unsigned long bit = 1UL << (2 * bank->eint_offset + irqd->hwirq);
346 irqd->irq, bank->name, irqd->hwirq);
364 "No retention data configured bank with external wakeup interrupt. Wake-up mask will not be set.\n");
386 "No retention data configured bank with external wakeup interrupt. Wake-up mask will not be set.\n");
478 struct samsung_pin_bank *bank = eintd->bank;
483 generic_handle_domain_irq(bank->irq_domain, eintd->irq);
532 struct samsung_pin_bank *bank;
553 bank = d->pin_banks;
554 for (i = 0; i < d->nr_banks; ++i, ++bank) {
555 if (bank->eint_type != EINT_TYPE_WKUP)
558 bank->irq_chip = devm_kmemdup(dev, irq_chip, sizeof(*irq_chip),
560 if (!bank->irq_chip) {
564 bank->irq_chip->chip.name = bank->name;
566 bank->irq_domain = irq_domain_create_linear(bank->fwnode,
567 bank->nr_pins, &exynos_eint_irqd_ops, bank);
568 if (!bank->irq_domain) {
574 if (!fwnode_property_present(bank->fwnode, "interrupts")) {
575 bank->eint_type = EINT_TYPE_WKUP_MUX;
581 bank->nr_pins, sizeof(*weint_data),
588 for (idx = 0; idx < bank->nr_pins; ++idx) {
589 irq = irq_of_parse_and_map(to_of_node(bank->fwnode), idx);
592 bank->name, idx);
596 weint_data[idx].bank = bank;
623 bank = d->pin_banks;
625 for (i = 0; i < d->nr_banks; ++i, ++bank) {
626 if (bank->eint_type != EINT_TYPE_WKUP_MUX)
629 muxed_data->banks[idx++] = bank;
638 struct samsung_pin_bank *bank)
640 struct exynos_eint_gpio_save *save = bank->soc_priv;
641 void __iomem *regs = bank->eint_base;
644 + bank->eint_offset);
646 + 2 * bank->eint_offset);
648 + 2 * bank->eint_offset + 4);
649 save->eint_mask = readl(regs + bank->irq_chip->eint_mask
650 + bank->eint_offset);
652 pr_debug("%s: save con %#010x\n", bank->name, save->eint_con);
653 pr_debug("%s: save fltcon0 %#010x\n", bank->name, save->eint_fltcon0);
654 pr_debug("%s: save fltcon1 %#010x\n", bank->name, save->eint_fltcon1);
655 pr_debug("%s: save mask %#010x\n", bank->name, save->eint_mask);
660 struct samsung_pin_bank *bank = drvdata->pin_banks;
664 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) {
665 if (bank->eint_type == EINT_TYPE_GPIO)
666 exynos_pinctrl_suspend_bank(drvdata, bank);
667 else if (bank->eint_type == EINT_TYPE_WKUP) {
669 irq_chip = bank->irq_chip;
679 struct samsung_pin_bank *bank)
681 struct exynos_eint_gpio_save *save = bank->soc_priv;
682 void __iomem *regs = bank->eint_base;
684 pr_debug("%s: con %#010x => %#010x\n", bank->name,
686 + bank->eint_offset), save->eint_con);
687 pr_debug("%s: fltcon0 %#010x => %#010x\n", bank->name,
689 + 2 * bank->eint_offset), save->eint_fltcon0);
690 pr_debug("%s: fltcon1 %#010x => %#010x\n", bank->name,
692 + 2 * bank->eint_offset + 4), save->eint_fltcon1);
693 pr_debug("%s: mask %#010x => %#010x\n", bank->name,
694 readl(regs + bank->irq_chip->eint_mask
695 + bank->eint_offset), save->eint_mask);
698 + bank->eint_offset);
700 + 2 * bank->eint_offset);
702 + 2 * bank->eint_offset + 4);
703 writel(save->eint_mask, regs + bank->irq_chip->eint_mask
704 + bank->eint_offset);
709 struct samsung_pin_bank *bank = drvdata->pin_banks;
712 for (i = 0; i < drvdata->nr_banks; ++i, ++bank)
713 if (bank->eint_type == EINT_TYPE_GPIO)
714 exynos_pinctrl_resume_bank(drvdata, bank);