On Tue, Jan 06, 2009 at 01:46:21PM +0800, Li Yang wrote:
quoted
-----Original Message-----
From:
devicetree-discuss-bounces+leoli=freescale.com@ozlabs.org
[mailto:devicetree-discuss-bounces+leoli=freescale.com@ozlabs.
org] On Behalf Of David Gibson
Sent: Tuesday, January 06, 2009 9:43 AM
To: Wood Scott-B07421
Cc: linuxppc-dev@ozlabs.org; Li Yang-R58472;
devicetree-discuss@ozlabs.org
Subject: Re: The usage of compatible 'simple-bus'
On Mon, Jan 05, 2009 at 01:20:53PM -0600, Scott Wood wrote:
quoted
On Mon, Jan 05, 2009 at 06:27:39PM +0800, Li Yang wrote:
quoted
I got an assumption from the existing device trees that having
'simple-bus' in the compatible property of a node means that all
child nodes should be added as of_platform_device in platform
initialization phase. No matter it represents a bus in
common sense
quoted
quoted
or not. Is this truly the case?
Yes, simple-bus indicates that the children can be driven
standalone
quoted
from any knowledge of the parent bus.
Erm, well, sort of. Strictly it indicates that the only way
to locate the child devices of this bus is by using the
address information in the device tree - there's no way to
dynamically probe the bus.
So if I understand correctly, "simple-bus" is intended to be used for
true buses.
Generally, yes, although there may be some situations where it's
appropriate for other things. So, for example, in some cases it's
used (correctly) for compound devices . I don't think this particular
case is a sensible situation for it, though.
quoted
The fact that this causes of_platform_devices to be
instantiated is a Linux implementation specific detail (and
one we might change in future).
Here we have a common case for SoC that part of a device has its
separate driver besides the driver for the main feature of the whole
device. The resources used by the sub-device is usually part of the
resources of the parent device. So it makes sense to put the node of
sub-device beneathe the node of main device. Shall we have a convention
to mark such devices in device tree so that the sub-device can be
scanned and probed as a standalone of_platform_device?
If "simple-bus" may cause confusion to do this job as it's not a bus
actually, I propose to use "has-subdevice".
As Grant says, you're thinking about what drivers will do with things
rather than what the actual hardware setup is, which is what the
device tree should describe.
I see two sensible options for this situation:
- Move the MDIO node to outside the gianfar MAC node. I think
this is already done on some boards with gianfar?
- Explicitly add the gianfar device to the list of things to
scan for of_platform subdevices.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson