From f52bf55cba63811e1a9e16318557caa19670fbe0 Mon Sep 17 00:00:00 2001 From: Antoine Tenart Date: Sat, 16 May 2015 01:16:09 +0200 Subject: pinctrl: berlin: prepare to use regmap provided by syscon The Berlin pin controller nodes will be simple-mfd probed sub-nodes of soc-controller and system-controller nodes. The register bank is managed by syscon, which provides a regmap. Prepare to get the regmap from syscon parent node instead of SoC stub provided regmap. Signed-off-by: Antoine Tenart Acked-by: Linus Walleij Signed-off-by: Sebastian Hesselbarth --- drivers/pinctrl/berlin/berlin-bg2.c | 8 ++++++++ drivers/pinctrl/berlin/berlin-bg2cd.c | 8 ++++++++ drivers/pinctrl/berlin/berlin-bg2q.c | 8 ++++++++ drivers/pinctrl/berlin/berlin.c | 7 ++++++- 4 files changed, 30 insertions(+), 1 deletion(-) (limited to 'drivers/pinctrl') diff --git a/drivers/pinctrl/berlin/berlin-bg2.c b/drivers/pinctrl/berlin/berlin-bg2.c index b71a6fffef1b..6931ce4b1e12 100644 --- a/drivers/pinctrl/berlin/berlin-bg2.c +++ b/drivers/pinctrl/berlin/berlin-bg2.c @@ -225,6 +225,14 @@ static const struct of_device_id berlin2_pinctrl_match[] = { .compatible = "marvell,berlin2-system-ctrl", .data = &berlin2_sysmgr_pinctrl_data }, + { + .compatible = "marvell,berlin2-soc-pinctrl", + .data = &berlin2_soc_pinctrl_data + }, + { + .compatible = "marvell,berlin2-system-pinctrl", + .data = &berlin2_sysmgr_pinctrl_data + }, {} }; MODULE_DEVICE_TABLE(of, berlin2_pinctrl_match); diff --git a/drivers/pinctrl/berlin/berlin-bg2cd.c b/drivers/pinctrl/berlin/berlin-bg2cd.c index 19ac5a22c947..18e1af0e6b8c 100644 --- a/drivers/pinctrl/berlin/berlin-bg2cd.c +++ b/drivers/pinctrl/berlin/berlin-bg2cd.c @@ -168,6 +168,14 @@ static const struct of_device_id berlin2cd_pinctrl_match[] = { .compatible = "marvell,berlin2cd-system-ctrl", .data = &berlin2cd_sysmgr_pinctrl_data }, + { + .compatible = "marvell,berlin2cd-soc-pinctrl", + .data = &berlin2cd_soc_pinctrl_data + }, + { + .compatible = "marvell,berlin2cd-system-pinctrl", + .data = &berlin2cd_sysmgr_pinctrl_data + }, {} }; MODULE_DEVICE_TABLE(of, berlin2cd_pinctrl_match); diff --git a/drivers/pinctrl/berlin/berlin-bg2q.c b/drivers/pinctrl/berlin/berlin-bg2q.c index bd9662e57ad3..24e4cbb4d044 100644 --- a/drivers/pinctrl/berlin/berlin-bg2q.c +++ b/drivers/pinctrl/berlin/berlin-bg2q.c @@ -387,6 +387,14 @@ static const struct of_device_id berlin2q_pinctrl_match[] = { .compatible = "marvell,berlin2q-system-ctrl", .data = &berlin2q_sysmgr_pinctrl_data, }, + { + .compatible = "marvell,berlin2q-soc-pinctrl", + .data = &berlin2q_soc_pinctrl_data, + }, + { + .compatible = "marvell,berlin2q-system-pinctrl", + .data = &berlin2q_sysmgr_pinctrl_data, + }, {} }; MODULE_DEVICE_TABLE(of, berlin2q_pinctrl_match); diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c index 7f0b0f93242b..28551123d04f 100644 --- a/drivers/pinctrl/berlin/berlin.c +++ b/drivers/pinctrl/berlin/berlin.c @@ -11,6 +11,7 @@ */ #include +#include #include #include #include @@ -295,13 +296,17 @@ int berlin_pinctrl_probe(struct platform_device *pdev, const struct berlin_pinctrl_desc *desc) { struct device *dev = &pdev->dev; + struct device_node *parent_np = of_get_parent(dev->of_node); struct berlin_pinctrl *pctrl; struct regmap *regmap; int ret; regmap = dev_get_regmap(&pdev->dev, NULL); if (!regmap) - return -ENODEV; + regmap = syscon_node_to_regmap(parent_np); + of_node_put(parent_np); + if (IS_ERR(regmap)) + return PTR_ERR(regmap); pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL); if (!pctrl) -- cgit v1.2.3 From f90bec209ca54d799e69fc30c1b04c14baab980a Mon Sep 17 00:00:00 2001 From: Antoine Tenart Date: Sat, 16 May 2015 01:21:39 +0200 Subject: pinctrl: berlin: drop SoC stub provided regmap With convertsion to simple-mfd sub-nodes, drop the regmap registration by SoC stubs. Signed-off-by: Antoine Tenart Acked-by: Linus Walleij Signed-off-by: Sebastian Hesselbarth --- drivers/pinctrl/berlin/berlin-bg2.c | 30 ------------------------------ drivers/pinctrl/berlin/berlin-bg2cd.c | 30 ------------------------------ drivers/pinctrl/berlin/berlin-bg2q.c | 30 ------------------------------ drivers/pinctrl/berlin/berlin.c | 4 +--- 4 files changed, 1 insertion(+), 93 deletions(-) (limited to 'drivers/pinctrl') diff --git a/drivers/pinctrl/berlin/berlin-bg2.c b/drivers/pinctrl/berlin/berlin-bg2.c index 6931ce4b1e12..3769eaedf519 100644 --- a/drivers/pinctrl/berlin/berlin-bg2.c +++ b/drivers/pinctrl/berlin/berlin-bg2.c @@ -217,14 +217,6 @@ static const struct berlin_pinctrl_desc berlin2_sysmgr_pinctrl_data = { }; static const struct of_device_id berlin2_pinctrl_match[] = { - { - .compatible = "marvell,berlin2-chip-ctrl", - .data = &berlin2_soc_pinctrl_data - }, - { - .compatible = "marvell,berlin2-system-ctrl", - .data = &berlin2_sysmgr_pinctrl_data - }, { .compatible = "marvell,berlin2-soc-pinctrl", .data = &berlin2_soc_pinctrl_data @@ -241,28 +233,6 @@ static int berlin2_pinctrl_probe(struct platform_device *pdev) { const struct of_device_id *match = of_match_device(berlin2_pinctrl_match, &pdev->dev); - struct regmap_config *rmconfig; - struct regmap *regmap; - struct resource *res; - void __iomem *base; - - rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL); - if (!rmconfig) - return -ENOMEM; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(base)) - return PTR_ERR(base); - - rmconfig->reg_bits = 32, - rmconfig->val_bits = 32, - rmconfig->reg_stride = 4, - rmconfig->max_register = resource_size(res); - - regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig); - if (IS_ERR(regmap)) - return PTR_ERR(regmap); return berlin_pinctrl_probe(pdev, match->data); } diff --git a/drivers/pinctrl/berlin/berlin-bg2cd.c b/drivers/pinctrl/berlin/berlin-bg2cd.c index 18e1af0e6b8c..9e11f191d643 100644 --- a/drivers/pinctrl/berlin/berlin-bg2cd.c +++ b/drivers/pinctrl/berlin/berlin-bg2cd.c @@ -160,14 +160,6 @@ static const struct berlin_pinctrl_desc berlin2cd_sysmgr_pinctrl_data = { }; static const struct of_device_id berlin2cd_pinctrl_match[] = { - { - .compatible = "marvell,berlin2cd-chip-ctrl", - .data = &berlin2cd_soc_pinctrl_data - }, - { - .compatible = "marvell,berlin2cd-system-ctrl", - .data = &berlin2cd_sysmgr_pinctrl_data - }, { .compatible = "marvell,berlin2cd-soc-pinctrl", .data = &berlin2cd_soc_pinctrl_data @@ -184,28 +176,6 @@ static int berlin2cd_pinctrl_probe(struct platform_device *pdev) { const struct of_device_id *match = of_match_device(berlin2cd_pinctrl_match, &pdev->dev); - struct regmap_config *rmconfig; - struct regmap *regmap; - struct resource *res; - void __iomem *base; - - rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL); - if (!rmconfig) - return -ENOMEM; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(base)) - return PTR_ERR(base); - - rmconfig->reg_bits = 32, - rmconfig->val_bits = 32, - rmconfig->reg_stride = 4, - rmconfig->max_register = resource_size(res); - - regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig); - if (IS_ERR(regmap)) - return PTR_ERR(regmap); return berlin_pinctrl_probe(pdev, match->data); } diff --git a/drivers/pinctrl/berlin/berlin-bg2q.c b/drivers/pinctrl/berlin/berlin-bg2q.c index 24e4cbb4d044..ba7a8a8ad010 100644 --- a/drivers/pinctrl/berlin/berlin-bg2q.c +++ b/drivers/pinctrl/berlin/berlin-bg2q.c @@ -379,14 +379,6 @@ static const struct berlin_pinctrl_desc berlin2q_sysmgr_pinctrl_data = { }; static const struct of_device_id berlin2q_pinctrl_match[] = { - { - .compatible = "marvell,berlin2q-chip-ctrl", - .data = &berlin2q_soc_pinctrl_data, - }, - { - .compatible = "marvell,berlin2q-system-ctrl", - .data = &berlin2q_sysmgr_pinctrl_data, - }, { .compatible = "marvell,berlin2q-soc-pinctrl", .data = &berlin2q_soc_pinctrl_data, @@ -403,28 +395,6 @@ static int berlin2q_pinctrl_probe(struct platform_device *pdev) { const struct of_device_id *match = of_match_device(berlin2q_pinctrl_match, &pdev->dev); - struct regmap_config *rmconfig; - struct regmap *regmap; - struct resource *res; - void __iomem *base; - - rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL); - if (!rmconfig) - return -ENOMEM; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(base)) - return PTR_ERR(base); - - rmconfig->reg_bits = 32, - rmconfig->val_bits = 32, - rmconfig->reg_stride = 4, - rmconfig->max_register = resource_size(res); - - regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig); - if (IS_ERR(regmap)) - return PTR_ERR(regmap); return berlin_pinctrl_probe(pdev, match->data); } diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c index 28551123d04f..65b0e211b89e 100644 --- a/drivers/pinctrl/berlin/berlin.c +++ b/drivers/pinctrl/berlin/berlin.c @@ -301,9 +301,7 @@ int berlin_pinctrl_probe(struct platform_device *pdev, struct regmap *regmap; int ret; - regmap = dev_get_regmap(&pdev->dev, NULL); - if (!regmap) - regmap = syscon_node_to_regmap(parent_np); + regmap = syscon_node_to_regmap(parent_np); of_node_put(parent_np); if (IS_ERR(regmap)) return PTR_ERR(regmap); -- cgit v1.2.3