Hi Heiko,

On 03/20/2015 06:10 PM, Heiko Schocher wrote:
Hello Bo,

Am 20.03.2015 10:44, schrieb Bo Shen:
Hi Heiko,
   After check the software i2c code, I found it can not support multi
instances, although it has I2C_SOFT_DECLARATIONS2,
I2C_SOFT_DECLARATIONS3, I2C_SOFT_DECLARATIONS4.
   Because, when do GPIO operation, there is only one pair of
CONFIG_SOFT_I2C_GPIO_SCL and CONFIG_SOFT_I2C_GPIO_SDA.
   So, if want to support multi instances, it needs to extend the GPIO
configuration for SCL/SDA, am I right?

Prefered way should be to use DM, Przemyslaw posted patches
for the soft-i2c driver, see
http://lists.denx.de/pipermail/u-boot/2015-March/207641.html

maybe you can try this?

Thanks for your information.
As I try to use the old version of U-Boot, it doesn't support DM well.

If not, you are right, you must define your own
I2C_SCL/I2C_SDA/I2C_READ/I2C_INIT
defines, for example:

#  define I2C_SCL(bit) \
         do { \
         switch(I2C_ADAP_HWNR) {
             case 0:

gpio_direction_output(CONFIG_SOFT_I2C_GPIO_SCL_0, bit); \
                 break;
             case 1:

gpio_direction_output(CONFIG_SOFT_I2C_GPIO_SCL_1, bit); \
                 break;
             [...]
                 I2C_GPIO_SYNC; \
         } while (0)

For this, the I2C_SCL and I2C_SDA working, however for I2C_READ, it maybe need to modify the definition from micro to function, as the I2C_READ can not use do {} while.

Thanks again.

bye,
Heiko

Best Regards,
Bo Shen
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to