| 1 | --- a/arch/cris/arch-v10/drivers/Kconfig |
| 2 | +++ b/arch/cris/arch-v10/drivers/Kconfig |
| 3 | @@ -450,11 +450,31 @@ config ETRAX_I2C |
| 4 | i2c_arg = I2C_READARG(STA013_READ_ADDR, reg); |
| 5 | val = ioctl(fd, _IO(ETRAXI2C_IOCTYPE, I2C_READREG), i2c_arg); |
| 6 | |
| 7 | +config ETRAX_I2C_GVC |
| 8 | + bool "I2C GVC support" |
| 9 | + depends on ETRAX_ARCH_V10 && !ETRAX_I2C |
| 10 | + select ETRAX_I2C_USES_PB_NOT_PB_I2C |
| 11 | + help |
| 12 | + Enables an I2C driver with Geert Vancompernolle improvement. |
| 13 | + |
| 14 | +config ETRAX_I2C_SLAVE_DELAY |
| 15 | + bool "I2C Slave delay support" |
| 16 | + depends on ETRAX_I2C_GVC && EXPERIMENTAL |
| 17 | + help |
| 18 | + Enable this to enhanced master/slave dialog |
| 19 | + Improvement by Positive Going (www.positivegoing.it) and BK srl (www.b-k.it) |
| 20 | + |
| 21 | +config ETRAX_I2C_DYN_ALLOC |
| 22 | + bool "I2C major device dynamic alloc" |
| 23 | + depends on ETRAX_I2C_GVC && EXPERIMENTAL |
| 24 | + help |
| 25 | + Enable this to dynamicaly alloc major i2c device number |
| 26 | + |
| 27 | # this is true for most products since PB-I2C seems to be somewhat |
| 28 | # flawed.. |
| 29 | config ETRAX_I2C_USES_PB_NOT_PB_I2C |
| 30 | bool "I2C uses PB not PB-I2C" |
| 31 | - depends on ETRAX_I2C |
| 32 | + depends on ETRAX_I2C || ETRAX_I2C_GVC |
| 33 | help |
| 34 | Select whether to use the special I2C mode in the PB I/O register or |
| 35 | not. This option needs to be selected in order to use some drivers |
| 36 | @@ -478,7 +498,7 @@ config ETRAX_I2C_CLK_PORT |
| 37 | |
| 38 | config ETRAX_I2C_EEPROM |
| 39 | bool "I2C EEPROM (non-volatile RAM) support" |
| 40 | - depends on ETRAX_I2C |
| 41 | + depends on ETRAX_I2C || ETRAX_I2C_GVC |
| 42 | help |
| 43 | Enables I2C EEPROM (non-volatile RAM) on PB0 and PB1 using the I2C |
| 44 | driver. Select size option: Probed, 2k, 8k, 16k. |
| 45 | --- a/arch/cris/arch-v10/drivers/Makefile |
| 46 | +++ b/arch/cris/arch-v10/drivers/Makefile |
| 47 | @@ -4,6 +4,7 @@ |
| 48 | |
| 49 | obj-$(CONFIG_ETRAX_AXISFLASHMAP) += axisflashmap.o |
| 50 | obj-$(CONFIG_ETRAX_I2C) += i2c.o |
| 51 | +obj-$(CONFIG_ETRAX_I2C_GVC) += i2c_gvc.o |
| 52 | obj-$(CONFIG_ETRAX_I2C_EEPROM) += eeprom.o |
| 53 | obj-$(CONFIG_ETRAX_GPIO) += gpio.o |
| 54 | obj-$(CONFIG_ETRAX_DS1302) += ds1302.o |
| 55 | |