On 11/12/2012 11:24 PM, Heiko Schocher wrote: > Hello Stephen, > > On 08.11.2012 18:05, Stephen Warren wrote: >> On 11/07/2012 11:47 PM, Heiko Schocher wrote: >>> On 01.11.2012 18:03, Stephen Warren wrote: >> ... >>>> I'd suggest having a CONFIG_SYS_I2C_DRIVERS variable at most, and each >>>> driver registers an arbitrary number of adapters and/or buses during >>>> its >>>> initialization. >>> >>> Why should an i2c driver register buses? That is board specific. >> >> I don't entirely agree here. Certainly the information is >> board-specific, but I don't believe that precludes bus registration >> occurring from the I2C adapter drivers themselves, based on information >> passed from a board file or device tree. >> >> If a particular adapter is instantiated by the board, then there is >> clearly an I2C bus attached to that adapter. Hence, it's quite >> reasonable for the adapter itself to register the bus directly attached >> to it. > > But some i2c drivers have more than one instance... would you for all > boards register all possible instances of a driver? ...
Register, but perhaps not initialize, seems fine to me. After all, what if the user wishes to use the I2C adapters for some custom command; up-front registration of all valid adapters is required for that, although actual initialization can always be deferred until if/when the adapter is actually used. The other issue is that as I pointed out before, the move to define which I2C (and all other peripheral) adapters are used via device tree rather than board/config files on some U-Boot platforms seems completely at odds with not always registering all I2C adapters, at least on the platforms that use device tree. >> Following on from there, if there's an I2C bus mux attached to some I2C >> bus, then there are clearly I2C buses downstream from the bus mux, and >> the bus mux driver knows exactly how many there are, and can register >> those buses. > > Here again, why register all possible buses? We are just a bootloader ... I don't see how being a bootloader is relevant. After all, people can use for example U-Boot I2C or GPIO commands for board bringup, to implement HW initialization via custom boot scripts, etc. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot