pinctrl: rockchip: rockchip_pinctrl in rockchip_get_bank_data

Convert rockchip_get_bank_data to use the struct rockchip_pinctrl because
later on we need to check a value from it when registering the gpio banks.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Max Schwarz <max.schwarz@online.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Heiko Stübner 2014-05-05 13:58:46 +02:00 коммит произвёл Linus Walleij
Родитель 751a99aba4
Коммит 622f32372b
1 изменённых файлов: 9 добавлений и 8 удалений

Просмотреть файл

@ -1440,17 +1440,17 @@ static int rockchip_gpiolib_unregister(struct platform_device *pdev,
} }
static int rockchip_get_bank_data(struct rockchip_pin_bank *bank, static int rockchip_get_bank_data(struct rockchip_pin_bank *bank,
struct device *dev) struct rockchip_pinctrl *info)
{ {
struct resource res; struct resource res;
void __iomem *base; void __iomem *base;
if (of_address_to_resource(bank->of_node, 0, &res)) { if (of_address_to_resource(bank->of_node, 0, &res)) {
dev_err(dev, "cannot find IO resource for bank\n"); dev_err(info->dev, "cannot find IO resource for bank\n");
return -ENOENT; return -ENOENT;
} }
bank->reg_base = devm_ioremap_resource(dev, &res); bank->reg_base = devm_ioremap_resource(info->dev, &res);
if (IS_ERR(bank->reg_base)) if (IS_ERR(bank->reg_base))
return PTR_ERR(bank->reg_base); return PTR_ERR(bank->reg_base);
@ -1464,16 +1464,16 @@ static int rockchip_get_bank_data(struct rockchip_pin_bank *bank,
bank->bank_type = RK3188_BANK0; bank->bank_type = RK3188_BANK0;
if (of_address_to_resource(bank->of_node, 1, &res)) { if (of_address_to_resource(bank->of_node, 1, &res)) {
dev_err(dev, "cannot find IO resource for bank\n"); dev_err(info->dev, "cannot find IO resource for bank\n");
return -ENOENT; return -ENOENT;
} }
base = devm_ioremap_resource(dev, &res); base = devm_ioremap_resource(info->dev, &res);
if (IS_ERR(base)) if (IS_ERR(base))
return PTR_ERR(base); return PTR_ERR(base);
rockchip_regmap_config.max_register = resource_size(&res) - 4; rockchip_regmap_config.max_register = resource_size(&res) - 4;
rockchip_regmap_config.name = "rockchip,rk3188-gpio-bank0-pull"; rockchip_regmap_config.name = "rockchip,rk3188-gpio-bank0-pull";
bank->regmap_pull = devm_regmap_init_mmio(dev, base, bank->regmap_pull = devm_regmap_init_mmio(info->dev, base,
&rockchip_regmap_config); &rockchip_regmap_config);
} else { } else {
@ -1515,7 +1515,7 @@ static struct rockchip_pin_ctrl *rockchip_pinctrl_get_soc_data(
if (!strcmp(bank->name, np->name)) { if (!strcmp(bank->name, np->name)) {
bank->of_node = np; bank->of_node = np;
if (!rockchip_get_bank_data(bank, &pdev->dev)) if (!rockchip_get_bank_data(bank, d))
bank->valid = true; bank->valid = true;
break; break;
@ -1552,13 +1552,14 @@ static int rockchip_pinctrl_probe(struct platform_device *pdev)
if (!info) if (!info)
return -ENOMEM; return -ENOMEM;
info->dev = dev;
ctrl = rockchip_pinctrl_get_soc_data(info, pdev); ctrl = rockchip_pinctrl_get_soc_data(info, pdev);
if (!ctrl) { if (!ctrl) {
dev_err(dev, "driver data not available\n"); dev_err(dev, "driver data not available\n");
return -EINVAL; return -EINVAL;
} }
info->ctrl = ctrl; info->ctrl = ctrl;
info->dev = dev;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(&pdev->dev, res); base = devm_ioremap_resource(&pdev->dev, res);