mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
pinctrl: rockchip: Add a pin_to_bank() helper
Add a pin_to_bank() helper that can locate a pin bank based on the pin offset, to be used in get_gpio_mux() and gpio_request_enable() ops. Reset ctrl->nr_pins to 0 so that pin_to_bank() can locate a bank after the second probe in U-Boot proper. Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
This commit is contained in:
committed by
Ondrej Jirman
parent
f308fc9ab0
commit
f1515d498e
@@ -176,6 +176,23 @@ static int rockchip_get_mux(struct rockchip_pin_bank *bank, int pin)
|
||||
return ((val >> bit) & mask);
|
||||
}
|
||||
|
||||
static struct rockchip_pin_bank *rockchip_pin_to_bank(struct udevice *dev,
|
||||
unsigned int pin)
|
||||
{
|
||||
struct rockchip_pinctrl_priv *priv = dev_get_priv(dev);
|
||||
struct rockchip_pin_ctrl *ctrl = priv->ctrl;
|
||||
struct rockchip_pin_bank *bank = ctrl->pin_banks;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ctrl->nr_banks; ++i, ++bank) {
|
||||
if (pin >= bank->pin_base &&
|
||||
pin < bank->pin_base + bank->nr_pins)
|
||||
return bank;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int rockchip_pinctrl_get_gpio_mux(struct udevice *dev, int banknum,
|
||||
int index)
|
||||
{ struct rockchip_pinctrl_priv *priv = dev_get_priv(dev);
|
||||
@@ -539,6 +556,7 @@ static struct rockchip_pin_ctrl *rockchip_pinctrl_get_soc_data(struct udevice *d
|
||||
drv_pmu_offs = ctrl->pmu_drv_offset;
|
||||
drv_grf_offs = ctrl->grf_drv_offset;
|
||||
bank = ctrl->pin_banks;
|
||||
ctrl->nr_pins = 0;
|
||||
|
||||
for (i = 0; i < ctrl->nr_banks; ++i, ++bank) {
|
||||
int bank_pins = 0;
|
||||
|
Reference in New Issue
Block a user