Hi, I think the fix is rather easy here.. See below. * Kishon Vijay Abraham I <kishon@xxxxxx> [150901 02:43]: > > Before commit d919501feffa8715147582c3ffce96fad0c7016f ARM: dts: dra7: > add minimal l4 bus layout with control module support, the dt was like > > ocp { > dra7_ctrl_general: tisyscon@4a002e00 { > compatible = "syscon"; > reg = <0x4a002e00 0x7c>; > }; > > pbias_regulator: pbias_regulator { > compatible = "ti,pbias-omap"; > reg = <0 0x4>; > syscon = <&dra7_ctrl_general>; > }; > }; Yes the reg = <0 0x4> above is wrong, it's not an offset from the ocp but from the syscon base. > But after commit d919501fef, the dt became like this (after a couple of > fixes) > > ocp { > l4_cfg: l4@4a000000 { > compatible = "ti,dra7-l4-cfg", "simple-bus"; > ranges = <0 0x4a000000 0x22c000>; > > scm: scm@2000 { > compatible = "ti,dra7-scm-core", "simple-bus"; > reg = <0x2000 0x2000>; > ranges = <0 0x2000 0x2000>; > > scm_conf: scm_conf@0 { > compatible = "syscon", "simple-bus"; > reg = <0x0 0x1400>; > ranges = <0 0x0 0x1400>; > > pbias_regulator: pbias_regulator { > compatible = "ti,pbias-omap"; > reg = <0xe00 0x4>; > syscon = <&scm_conf>; > }; > }; > }; > }; > }; And here we properly describe the hardware interconnect layout and of_ioremap and friends do the right thing. And reg = <0xxe00 0x4> is correct offset from the scm_conf base. Why don't you just make reg unused for pbias_regulator since we already use regmap for this driver? Then in the pbias driver just define the register offset from the syscon base? You may need to set it based on the compatible value, but it's not like it's going to change for SoC. If we eventually add some API to calculate reg base offset from the syscon base it's easy to update the driver to use that. Cheers, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html