Lines Matching refs:bank

21 static int rockchip_verify_config(struct udevice *dev, u32 bank, u32 pin)  in rockchip_verify_config()  argument
26 if (bank >= ctrl->nr_banks) { in rockchip_verify_config()
27 debug("pin conf bank %d >= nbanks %d\n", bank, ctrl->nr_banks); in rockchip_verify_config()
40 void rockchip_get_recalced_mux(struct rockchip_pin_bank *bank, int pin, in rockchip_get_recalced_mux() argument
43 struct rockchip_pinctrl_priv *priv = bank->priv; in rockchip_get_recalced_mux()
50 if (data->num == bank->bank_num && in rockchip_get_recalced_mux()
64 rockchip_get_mux_route(struct rockchip_pin_bank *bank, int pin, in rockchip_get_mux_route() argument
67 struct rockchip_pinctrl_priv *priv = bank->priv; in rockchip_get_mux_route()
74 if (data->bank_num == bank->bank_num && in rockchip_get_mux_route()
114 static int rockchip_get_mux(struct rockchip_pin_bank *bank, int pin) in rockchip_get_mux() argument
116 struct rockchip_pinctrl_priv *priv = bank->priv; in rockchip_get_mux()
126 if (bank->iomux[iomux_num].type & IOMUX_UNROUTED) { in rockchip_get_mux()
131 if (bank->iomux[iomux_num].type & IOMUX_GPIO_ONLY) in rockchip_get_mux()
134 regmap = (bank->iomux[iomux_num].type & IOMUX_SOURCE_PMU) in rockchip_get_mux()
138 mux_type = bank->iomux[iomux_num].type; in rockchip_get_mux()
139 reg = bank->iomux[iomux_num].offset; in rockchip_get_mux()
142 if (bank->recalced_mask & BIT(pin)) in rockchip_get_mux()
143 rockchip_get_recalced_mux(bank, pin, &reg, &bit, &mask); in rockchip_get_mux()
160 static int rockchip_verify_mux(struct rockchip_pin_bank *bank, in rockchip_verify_mux() argument
168 if (bank->iomux[iomux_num].type & IOMUX_UNROUTED) { in rockchip_verify_mux()
173 if (bank->iomux[iomux_num].type & IOMUX_GPIO_ONLY) { in rockchip_verify_mux()
196 static int rockchip_set_mux(struct rockchip_pin_bank *bank, int pin, int mux) in rockchip_set_mux() argument
198 struct rockchip_pinctrl_priv *priv = bank->priv; in rockchip_set_mux()
203 ret = rockchip_verify_mux(bank, pin, mux); in rockchip_set_mux()
207 if (bank->iomux[iomux_num].type & IOMUX_GPIO_ONLY) in rockchip_set_mux()
210 debug("setting mux of GPIO%d-%d to %d\n", bank->bank_num, pin, mux); in rockchip_set_mux()
215 ret = ctrl->set_mux(bank, pin, mux); in rockchip_set_mux()
219 if (bank->route_mask & BIT(pin)) { in rockchip_set_mux()
223 ret = rockchip_get_mux_route(bank, pin, mux, in rockchip_set_mux()
227 if (bank->iomux[iomux_num].type & IOMUX_SOURCE_PMU) in rockchip_set_mux()
229 else if (bank->iomux[iomux_num].type & IOMUX_L_SOURCE_PMU) in rockchip_set_mux()
277 static int rockchip_set_drive_perpin(struct rockchip_pin_bank *bank, in rockchip_set_drive_perpin() argument
280 struct rockchip_pinctrl_priv *priv = bank->priv; in rockchip_set_drive_perpin()
283 debug("setting drive of GPIO%d-%d to %d\n", bank->bank_num, in rockchip_set_drive_perpin()
289 return ctrl->set_drive(bank, pin_num, strength); in rockchip_set_drive_perpin()
323 static int rockchip_set_pull(struct rockchip_pin_bank *bank, in rockchip_set_pull() argument
326 struct rockchip_pinctrl_priv *priv = bank->priv; in rockchip_set_pull()
329 debug("setting pull of GPIO%d-%d to %d\n", bank->bank_num, in rockchip_set_pull()
335 return ctrl->set_pull(bank, pin_num, pull); in rockchip_set_pull()
338 static int rockchip_set_schmitt(struct rockchip_pin_bank *bank, in rockchip_set_schmitt() argument
341 struct rockchip_pinctrl_priv *priv = bank->priv; in rockchip_set_schmitt()
344 debug("setting input schmitt of GPIO%d-%d to %d\n", bank->bank_num, in rockchip_set_schmitt()
350 return ctrl->set_schmitt(bank, pin_num, enable); in rockchip_set_schmitt()
354 static int rockchip_pinconf_set(struct rockchip_pin_bank *bank, in rockchip_pinconf_set() argument
370 rc = rockchip_set_pull(bank, pin, param); in rockchip_pinconf_set()
376 rc = rockchip_set_drive_perpin(bank, pin, arg); in rockchip_pinconf_set()
382 rc = rockchip_set_schmitt(bank, pin, arg); in rockchip_pinconf_set()
392 snprintf(gpio_name, 16, "%s%d", bank->name, pin); in rockchip_pinconf_set()
396 bank->name, pin, rc); in rockchip_pinconf_set()
403 bank->name, pin, rc); in rockchip_pinconf_set()
408 debug("%s: GPIO %s-%d set to %d\n", __func__, bank->name, pin, arg); in rockchip_pinconf_set()
459 u32 bank, pin, mux, conf, arg, default_val; local
490 bank = cells[4 * i + 0];
495 ret = rockchip_verify_config(dev, bank, pin);
499 ret = rockchip_set_mux(&ctrl->pin_banks[bank], pin, mux);
530 ret = rockchip_pinconf_set(&ctrl->pin_banks[bank], pin,
563 struct rockchip_pin_bank *bank; local
571 bank = ctrl->pin_banks;
574 for (i = 0; i < ctrl->nr_banks; ++i, ++bank) {
577 bank->priv = priv;
578 bank->pin_base = nr_pins;
579 nr_pins += bank->nr_pins;
583 struct rockchip_iomux *iom = &bank->iomux[j];
584 struct rockchip_drv *drv = &bank->drv[j];
650 if (ctrl->iomux_recalced[j].num == bank->bank_num) {
652 bank->recalced_mask |= BIT(pin);
660 if (ctrl->iomux_routes[j].bank_num == bank->bank_num) {
662 bank->route_mask |= BIT(pin);