
Hello Peter,
Peter Tyser wrote:
diff --git a/drivers/i2c/twl4030_i2c.c b/drivers/i2c/twl4030_i2c.c index 774f813..549f974 100644 --- a/drivers/i2c/twl4030_i2c.c +++ b/drivers/i2c/twl4030_i2c.c @@ -35,3 +35,25 @@ static inline int twl4030_i2c_read_u8(u8 chip_no, u8 *val, u8 reg) return i2c_read(chip_no, reg, 1, val, 1); }
+/*
- Power Reset
- */
+void twl4030_power_reset_init(void) +{ +#ifdef CONFIG_OMAP3_ZOOM2
- u8 val = 0;
- if (twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, &val,
TWL4030_PM_MASTER_P1_SW_EVENTS)) {
printf("Error:TWL4030: failed to read the power register\n");
printf("Could not initialize hardware reset\n");
- } else {
val |= TWL4030_PM_MASTER_SW_EVENTS_STOPON_PWRON;
if (twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, val,
TWL4030_PM_MASTER_P1_SW_EVENTS)) {
printf("Error:TWL4030: failed to write the power register\n");
printf("Could not initialize hardware reset\n");
}
- }
+#endif +}
All other drivers in drivers/i2c are host adapter drivers. Ie they implement i2c_read(), i2c_write(), i2c_probe(), and i2c_init(). The twl4030_i2c.c driver doesn't seem to fit this mold. Perhaps it would be better placed in drivers/misc or a new drivers/power directory similar to Linux?
Ack. Ah, I see, maybe drivers/power would be a better place for it.
FWIW I had the same dilemma with the ds4510 i2c device which has support for GPIO, EEEPROM, etc and ended up putting it in drivers/misc.
Yes, I want to see in drivers/i2c only drivers, which implement the i2c_* functions ... This twl4030 and the ds4510 drivers, use an i2c driver from hopefully in "drivers/i2c", and should go in an "drivers/"subsystem"" directory ...
bye Heiko