Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 622f3237 authored by Heiko Stübner's avatar Heiko Stübner Committed by Linus Walleij
Browse files

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: default avatarHeiko Stuebner <heiko@sntech.de>
Tested-by: default avatarMax Schwarz <max.schwarz@online.de>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 751a99ab
Loading
Loading
Loading
Loading
+9 −8
Original line number Original line Diff line number Diff line
@@ -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);