On Mon, May 23, 2011 at 3:58 AM, Russell King - ARM Linux
<linux@xxxxxxxxxxxxxxxx> wrote:
On Mon, May 23, 2011 at 11:37:04AM +0200, Kristoffer Glembo wrote:Grant Likely wrote:In the case we're talking about the bus really is an AMBA bus, and all
the devices on it are in some sense real amba devices. The problem is
that not all of the devices on the bus implement peripheral ID
registers or other mechanisms that good upstanding AMBA devices are
expected to have.
Before we go hardware bashing of non primecell AMBA devices I would just
want to point out that the primecell stuff is not part of the AMBA
specification.
And before we go down that route, let me point out that the 'amba bus'
stuff in the kernel is there to support primecells, rather than all
devices which the AMBA specification covers.
The reason it's called 'amba' is because back in 2001 or so when the
first primecell drivers were created, there was little information
available as to what AMBA, AHB, or APB even covered. All I had to go
on were the primecell documents themselves. The higher level documents
were not available to me.
So, despite it being called 'amba', it really is just for primecells
and if we didn't have the exposure to userspace, I'd have renamed it to
'apb' or similar instead.
Okay, that clarifies things a lot, and lends weight to the arguement
that it is perfectly normal and acceptable to have both amba_devices
and platform_devices on the same bus segment. Are there any cases
where amba primecells are being driven by platform_drivers? If so,
should those drivers have an amba_driver registration added?