--- a/arch/cris/arch-v10/drivers/Kconfig +++ b/arch/cris/arch-v10/drivers/Kconfig @@ -450,11 +450,31 @@ config ETRAX_I2C i2c_arg = I2C_READARG(STA013_READ_ADDR, reg); val = ioctl(fd, _IO(ETRAXI2C_IOCTYPE, I2C_READREG), i2c_arg); +config ETRAX_I2C_GVC + bool "I2C GVC support" + depends on ETRAX_ARCH_V10 && !ETRAX_I2C + select ETRAX_I2C_USES_PB_NOT_PB_I2C + help + Enables an I2C driver with Geert Vancompernolle improvement. + +config ETRAX_I2C_SLAVE_DELAY + bool "I2C Slave delay support" + depends on ETRAX_I2C_GVC && EXPERIMENTAL + help + Enable this to enhanced master/slave dialog + Improvement by Positive Going (www.positivegoing.it) and BK srl (www.b-k.it) + +config ETRAX_I2C_DYN_ALLOC + bool "I2C major device dynamic alloc" + depends on ETRAX_I2C_GVC && EXPERIMENTAL + help + Enable this to dynamicaly alloc major i2c device number + # this is true for most products since PB-I2C seems to be somewhat # flawed.. config ETRAX_I2C_USES_PB_NOT_PB_I2C bool "I2C uses PB not PB-I2C" - depends on ETRAX_I2C + depends on ETRAX_I2C || ETRAX_I2C_GVC help Select whether to use the special I2C mode in the PB I/O register or not. This option needs to be selected in order to use some drivers @@ -478,7 +498,7 @@ config ETRAX_I2C_CLK_PORT config ETRAX_I2C_EEPROM bool "I2C EEPROM (non-volatile RAM) support" - depends on ETRAX_I2C + depends on ETRAX_I2C || ETRAX_I2C_GVC help Enables I2C EEPROM (non-volatile RAM) on PB0 and PB1 using the I2C driver. Select size option: Probed, 2k, 8k, 16k. --- a/arch/cris/arch-v10/drivers/Makefile +++ b/arch/cris/arch-v10/drivers/Makefile @@ -4,6 +4,7 @@ obj-$(CONFIG_ETRAX_AXISFLASHMAP) += axisflashmap.o obj-$(CONFIG_ETRAX_I2C) += i2c.o +obj-$(CONFIG_ETRAX_I2C_GVC) += i2c_gvc.o obj-$(CONFIG_ETRAX_I2C_EEPROM) += eeprom.o obj-$(CONFIG_ETRAX_GPIO) += gpio.o obj-$(CONFIG_ETRAX_DS1302) += ds1302.o