Point-to-point bus in device tree

Grant Likely grant.likely at secretlab.ca
Sat Apr 7 11:27:31 EST 2012


On Fri, 6 Apr 2012 08:16:10 -0700, David Brown <davidb at codeaurora.org> wrote:
> On Thu, Apr 05, 2012 at 01:08:29PM -0700, David Brown wrote:
> > On Thu, Apr 05, 2012 at 01:23:46PM -0600, Stephen Warren wrote:
> > > On 04/05/2012 12:15 PM, David Brown wrote:
> > > > Some MSM SoCs have a small serial-type "bus" that is used to
> > > > communicate with the PMIC devices.  This interface is always
> > > > point-to-point.  I'm doing a device-tree conversion of the driver that
> > > > Ken Heitke posted last year <https://lkml.org/lkml/2011/2/17/503>.
> > > > 
> > > > A naive conversion to device tree, would result in something like
> > > > this:
> > > > 
> > > > 	qcom,ssbi at 500000 {
> > > > 		compatible = "qcom,ssbi";
> > > > 		reg = <0x500000 0x1000>;
> > > > 		qcom,controller-type = "ssbi";
> > > > 
> > > > 		qcom,pmic8058 at 0 {
> > > > 			reg = <0x0 0x01>;
> > > > 			...
> > > > 		}
> > > > 	}
> > > > 
> > > > There would end up being an extraneous register for the device on the
> > > > other end (there are no addresses), and there would need to be code in
> > > > the ssbi driver to traverse this small tree to find these nodes.
> > > 
> > > Isn't that extra code simply:
> > > 
> > > of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
> > > 
> > > That seems like pretty low overhead.
> > 
> > True, but it still bothers me to have to have a bogus register.
> 
> Ok, not sure where I got that idea, but I don't appear to actually
> need a register in the pmic8058 node for of_platform_populate to
> create a platform device.  It only needs a compatible field.  So, it
> look like that matches just what I need.

Correct.  Don't use a reg and all will look good.

g.


More information about the devicetree-discuss mailing list