[U-Boot] [PATCH v2 2/2] arm nomadik: add i2c
Wolfgang Denk
wd at denx.de
Mon Jul 27 22:22:01 CEST 2009
Dear Jean-Christophe PLAGNIOL-VILLARD,
In message <20090727200408.GC5259 at game.jcrosoft.org> you wrote:
>
> > @@ -110,6 +110,22 @@
> > #define CONFIG_PL01x_PORTS { (void *)CFG_SERIAL0, (void *)CFG_SERIAL1 }
> > #define CONFIG_PL011_CLOCK 48000000
> >
> > +/* i2c, for the port extenders (uses gpio.c in board directory) */
> > +#ifndef __ASSEMBLY__
> > +#include <asm/arch/gpio.h>
> I really do not like to include file from the config
> and it will be difficult to clean up when moving to Kconfig
But this is what many other boards are doing as well:
$ grep '#[ ]*include' include/configs/* | wc -l
591
> > +#define CONFIG_CMD_I2C
> > +#define CONFIG_SOFT_I2C
> > +#define CONFIG_SYS_I2C_SPEED 400000
> > +#define __SDA 63
> > +#define __SCL 62
> > +#define I2C_SDA(x) nmk_gpio_set(__SDA, x)
> > +#define I2C_SCL(x) nmk_gpio_set(__SCL, x)
> > +#define I2C_READ (nmk_gpio_get(__SDA)!=0)
> > +#define I2C_ACTIVE nmk_gpio_dir(__SDA, 1)
> > +#define I2C_TRISTATE nmk_gpio_dir(__SDA, 0)
> > +#define I2C_DELAY (udelay(2))
> it will better to define a couple of generic function where we implement it
> as this
But that's how the CONFIG_SOFT_I2C interface is currently designed and
used by all other boards, too.
See for example here:
$ grep I2C_ include/configs/TQM885D.h
#define CONFIG_SYS_I2C_SPEED 93000 /* 93 kHz is supposed to work */
#define CONFIG_SYS_I2C_SLAVE 0xFE
#define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
#define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
#define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
#define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
#define I2C_SDA(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
#define I2C_SCL(bit) if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
#define I2C_DELAY udelay(2) /* 1/4 I2C clock duration */
#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* EEPROM AT24C?? */
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 /* two byte address */
# define CONFIG_SYS_I2C_RTC_ADDR 0x68
We should not attempt to change the design of the soft-I2C driver at
this point in a release cycle.
If you care about these things, you should have posted such comments
when Heiko asked for comments more than 4 months ago, see
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/56416
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If a train station is a place where a train stops,
then what's a workstation?
More information about the U-Boot
mailing list