- "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains
   - "rockchip,rk3399-io-voltage-domain" for rk3399
   - "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
 a phandle the relevant regulator.  All specified supplies must be able
 
        struct device_node *np = pdev->dev.of_node;
        const struct of_device_id *match;
        struct rockchip_iodomain *iod;
+       struct device *parent;
        int i, ret = 0;
 
        if (!np)
        match = of_match_node(rockchip_iodomain_match, np);
        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)) {
                dev_err(&pdev->dev, "couldn't find grf regmap\n");
                return PTR_ERR(iod->grf);