Lines Matching refs:bank
348 struct samsung_pin_bank **bank) in pin_to_reg_bank() argument
360 if (bank) in pin_to_reg_bank()
361 *bank = b; in pin_to_reg_bank()
370 struct samsung_pin_bank *bank; in samsung_pinmux_setup() local
382 ®, &pin_offset, &bank); in samsung_pinmux_setup()
383 type = bank->type; in samsung_pinmux_setup()
392 spin_lock_irqsave(&bank->slock, flags); in samsung_pinmux_setup()
400 spin_unlock_irqrestore(&bank->slock, flags); in samsung_pinmux_setup()
426 struct samsung_pin_bank *bank; in samsung_pinconf_rw() local
435 &pin_offset, &bank); in samsung_pinconf_rw()
436 type = bank->type; in samsung_pinconf_rw()
444 spin_lock_irqsave(&bank->slock, flags); in samsung_pinconf_rw()
461 spin_unlock_irqrestore(&bank->slock, flags); in samsung_pinconf_rw()
530 struct samsung_pin_bank *bank = gc_to_pin_bank(gc); in samsung_gpio_set() local
531 const struct samsung_pin_bank_type *type = bank->type; in samsung_gpio_set()
536 reg = bank->drvdata->virt_base + bank->pctl_offset; in samsung_gpio_set()
538 spin_lock_irqsave(&bank->slock, flags); in samsung_gpio_set()
546 spin_unlock_irqrestore(&bank->slock, flags); in samsung_gpio_set()
554 struct samsung_pin_bank *bank = gc_to_pin_bank(gc); in samsung_gpio_get() local
555 const struct samsung_pin_bank_type *type = bank->type; in samsung_gpio_get()
557 reg = bank->drvdata->virt_base + bank->pctl_offset; in samsung_gpio_get()
573 struct samsung_pin_bank *bank; in samsung_gpio_set_direction() local
579 bank = gc_to_pin_bank(gc); in samsung_gpio_set_direction()
580 type = bank->type; in samsung_gpio_set_direction()
581 drvdata = bank->drvdata; in samsung_gpio_set_direction()
583 reg = drvdata->virt_base + bank->pctl_offset + in samsung_gpio_set_direction()
594 spin_lock_irqsave(&bank->slock, flags); in samsung_gpio_set_direction()
602 spin_unlock_irqrestore(&bank->slock, flags); in samsung_gpio_set_direction()
627 struct samsung_pin_bank *bank = gc_to_pin_bank(gc); in samsung_gpio_to_irq() local
630 if (!bank->irq_domain) in samsung_gpio_to_irq()
633 virq = irq_create_mapping(bank->irq_domain, offset); in samsung_gpio_to_irq()
828 int pin, bank, ret; in samsung_pinctrl_register() local
861 for (bank = 0; bank < drvdata->nr_banks; bank++) { in samsung_pinctrl_register()
862 pin_bank = &drvdata->pin_banks[bank]; in samsung_pinctrl_register()
881 for (bank = 0; bank < drvdata->nr_banks; ++bank) { in samsung_pinctrl_register()
882 pin_bank = &drvdata->pin_banks[bank]; in samsung_pinctrl_register()
884 pin_bank->grange.id = bank; in samsung_pinctrl_register()
921 struct samsung_pin_bank *bank = drvdata->pin_banks; in samsung_gpiolib_register() local
926 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) { in samsung_gpiolib_register()
927 bank->gpio_chip = samsung_gpiolib_chip; in samsung_gpiolib_register()
929 gc = &bank->gpio_chip; in samsung_gpiolib_register()
930 gc->base = drvdata->pin_base + bank->pin_base; in samsung_gpiolib_register()
931 gc->ngpio = bank->nr_pins; in samsung_gpiolib_register()
933 gc->of_node = bank->of_node; in samsung_gpiolib_register()
934 gc->label = bank->name; in samsung_gpiolib_register()
947 for (--i, --bank; i >= 0; --i, --bank) in samsung_gpiolib_register()
948 gpiochip_remove(&bank->gpio_chip); in samsung_gpiolib_register()
956 struct samsung_pin_bank *bank = drvdata->pin_banks; in samsung_gpiolib_unregister() local
959 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) in samsung_gpiolib_unregister()
960 gpiochip_remove(&bank->gpio_chip); in samsung_gpiolib_unregister()
978 struct samsung_pin_bank *bank; in samsung_pinctrl_get_soc_data() local
997 bank = d->pin_banks; in samsung_pinctrl_get_soc_data()
999 for (i = 0; i < ctrl->nr_banks; ++i, ++bdata, ++bank) { in samsung_pinctrl_get_soc_data()
1000 bank->type = bdata->type; in samsung_pinctrl_get_soc_data()
1001 bank->pctl_offset = bdata->pctl_offset; in samsung_pinctrl_get_soc_data()
1002 bank->nr_pins = bdata->nr_pins; in samsung_pinctrl_get_soc_data()
1003 bank->eint_func = bdata->eint_func; in samsung_pinctrl_get_soc_data()
1004 bank->eint_type = bdata->eint_type; in samsung_pinctrl_get_soc_data()
1005 bank->eint_mask = bdata->eint_mask; in samsung_pinctrl_get_soc_data()
1006 bank->eint_offset = bdata->eint_offset; in samsung_pinctrl_get_soc_data()
1007 bank->name = bdata->name; in samsung_pinctrl_get_soc_data()
1009 spin_lock_init(&bank->slock); in samsung_pinctrl_get_soc_data()
1010 bank->drvdata = d; in samsung_pinctrl_get_soc_data()
1011 bank->pin_base = d->nr_pins; in samsung_pinctrl_get_soc_data()
1012 d->nr_pins += bank->nr_pins; in samsung_pinctrl_get_soc_data()
1018 bank = d->pin_banks; in samsung_pinctrl_get_soc_data()
1019 for (i = 0; i < d->nr_banks; ++i, ++bank) { in samsung_pinctrl_get_soc_data()
1020 if (!strcmp(bank->name, np->name)) { in samsung_pinctrl_get_soc_data()
1021 bank->of_node = np; in samsung_pinctrl_get_soc_data()
1106 struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; in samsung_pinctrl_suspend_dev() local
1107 void __iomem *reg = virt_base + bank->pctl_offset; in samsung_pinctrl_suspend_dev()
1108 const u8 *offs = bank->type->reg_offset; in samsung_pinctrl_suspend_dev()
1109 const u8 *widths = bank->type->fld_width; in samsung_pinctrl_suspend_dev()
1118 bank->pm_save[type] = readl(reg + offs[type]); in samsung_pinctrl_suspend_dev()
1120 if (widths[PINCFG_TYPE_FUNC] * bank->nr_pins > 32) { in samsung_pinctrl_suspend_dev()
1122 bank->pm_save[PINCFG_TYPE_NUM] = in samsung_pinctrl_suspend_dev()
1125 bank->name, reg, in samsung_pinctrl_suspend_dev()
1126 bank->pm_save[PINCFG_TYPE_FUNC], in samsung_pinctrl_suspend_dev()
1127 bank->pm_save[PINCFG_TYPE_NUM]); in samsung_pinctrl_suspend_dev()
1129 pr_debug("Save %s @ %p (con %#010x)\n", bank->name, in samsung_pinctrl_suspend_dev()
1130 reg, bank->pm_save[PINCFG_TYPE_FUNC]); in samsung_pinctrl_suspend_dev()
1155 struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; in samsung_pinctrl_resume_dev() local
1156 void __iomem *reg = virt_base + bank->pctl_offset; in samsung_pinctrl_resume_dev()
1157 const u8 *offs = bank->type->reg_offset; in samsung_pinctrl_resume_dev()
1158 const u8 *widths = bank->type->fld_width; in samsung_pinctrl_resume_dev()
1165 if (widths[PINCFG_TYPE_FUNC] * bank->nr_pins > 32) { in samsung_pinctrl_resume_dev()
1168 bank->name, reg, in samsung_pinctrl_resume_dev()
1171 bank->pm_save[PINCFG_TYPE_FUNC], in samsung_pinctrl_resume_dev()
1172 bank->pm_save[PINCFG_TYPE_NUM]); in samsung_pinctrl_resume_dev()
1173 writel(bank->pm_save[PINCFG_TYPE_NUM], in samsung_pinctrl_resume_dev()
1176 pr_debug("%s @ %p (con %#010x => %#010x)\n", bank->name, in samsung_pinctrl_resume_dev()
1178 bank->pm_save[PINCFG_TYPE_FUNC]); in samsung_pinctrl_resume_dev()
1182 writel(bank->pm_save[type], reg + offs[type]); in samsung_pinctrl_resume_dev()