[RFC] at24: get devfs name from dt aliase

Sascha Hauer s.hauer at pengutronix.de
Sun Nov 29 23:16:51 PST 2015


On Fri, Nov 27, 2015 at 08:37:02AM +0000, Trent Piepho wrote:
> > -----Original Message-----
> > From: Antony Pavlov [mailto:antonynpavlov at gmail.com]
> > 
> > At the moment barebox can't work correctly with more that one at24
> > eeprom because drivers/eeprom/at24.c tries to register all eeproms as
> > /dev/eeprom0.
> 
> I had this same problem with my system.  It is because different types of EEPROMs have different names and the IDs are assigned sequentially for each different name.  So if you have two 24c02 and one 24c1025, they would have the ids 0, 1, and 0.  The code that produces the IDs for the i2c devices (24c020, 24c021, 2401250) does not know that the eeprom driver will try to make cdevs with the same name pattern from all of them.
> 
> I did a different solution, see below, but didn't send it out as I'm not happy with it.  I thought also of an alias like this, but feel like there are also problems with that approach.
> 
> 1. It seems like it should not be necessary to add aliases to get the system to work at all.

Antonys patch falls back to dynamic numbering if no alias is found.

> 2. My system also has <64 kB xloader which does not use OF to save
> space.  So alias will not work.  I don't know of an alternative to the
> alias system when using i2c_register_board_info().

We also have the approach of putting the name into platform_data, this
is done with some MMC controllers. However, with an xloader wouldn't it
be possible to just register the device which you need? You don't need
all EEPROMs in the xloader, right?

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list