On Fri, Mar 14, 2014 at 09:42:26AM +0000, Tomi Valkeinen wrote: > On 14/03/14 11:10, Mark Rutland wrote: > > > The "simple-bus" compatible string is intended for busses which are > > transparent (bar some address remapping expressed via ranges), and is > > not intended as an annotation to get Linux to probe child nodes. > > > > Any node with a "simple-bus" entry in the compatible list should either > > be handled as a transparent bus, or optionally as the more specific bus > > it claims to be (where some hardware configuration may be required > > before children can be probed). Unfortunately Linux probes chidlren > > regardless, which is arguable a Linux bug. > > > > There's no reason to leak this issue into dts files. Please remove the > > "simple-bus" string, and get the dss driver to probe children as > > required -- as described above the dss node never makes sense as a > > simple-bus. > > Ok. I'll remove the simple-bus, and make the dss_core register the > devices. I presume of_platform_populate() is fine for this? Seems to > work fine for registration, but I haven't figured out yet how to > unregister the devices (I get a crash in platform_device_del() if I just > call platform_device_unregister for the submodules). I think of_platform_populate should be ok. It's not fantastic -- all child nodes will be probed, regardless of whether you expect them to exist, but it's not as broken as using "simple-bus". I'm unfortunately not familiar with how unregistration works. I can't see anything obviously wrong in platform_device_del. Do you have a backtrace? Thanks, Mark. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html