MPC52xx: sysfs failure on adding new device driver
Sylvain Munaut
tnt at 246tNt.com
Thu Jun 9 21:28:28 EST 2005
Grant Likely wrote:
> I'm working on an MPC52xx SPI device driver using one of the PSC.
> However, when I call driver_register() I get a failure (-17, EEXISTS)
> with a traceback (posted below).
>
> I've tracked it down to failing when trying to create a sysfs entry
> for the driver. It fails because sysfs tries to create a directory
> that already exists (mpc52xx_psc). The directory was already created
> when the psc serial port device driver was registered.
>
>>From what I can tell, I should be able to register more than one
> driver for a particular device name (mpc52xx_psc).
I always assumed that yes.
But now looking more closely, I'm not sure what I based that assumption
on ... And if not the case that's indeed a problem because that's what's
used to support the different function supported by the PSCs.
> Otherwise I would
> need to change arch/ppc/syslib/mpc52xx_devices.c to have a different
> name for each psc.
No you shouldn't have to touch that. The
mpc52xx_match_psc_function(idx, "spi") is there to know which driver
should be used for what PSC and you're using it correctly so it _should_
work.
> If I change the sysfs code to ignore the failure
> to create a directory then the driver seems to register fine.
A "better" quick-fix would be to change the platform_match
(drivers/platform.c) to support "sub-fonctions". For example when using
mpc52xx_psc.spi it only matches what's before the dot (if any) with the
device name.
That changes the semantic of the driver names for the platform bus
however, making the dot a "special" char.
Sylvain
More information about the Linuxppc-embedded
mailing list