[PATCH v5 2/4] ARM: mvebu: Add quirk for i2c for the OpenBlocks AX3-4 board

Jason Cooper jason at lakedaemon.net
Fri Jan 10 16:19:20 EST 2014


On Fri, Jan 10, 2014 at 02:06:34PM -0700, Jason Gunthorpe wrote:
> On Fri, Jan 10, 2014 at 02:45:50PM -0500, Jason Cooper wrote:
> 
> > > IMHO the compatible string should represent a specific HW/SW ABI. So
> > > you need a unique compatible string for every variation of that ABI.
> > 
> > My concern is that we tend to do things like "marvell,orion-sata" for
> > the first version of the IP block we can work with.  orion5x, kirkwood,
> > dove, and armada 370/xp all use that compatible string to refer to that
> > IP block.
> 
> Right, absent guidance from the originators of the IP block that is
> sort of all we are left with. But something like 'marvell,orion-sata'
> is just a label to describe the ABI implemented by the HW on that
> particular chip.
> 
> > Given that we look at it as 'and newer', '...-a0-i2c' would mean no
> > offloading until we introduce '-b0-i2c'.  Or am I mis-understanding what
> > you're saying?
> 
> I would stop thinking of this in terms of 'is newer' / 'is older'.
> 
> marvell,orion-sata means any HW that implements the same ABI as the
> orion chip. 
> 
> When we get a different chip that has a compatible, but extended ABI
> we introduce a new label:
> 
>  compatible = "marvell,foobar-sata", "marvell,orion-sata";
> 
> And if we get one that has a very similar, but incompatible ABI, we
> still introduce a new label:
> 
>  compatible = "marvell,foobar2-sata";
> 
> And everything works properly.
> 
> > > We already have a compatible string defined for the ABI that B0
> > > presents.
> > 
> > So 'mv78230-i2c' is newer than 'mv78230-a0-i2c', or are you referring to
> > something else?
> 
> 'mv78230-i2c' is the name that was picked to describe the ABI that
> works as-documented in the manual
> 'mv78230-a0-i2c' is the name that was picked to describe the ABI that
> works as-implemented in the A0 chip :)

Ok, so my only outstanding concern is that 'mv78230-i2c' has been used
to refer to the A0 revision of the i2c IP block (v3.12).  If we now
change the meaning to be "as documented" then we get broken systems.

thx,

Jason.

> There is no newer/older, they are just two different ABIs.
> 
> I guess it turns out that 'mv78230-a0-i2c' is a strict compatible
> subset of 'mv78230-i2c' - but that doesn't really make a difference.
> 
> The 'mv78230-i2c' driver is guarenteed avaialble in all places where
> the 'mv78230-a0-i2c' driver would be available.
> 
> Jason



More information about the linux-arm-kernel mailing list