Re: MPC52xx: sysfs failure on adding new device driver
From: Sylvain Munaut <hidden>
Date: 2005-06-09 11:28:24
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.quoted
From what I can tell, I should be able to register more than onedriver 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