-+ /* TODO: This looks generic, try making it OF helper. */
-+ index = of_property_match_string(np, "reg-names", "pmu");
-+ if (index < 0) {
-+ err = index;
-+ goto err_free_ilp;
-+ }
-+ err = of_address_to_resource(np, index, &res);
-+ if (err)
-+ goto err_free_ilp;
-+ ilp->pmu = ioremap(res.start, resource_size(&res));
-+ if (IS_ERR(ilp->pmu)) {
-+ err = PTR_ERR(ilp->pmu);
++ ilp->regmap = syscon_node_to_regmap(of_get_parent(np));
++ if (IS_ERR(ilp->regmap)) {
++ err = PTR_ERR(ilp->regmap);