On Sat, Oct 29, 2005 at 09:08:19PM +0200, Pavel Machek wrote: > > I2C drivers appear relatively late in the boot procedure and changing > > that isn't practical. I therefore ended up writing akita-ioexp which > > It seems that making i2c init early is only sane choice. I realize PC people > will hate it... but apart from that, why is it impractical? FWIW, I have also run into this "I need I2C early in boot, but it's not inited until late" on SiByte (arch/mips/sibyte/{sb1250,bcm1480}/setup.c). For the time being in the linux-mips tree we simply have two drivers talking to the I2C interface - sibyte/swarm/rtc_* and i2c-sibyte.c, and they are currently lacking even any trivial locking. We haven't seen any problems yet but that's due to limited exercise - the default config doesn't hook up any drivers for the other chips on I2C. How do other arches that have I2C RTCs deal with this problem? Or is there something wrong with how arch/mips/kernel/time.c:time_init deals with the rtc? > > There is a fundamental problem with the lack of a proper gpio interface > > in Linux. Every driver does something different with them (be it pxa > > specific gpios, SCOOP gpios, those on a IO expander, those on a video > > chip (w100fb springs to mind) to name just the Zaurus specific ones. > > Yup. GPIOs are not problem on i386, so noone solved this one :-(. I would also be overjoyed to have a GPIO infrastructure to plug into. (And I would say "GPIOs are not used on PCs"; I am confident the Geode driving the seat-back TV on this Song flight has GPIOs...) -andy