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: Heiko Stuebner <heiko@sntech.de> Acked-by: Kevin Hilman <khilman@baylibre.com> Tested-by: David Wu <david.wu@rock-chips.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
02da2d7217
commit
bc19b9a81d
@ -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)
|
|||||||
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)
|
|||||||
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;
|
||||||
|
|
||||||
iod->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
|
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");
|
||||||
|
}
|
||||||
|
|
||||||
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user