Scott, I believe that platform_device_register would be implemented in your driver. Try looking at some examples in under the driver directory grep -r platform_device_register <path to driver dir> or http://www.gelato.unsw.edu.au/lxr/ident?a=arm;i=platform_driver_register I'm also thinking about using this instead on ioremap. I just need to figure out How it hooks into user land apps. Stuart -----Original Message----- From: linux-cirrus-bounce@xxxxxxxxxxxxx [mailto:linux-cirrus-bounce@xxxxxxxxxxxxx] On Behalf Of Wagner Scott (ST-IN/ENG1.1) Sent: Wednesday, June 27, 2007 1:18 PM To: linux-cirrus@xxxxxxxxxxxxx Subject: [linux-cirrus] Re: How to determine if a device is an AMBA device >> Hello all, >> >> It is not clear to me what it means to be an AMBA device. >> >> Russell King alluded to this in his post >> http://lists.arm.linux.org.uk/pipermail/linux-arm/2006-August/012098.htm >> l: "Only use an amba_device _IF_ you have a real AMBA device. It's not >> for willy nilly random drivers." >> >> The case for which I am confused is an external peripheral connected to >> a Cirrus Logic EP93xx (ARM920T) address & data bus using the EP93xx >> static memory controller and one of the external interrupts (/INT1). >> >> Is this an AMBA device, which should use amba_driver_register(), >> amba_device_register(), and friends in ./arch/arm/common/amba.c and >> ./include/asm/hardware/amba.h, (since it uses the EP93xx's AMBA static >> memory and interrupt controllers)? >> >See this http://lxr.linux.no/source/arch/arm/mach-ep93xx/core.c?a=arm > >the uart inside the chip are AMBA devices, but other devices are >platform_devices, >registered using platform_device_register and platform_driver_register. >> Or is it an "ordinary" device which should use the generic Linux >> ioremap_nocache() and request_irq() mechanism, as Russell suggests? >> >Yep, except you should not call ioremap but let platform_device_register do it for you. Thanks, Jean-Philippe! Is platform_device_register() usage documented somewhere? Is there an example? Should platform_device_register be called from the machine init, or may it be called from the (perhaps modular) driver using it? Regards, Scott