Commit bc19b9a8 authored by Heiko Stuebner's avatar Heiko Stuebner Committed by Rafael J. Wysocki

PM / AVS: rockchip-io: make io-domains a child of the GRF

IO-domain handling is part of the general register files, so should live
under the grf directly. This change allows the grf to be a simple-mfd and
the io-domains fetching the syscon regmap from that parent-node.

The old binding is of course preserved, though deprecated.
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Acked-by: default avatarKevin Hilman <khilman@baylibre.com>
Tested-by: default avatarDavid Wu <david.wu@rock-chips.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 02da2d72
...@@ -37,8 +37,10 @@ Required properties: ...@@ -37,8 +37,10 @@ Required properties:
- "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains - "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains
- "rockchip,rk3399-io-voltage-domain" for rk3399 - "rockchip,rk3399-io-voltage-domain" for rk3399
- "rockchip,rk3399-pmu-io-voltage-domain" for rk3399 pmu-domains - "rockchip,rk3399-pmu-io-voltage-domain" for rk3399 pmu-domains
- rockchip,grf: phandle to the syscon managing the "general register files"
Deprecated properties:
- rockchip,grf: phandle to the syscon managing the "general register files"
Systems should move the io-domains to a sub-node of the grf simple-mfd.
You specify supplies using the standard regulator bindings by including You specify supplies using the standard regulator bindings by including
a phandle the relevant regulator. All specified supplies must be able a phandle the relevant regulator. All specified supplies must be able
......
...@@ -336,6 +336,7 @@ static int rockchip_iodomain_probe(struct platform_device *pdev) ...@@ -336,6 +336,7 @@ static int rockchip_iodomain_probe(struct platform_device *pdev)
struct device_node *np = pdev->dev.of_node; struct device_node *np = pdev->dev.of_node;
const struct of_device_id *match; const struct of_device_id *match;
struct rockchip_iodomain *iod; struct rockchip_iodomain *iod;
struct device *parent;
int i, ret = 0; int i, ret = 0;
if (!np) if (!np)
...@@ -351,7 +352,14 @@ static int rockchip_iodomain_probe(struct platform_device *pdev) ...@@ -351,7 +352,14 @@ static int rockchip_iodomain_probe(struct platform_device *pdev)
match = of_match_node(rockchip_iodomain_match, np); match = of_match_node(rockchip_iodomain_match, np);
iod->soc_data = (struct rockchip_iodomain_soc_data *)match->data; iod->soc_data = (struct rockchip_iodomain_soc_data *)match->data;
parent = pdev->dev.parent;
if (parent && parent->of_node) {
iod->grf = syscon_node_to_regmap(parent->of_node);
} else {
dev_dbg(&pdev->dev, "falling back to old binding\n");
iod->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); iod->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
}
if (IS_ERR(iod->grf)) { if (IS_ERR(iod->grf)) {
dev_err(&pdev->dev, "couldn't find grf regmap\n"); dev_err(&pdev->dev, "couldn't find grf regmap\n");
return PTR_ERR(iod->grf); return PTR_ERR(iod->grf);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment