diff options
Diffstat (limited to 'include')
132 files changed, 418 insertions, 375 deletions
| diff --git a/include/configs/A3000.h b/include/configs/A3000.h index d506a558c..340c6851f 100644 --- a/include/configs/A3000.h +++ b/include/configs/A3000.h @@ -86,8 +86,8 @@   * PCI stuff   *-----------------------------------------------------------------------   */ -#define CONFIG_HARD_I2C		1		/* To enable I2C support	*/ -#undef	CONFIG_SOFT_I2C				/* I2C bit-banged		*/ +#define CONFIG_HARD_I2C		1		/* To enable I2C support */ +#undef	CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/BSC9131RDB.h b/include/configs/BSC9131RDB.h index b5911c694..a3f64408d 100644 --- a/include/configs/BSC9131RDB.h +++ b/include/configs/BSC9131RDB.h @@ -277,7 +277,6 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_FSL_I2C			/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_I2C_CMD_TREE  #define CONFIG_SYS_I2C_SPEED		400000 /* I2C speed and slave address*/ diff --git a/include/configs/CANBT.h b/include/configs/CANBT.h index be9238e52..fd3eff0c1 100644 --- a/include/configs/CANBT.h +++ b/include/configs/CANBT.h @@ -180,6 +180,7 @@  /*-----------------------------------------------------------------------   * I2C EEPROM (CAT24WC08) for environment   */ +#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1	/* Bytes of address	*/  #define CONFIG_HARD_I2C			/* I2C with hardware support */  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */ diff --git a/include/configs/CPU86.h b/include/configs/CPU86.h index 7ac182f0f..43b07cf46 100644 --- a/include/configs/CPU86.h +++ b/include/configs/CPU86.h @@ -129,10 +129,11 @@  /*-----------------------------------------------------------------------   * I2C/EEPROM/RTC configuration   */ -#define	CONFIG_SOFT_I2C			/* Software I2C support enabled	*/ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE -# define CONFIG_SYS_I2C_SPEED		50000 -# define CONFIG_SYS_I2C_SLAVE		0xFE  /*   * Software (bit-bang) I2C driver configuration   */ diff --git a/include/configs/CPU87.h b/include/configs/CPU87.h index 3e9c21cc9..9c3b3d5b4 100644 --- a/include/configs/CPU87.h +++ b/include/configs/CPU87.h @@ -133,10 +133,11 @@  /*-----------------------------------------------------------------------   * I2C/EEPROM/RTC configuration   */ -#define CONFIG_SOFT_I2C			/* Software I2C support enabled */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE -# define CONFIG_SYS_I2C_SPEED		50000 -# define CONFIG_SYS_I2C_SLAVE		0xFE  /*   * Software (bit-bang) I2C driver configuration   */ diff --git a/include/configs/DU440.h b/include/configs/DU440.h index 4970ea657..152821f56 100644 --- a/include/configs/DU440.h +++ b/include/configs/DU440.h @@ -171,7 +171,6 @@   * I2C   */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support    */ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged	        */  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address  */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/GEN860T.h b/include/configs/GEN860T.h index 9a649ca12..cc03d397d 100644 --- a/include/configs/GEN860T.h +++ b/include/configs/GEN860T.h @@ -158,26 +158,33 @@  /*   * Enable I2C and select the hardware/software driver   */ -#define CONFIG_HARD_I2C		1				/* CPM based I2C			*/ -#undef	CONFIG_SOFT_I2C						/* Bit-banged I2C			*/ +#define CONFIG_HARD_I2C		1		/* CPM based I2C */ +#undef	CONFIG_SYS_I2C_SOFT			/* Bit-banged I2C */  #ifdef CONFIG_HARD_I2C -#define	CONFIG_SYS_I2C_SPEED		100000			/* clock speed in Hz		*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE			/* I2C slave address		*/ +#define	CONFIG_SYS_I2C_SPEED		100000	/* clock speed in Hz */ +#define CONFIG_SYS_I2C_SLAVE		0xFE	/* I2C slave address */  #endif -#ifdef CONFIG_SOFT_I2C -#define PB_SCL				0x00000020		/* PB 26					*/ -#define PB_SDA				0x00000010		/* PB 27					*/ -#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; \ -								else    immr->im_cpm.cp_pbdat &= ~PB_SDA -#define I2C_SCL(bit)		if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \ -								else    immr->im_cpm.cp_pbdat &= ~PB_SCL -#define I2C_DELAY			udelay(5)		/* 1/4 I2C clock duration	*/ +#ifdef CONFIG_SYS_I2C_SOFT +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE +#define PB_SCL		0x00000020		/* PB 26 */ +#define PB_SDA		0x00000010		/* PB 27 */ +#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; \ +			else \ +				immr->im_cpm.cp_pbdat &= ~PB_SDA +#define I2C_SCL(bit)	if (bit) \ +				immr->im_cpm.cp_pbdat |=  PB_SCL; \ +			else \ +				immr->im_cpm.cp_pbdat &= ~PB_SCL +#define I2C_DELAY	udelay(5) /* 1/4 I2C clock duration */  #endif  /* diff --git a/include/configs/HIDDEN_DRAGON.h b/include/configs/HIDDEN_DRAGON.h index dbad1fd6a..071b4be73 100644 --- a/include/configs/HIDDEN_DRAGON.h +++ b/include/configs/HIDDEN_DRAGON.h @@ -169,12 +169,15 @@   * configuration items that the driver uses to drive the port pins.   */  #define CONFIG_HARD_I2C		1		/* To enable I2C support	*/ -#undef	CONFIG_SOFT_I2C				/* I2C bit-banged		*/ +#undef	CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT  #error "Soft I2C is not configured properly.  Please review!" +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  #define I2C_PORT		3		/* Port A=0, B=1, C=2, D=3 */  #define I2C_ACTIVE		(iop->pdir |=  0x00010000)  #define I2C_TRISTATE		(iop->pdir &= ~0x00010000) @@ -184,7 +187,7 @@  #define I2C_SCL(bit)		if(bit) iop->pdat |=  0x00020000; \  				else	iop->pdat &= ~0x00020000  #define I2C_DELAY		udelay(5)	/* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */ +#endif /* CONFIG_SYS_I2C_SOFT */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x57		/* EEPROM IS24C02		*/  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1		/* Bytes of address		*/ diff --git a/include/configs/ICU862.h b/include/configs/ICU862.h index b58b6f638..ca8138bf0 100644 --- a/include/configs/ICU862.h +++ b/include/configs/ICU862.h @@ -106,12 +106,10 @@  #define CONFIG_DOS_PARTITION  /* enable I2C and select the hardware/software driver */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ -# define CONFIG_SYS_I2C_SPEED		50000 -# define CONFIG_SYS_I2C_SLAVE		0xFE -# define CONFIG_SYS_I2C_EEPROM_ADDR	0x50 -# define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1	/* Bytes of address		*/ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -133,6 +131,9 @@  #define	CONFIG_RTC_MPC8xx		/* use internal RTC of MPC8xx	*/ +#define CONFIG_SYS_I2C_EEPROM_ADDR	0x50 +#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1	/* Bytes of address */ +  /*   * Command line configuration. diff --git a/include/configs/IDS8247.h b/include/configs/IDS8247.h index 6d0937fb3..b5a8d37e7 100644 --- a/include/configs/IDS8247.h +++ b/include/configs/IDS8247.h @@ -73,11 +73,10 @@  #define CONFIG_MISC_INIT_R	1  /* enable I2C and select the hardware/software driver */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7F - +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	400000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  /*   * Software (bit-bang) I2C driver configuration   */ diff --git a/include/configs/IP860.h b/include/configs/IP860.h index 237971856..e5cc4e389 100644 --- a/include/configs/IP860.h +++ b/include/configs/IP860.h @@ -62,8 +62,10 @@  /* enable I2C and select the hardware/software driver */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -80,9 +82,6 @@  			else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ - -# define CONFIG_SYS_I2C_SPEED		50000 -# define CONFIG_SYS_I2C_SLAVE		0xFE  # define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* EEPROM X24C16		*/  # define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1	/* bytes of address		*/  /* mask of address bits that overflow into the "EEPROM chip address"    */ diff --git a/include/configs/IPHASE4539.h b/include/configs/IPHASE4539.h index 6dd98128d..b1fec10b2 100644 --- a/include/configs/IPHASE4539.h +++ b/include/configs/IPHASE4539.h @@ -110,15 +110,13 @@   * If the software driver is chosen, there are some additional   * configuration items that the driver uses to drive the port pins.   */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7F - +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	400000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  /*   * Software (bit-bang) I2C driver configuration   */ -#ifdef CONFIG_SOFT_I2C  #define I2C_PORT	3		/* Port A=0, B=1, C=2, D=3 */  #define I2C_ACTIVE	(iop->pdir |=  0x00010000)  #define I2C_TRISTATE	(iop->pdir &= ~0x00010000) @@ -128,7 +126,6 @@  #define I2C_SCL(bit)	if(bit) iop->pdat |=  0x00020000; \  			else    iop->pdat &= ~0x00020000  #define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */  /* diff --git a/include/configs/JSE.h b/include/configs/JSE.h index 6ce789d7f..76509be04 100644 --- a/include/configs/JSE.h +++ b/include/configs/JSE.h @@ -211,7 +211,6 @@  #define CONFIG_SYS_HZ		1000		/* decrementer freq: 1 ms ticks */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/KAREF.h b/include/configs/KAREF.h index 8d5e8ff65..5736fcfa1 100644 --- a/include/configs/KAREF.h +++ b/include/configs/KAREF.h @@ -134,7 +134,6 @@   * I2C   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C	      1		     /* I2C hardware support	*/ -#undef	CONFIG_SOFT_I2C			     /* I2C !bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED	      400000	     /* I2C speed 400kHz	*/  #define CONFIG_SYS_I2C_SLAVE	      0x7F	     /* I2C slave address	*/ diff --git a/include/configs/KUP4K.h b/include/configs/KUP4K.h index dae9b8c07..d6f3a628e 100644 --- a/include/configs/KUP4K.h +++ b/include/configs/KUP4K.h @@ -106,13 +106,11 @@  /*   * enable I2C and select the hardware/software driver   */ -#undef	CONFIG_HARD_I2C		/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C		/* I2C bit-banged		*/ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	93000	/* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE -#define CONFIG_SYS_I2C_SPEED	93000	/* 93 kHz is supposed to work */ -#define CONFIG_SYS_I2C_SLAVE	0xFE - -#ifdef CONFIG_SOFT_I2C  /*   * Software (bit-bang) I2C driver configuration   */ @@ -128,7 +126,6 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(2)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */  /*-----------------------------------------------------------------------   * I2C Configuration diff --git a/include/configs/KUP4X.h b/include/configs/KUP4X.h index cceee9674..247374922 100644 --- a/include/configs/KUP4X.h +++ b/include/configs/KUP4X.h @@ -114,13 +114,13 @@  /*   * enable I2C and select the hardware/software driver   */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C         1	/* I2C bit-banged		*/ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ -#define CONFIG_SYS_I2C_SPEED		93000	/* 93 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE +#ifdef CONFIG_SYS_I2C_SOFT +#define CONFIG_SYS_I2C_SOFT_SPEED	93000	/* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE -#ifdef CONFIG_SOFT_I2C  /*   * Software (bit-bang) I2C driver configuration   */ @@ -136,7 +136,7 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(2)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */ +#endif	/* CONFIG_SYS_I2C_SOFT */  /*----------------------------------------------------------------------- diff --git a/include/configs/M5208EVBE.h b/include/configs/M5208EVBE.h index a1eaeff80..209c1223f 100644 --- a/include/configs/M5208EVBE.h +++ b/include/configs/M5208EVBE.h @@ -84,7 +84,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C			/* I2C with hw support */ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x58000 diff --git a/include/configs/M52277EVB.h b/include/configs/M52277EVB.h index e4dea05ea..b1bdac2d7 100644 --- a/include/configs/M52277EVB.h +++ b/include/configs/M52277EVB.h @@ -147,7 +147,6 @@  /* I2c */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged               */  #define CONFIG_SYS_I2C_SPEED		80000	/* I2C speed and slave address  */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x58000 diff --git a/include/configs/M5235EVB.h b/include/configs/M5235EVB.h index 733aece76..dfc2ddf35 100644 --- a/include/configs/M5235EVB.h +++ b/include/configs/M5235EVB.h @@ -101,7 +101,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hw support */ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x00000300 diff --git a/include/configs/M5271EVB.h b/include/configs/M5271EVB.h index a5913df2c..e8a8998fc 100644 --- a/include/configs/M5271EVB.h +++ b/include/configs/M5271EVB.h @@ -111,7 +111,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hw support */ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x00000300 diff --git a/include/configs/M5275EVB.h b/include/configs/M5275EVB.h index 9c2a3bbb9..fbf0c9d9a 100644 --- a/include/configs/M5275EVB.h +++ b/include/configs/M5275EVB.h @@ -111,7 +111,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hw support */ -#undef CONFIG_SOFT_I2C  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x00000300 diff --git a/include/configs/M53017EVB.h b/include/configs/M53017EVB.h index 896d0d853..bedba2b29 100644 --- a/include/configs/M53017EVB.h +++ b/include/configs/M53017EVB.h @@ -103,7 +103,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C			/* I2C with hw support */ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x58000 diff --git a/include/configs/M5329EVB.h b/include/configs/M5329EVB.h index 64f83026c..06fa57cc0 100644 --- a/include/configs/M5329EVB.h +++ b/include/configs/M5329EVB.h @@ -97,7 +97,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C			/* I2C with hw support */ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x58000 diff --git a/include/configs/M5373EVB.h b/include/configs/M5373EVB.h index 4437bbae8..faa4f86e4 100644 --- a/include/configs/M5373EVB.h +++ b/include/configs/M5373EVB.h @@ -97,7 +97,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hw support */ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x58000 diff --git a/include/configs/M54418TWR.h b/include/configs/M54418TWR.h index 3be2f8ef3..627c1ae00 100644 --- a/include/configs/M54418TWR.h +++ b/include/configs/M54418TWR.h @@ -215,7 +215,7 @@  /* I2c */  #undef CONFIG_FSL_I2C  #undef CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */ +#undef	CONFIG_SYS_I2C_SOFT	/* I2C bit-banged */  /* I2C speed and slave address  */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/M54451EVB.h b/include/configs/M54451EVB.h index 6552f69cc..5dbe0b47c 100644 --- a/include/configs/M54451EVB.h +++ b/include/configs/M54451EVB.h @@ -158,7 +158,6 @@  /* I2c */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged               */  #define CONFIG_SYS_I2C_SPEED		80000	/* I2C speed and slave address  */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x58000 diff --git a/include/configs/M54455EVB.h b/include/configs/M54455EVB.h index 536b7556f..8246e68e4 100644 --- a/include/configs/M54455EVB.h +++ b/include/configs/M54455EVB.h @@ -191,7 +191,6 @@  /* I2c */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged               */  #define CONFIG_SYS_I2C_SPEED		80000	/* I2C speed and slave address  */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x58000 diff --git a/include/configs/M5475EVB.h b/include/configs/M5475EVB.h index 3bdb8673c..6e9cba00a 100644 --- a/include/configs/M5475EVB.h +++ b/include/configs/M5475EVB.h @@ -122,7 +122,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hw support */ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x00008F00 diff --git a/include/configs/M5485EVB.h b/include/configs/M5485EVB.h index 3487e49a1..24f28e0ff 100644 --- a/include/configs/M5485EVB.h +++ b/include/configs/M5485EVB.h @@ -119,7 +119,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C		/* I2C with hw support */ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x00008F00 diff --git a/include/configs/METROBOX.h b/include/configs/METROBOX.h index d1ef559cf..66c4798b5 100644 --- a/include/configs/METROBOX.h +++ b/include/configs/METROBOX.h @@ -196,7 +196,6 @@   * I2C   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C	      1		     /* I2C hardware support	*/ -#undef	CONFIG_SOFT_I2C			     /* I2C !bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED	      400000	     /* I2C speed 400kHz	*/  #define CONFIG_SYS_I2C_SLAVE	      0x7F	     /* I2C slave address	*/ diff --git a/include/configs/MHPC.h b/include/configs/MHPC.h index 3ff36ad2a..fdd811d77 100644 --- a/include/configs/MHPC.h +++ b/include/configs/MHPC.h @@ -73,8 +73,10 @@  #undef	CONFIG_UCODE_PATCH  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -91,8 +93,6 @@  			else	immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ -#define CONFIG_SYS_I2C_SPEED			50000 -#define CONFIG_SYS_I2C_SLAVE			0xFE  #define CONFIG_SYS_I2C_EEPROM_ADDR		0x50	/* EEPROM X24C04		*/  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN		1	/* bytes of address		*/  /* mask of address bits that overflow into the "EEPROM chip address"	*/ diff --git a/include/configs/MPC8323ERDB.h b/include/configs/MPC8323ERDB.h index ac4c25396..d32b14a10 100644 --- a/include/configs/MPC8323ERDB.h +++ b/include/configs/MPC8323ERDB.h @@ -234,7 +234,6 @@  /* I2C */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE	0x7F diff --git a/include/configs/MPC832XEMDS.h b/include/configs/MPC832XEMDS.h index 7c31f4795..a35c6b6d8 100644 --- a/include/configs/MPC832XEMDS.h +++ b/include/configs/MPC832XEMDS.h @@ -327,7 +327,6 @@  /* I2C */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE	0x7F diff --git a/include/configs/MPC8349EMDS.h b/include/configs/MPC8349EMDS.h index 212089c23..7c3f35c3a 100644 --- a/include/configs/MPC8349EMDS.h +++ b/include/configs/MPC8349EMDS.h @@ -355,7 +355,6 @@  /* I2C */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */ diff --git a/include/configs/MPC8349ITX.h b/include/configs/MPC8349ITX.h index 1130b59a2..c67ffdba0 100644 --- a/include/configs/MPC8349ITX.h +++ b/include/configs/MPC8349ITX.h @@ -131,8 +131,6 @@  #define I2C_8574_PCI66		0x20	/* 0=33MHz PCI, 1=66MHz PCI */  #define I2C_8574_FLASHSIDE	0x40	/* 0=Reset vector from U4, 1=from U7*/ -#undef CONFIG_SOFT_I2C -  #endif  /* Compact Flash */ diff --git a/include/configs/MPC8360EMDS.h b/include/configs/MPC8360EMDS.h index a71ac2bd3..4d6486bb3 100644 --- a/include/configs/MPC8360EMDS.h +++ b/include/configs/MPC8360EMDS.h @@ -424,7 +424,6 @@  /* I2C */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE	0x7F diff --git a/include/configs/MPC8360ERDK.h b/include/configs/MPC8360ERDK.h index fcca5424e..29e77195d 100644 --- a/include/configs/MPC8360ERDK.h +++ b/include/configs/MPC8360ERDK.h @@ -288,7 +288,6 @@  /* I2C */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */ diff --git a/include/configs/MPC837XEMDS.h b/include/configs/MPC837XEMDS.h index 480468f2d..91c8a3485 100644 --- a/include/configs/MPC837XEMDS.h +++ b/include/configs/MPC837XEMDS.h @@ -342,7 +342,6 @@  /* I2C */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_SYS_I2C_SPEED	400000 /* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE	0x7F diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h index d5c9d059e..3279e3cf6 100644 --- a/include/configs/MPC837XERDB.h +++ b/include/configs/MPC837XERDB.h @@ -368,7 +368,6 @@  /* I2C */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_SYS_I2C_SPEED	400000 /* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE	0x7F diff --git a/include/configs/MPC8536DS.h b/include/configs/MPC8536DS.h index cc2b7c332..f560b56d4 100644 --- a/include/configs/MPC8536DS.h +++ b/include/configs/MPC8536DS.h @@ -436,7 +436,6 @@   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/MPC8540ADS.h b/include/configs/MPC8540ADS.h index 6cb00ee66..a42dec4ed 100644 --- a/include/configs/MPC8540ADS.h +++ b/include/configs/MPC8540ADS.h @@ -262,7 +262,6 @@   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES        {0x69}	/* Don't probe these addrs */ diff --git a/include/configs/MPC8541CDS.h b/include/configs/MPC8541CDS.h index d0e6ca65b..13011b5a8 100644 --- a/include/configs/MPC8541CDS.h +++ b/include/configs/MPC8541CDS.h @@ -285,7 +285,6 @@ extern unsigned long get_clock_freq(void);   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES        {0x69}	/* Don't probe these addrs */ diff --git a/include/configs/MPC8544DS.h b/include/configs/MPC8544DS.h index 09d0835c6..b00468eb8 100644 --- a/include/configs/MPC8544DS.h +++ b/include/configs/MPC8544DS.h @@ -234,7 +234,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  /* I2C */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x57  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/MPC8548CDS.h b/include/configs/MPC8548CDS.h index d070f6adc..50e318c5d 100644 --- a/include/configs/MPC8548CDS.h +++ b/include/configs/MPC8548CDS.h @@ -360,8 +360,7 @@ extern unsigned long get_clock_freq(void);   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */ -#define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */ +#define CONFIG_SYS_I2C_SPEED		400000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES	{0x69}	/* Don't probe these addrs */  #define CONFIG_SYS_I2C_OFFSET		0x3000 diff --git a/include/configs/MPC8555CDS.h b/include/configs/MPC8555CDS.h index 483556b31..388ba9ba1 100644 --- a/include/configs/MPC8555CDS.h +++ b/include/configs/MPC8555CDS.h @@ -283,7 +283,6 @@ extern unsigned long get_clock_freq(void);   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES        {0x69}	/* Don't probe these addrs */ diff --git a/include/configs/MPC8560ADS.h b/include/configs/MPC8560ADS.h index 525e88fa1..04f6a656e 100644 --- a/include/configs/MPC8560ADS.h +++ b/include/configs/MPC8560ADS.h @@ -256,7 +256,6 @@   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES        {0x69}	/* Don't probe these addrs */ diff --git a/include/configs/MPC8568MDS.h b/include/configs/MPC8568MDS.h index f1bfdcbd2..05a69af6a 100644 --- a/include/configs/MPC8568MDS.h +++ b/include/configs/MPC8568MDS.h @@ -268,7 +268,6 @@ extern unsigned long get_clock_freq(void);   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x52 diff --git a/include/configs/MPC8569MDS.h b/include/configs/MPC8569MDS.h index c54755fab..23bd90880 100644 --- a/include/configs/MPC8569MDS.h +++ b/include/configs/MPC8569MDS.h @@ -304,7 +304,6 @@ extern unsigned long get_clock_freq(void);   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE	0x7F diff --git a/include/configs/MPC8572DS.h b/include/configs/MPC8572DS.h index 25303c4f6..45abcf61d 100644 --- a/include/configs/MPC8572DS.h +++ b/include/configs/MPC8572DS.h @@ -433,7 +433,6 @@  /* I2C */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x57 diff --git a/include/configs/MPC8610HPCD.h b/include/configs/MPC8610HPCD.h index f791e7682..0a2e39b11 100644 --- a/include/configs/MPC8610HPCD.h +++ b/include/configs/MPC8610HPCD.h @@ -254,7 +254,6 @@   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES	{0x69}	/* Don't probe these addrs */ diff --git a/include/configs/MPC8641HPCN.h b/include/configs/MPC8641HPCN.h index 4a3ca017e..3ac5b2beb 100644 --- a/include/configs/MPC8641HPCN.h +++ b/include/configs/MPC8641HPCN.h @@ -300,7 +300,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES	{0x69}	/* Don't probe these addrs */ diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h index 7b28a27bc..ed1a42916 100644 --- a/include/configs/P1010RDB.h +++ b/include/configs/P1010RDB.h @@ -491,7 +491,6 @@ extern unsigned long get_sdram_size(void);  #define CONFIG_FSL_I2C			/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_I2C_CMD_TREE  #define CONFIG_SYS_I2C_SPEED		400000 /* I2C speed and slave address*/ diff --git a/include/configs/P1023RDS.h b/include/configs/P1023RDS.h index 4943d7c8f..f6ee2515a 100644 --- a/include/configs/P1023RDS.h +++ b/include/configs/P1023RDS.h @@ -315,7 +315,6 @@ extern unsigned long get_clock_freq(void);  /* I2C */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x51 diff --git a/include/configs/P1_P2_RDB.h b/include/configs/P1_P2_RDB.h index 6ce4cbef9..699e9ebcd 100644 --- a/include/configs/P1_P2_RDB.h +++ b/include/configs/P1_P2_RDB.h @@ -369,7 +369,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  /* I2C */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_I2C_CMD_TREE  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address*/ diff --git a/include/configs/P2020COME.h b/include/configs/P2020COME.h index 05a75d8a7..c8f5a85de 100644 --- a/include/configs/P2020COME.h +++ b/include/configs/P2020COME.h @@ -227,7 +227,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);  /* I2C */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support */ -#undef  CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_I2C_CMD_TREE  #define CONFIG_SYS_I2C_SPEED		400000  /* I2C speed and slave address*/ diff --git a/include/configs/PM826.h b/include/configs/PM826.h index faadfe43c..5508313ce 100644 --- a/include/configs/PM826.h +++ b/include/configs/PM826.h @@ -57,10 +57,10 @@  	"bootm"  /* enable I2C and select the hardware/software driver */ -#undef  CONFIG_HARD_I2C -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ -# define CONFIG_SYS_I2C_SPEED		50000 -# define CONFIG_SYS_I2C_SLAVE		0xFE +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ diff --git a/include/configs/PM828.h b/include/configs/PM828.h index f563fbe33..3842f57c0 100644 --- a/include/configs/PM828.h +++ b/include/configs/PM828.h @@ -57,10 +57,10 @@  	"bootm"  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ -# define CONFIG_SYS_I2C_SPEED		50000 -# define CONFIG_SYS_I2C_SLAVE		0xFE +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ diff --git a/include/configs/PMC440.h b/include/configs/PMC440.h index 40c18274f..4b531828f 100644 --- a/include/configs/PMC440.h +++ b/include/configs/PMC440.h @@ -226,7 +226,6 @@   * I2C   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1	/* I2C with hardware support    */ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged               */  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address  */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/R360MPI.h b/include/configs/R360MPI.h index 60cccffc4..df16598e3 100644 --- a/include/configs/R360MPI.h +++ b/include/configs/R360MPI.h @@ -97,10 +97,13 @@  #define	CONFIG_RTC_MPC8xx		/* use internal RTC of MPC8xx	*/  #define CONFIG_HARD_I2C		1	/* To I2C with hardware support */ -#undef CONFIG_SORT_I2C			/* To I2C with software support */ +#undef CONFIG_SYS_I2C_SOFT		/* To I2C with software support */  #define CONFIG_SYS_I2C_SPEED		4700	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F +#if defined(CONFIG_SYS_I2C_SOFT) +#define CONFIG_SYS_SYS_I2C_SOFT_SPEED	4700 /* I2C speed and slave address */ +#define CONFIG_SYS_SYS_I2C_SOFT_SLAVE	0x7F  /*   * Software (bit-bang) I2C driver configuration   */ @@ -116,6 +119,7 @@  #define I2C_SCL(bit)		if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  				else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY		udelay(50) +#endif /* #define(CONFIG_SYS_I2C_SOFT) */  #define CONFIG_SYS_I2C_LCD_ADDR	0x8	/* LCD Control */  #define CONFIG_SYS_I2C_KEY_ADDR	0x9	/* Keyboard coprocessor */ diff --git a/include/configs/RPXClassic.h b/include/configs/RPXClassic.h index 3595200c4..8130ee6e0 100644 --- a/include/configs/RPXClassic.h +++ b/include/configs/RPXClassic.h @@ -148,14 +148,16 @@   * I2C Configuration   *-----------------------------------------------------------------------------   */ -#define CONFIG_I2C              1 -#define CONFIG_SYS_I2C_SPEED           50000 -#define CONFIG_SYS_I2C_SLAVE           0x34 +#define CONFIG_SYS_I2C_SPEED		50000 +#define CONFIG_SYS_I2C_SLAVE		0x34  /* enable I2C and select the hardware/software driver */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/ -#undef  CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#undef  CONFIG_SYS_I2C_SOFT		/* I2C bit-banged		*/ + +#if defined(CONFIG_SYS_I2C_SOFT) +#define CONFIG_SYS_I2C			1  /*   * Software (bit-bang) I2C driver configuration   */ @@ -170,8 +172,10 @@  #define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ -# define CONFIG_SYS_I2C_SPEED		50000 -# define CONFIG_SYS_I2C_SLAVE		0x34 +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x34 +#endif +  # define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* EEPROM X24C16		*/  # define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1	/* bytes of address		*/  /* mask of address bits that overflow into the "EEPROM chip address"    */ diff --git a/include/configs/RPXlite.h b/include/configs/RPXlite.h index 563abea95..9a385a48b 100644 --- a/include/configs/RPXlite.h +++ b/include/configs/RPXlite.h @@ -62,6 +62,36 @@  #undef	CONFIG_SYS_LOADS_BAUD_CHANGE		/* don't allow baudrate change	*/  #define CONFIG_BZIP2		/* Include support for bzip2 compressed images  */ + +/* enable I2C and select the hardware/software driver */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	40000	/* 40 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE +/* Software (bit-bang) I2C driver configuration */ +#define PB_SCL		0x00000020	/* PB 26 */ +#define PB_SDA		0x00000010	/* PB 27 */ + +#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; \ +			else \ +				immr->im_cpm.cp_pbdat &= ~PB_SDA +#define I2C_SCL(bit)	if (bit) \ +				immr->im_cpm.cp_pbdat |=  PB_SCL; \ +			else \ +				immr->im_cpm.cp_pbdat &= ~PB_SCL +#define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ + +/* M41T11 Serial Access Timekeeper(R) SRAM */ +#define CONFIG_RTC_M41T11 1 +#define CONFIG_SYS_I2C_RTC_ADDR 0x68 +/* play along with the linux driver */ +#define CONFIG_SYS_M41T11_BASE_YEAR 1900 +  #undef	CONFIG_WATCHDOG			/* watchdog disabled		*/  /* diff --git a/include/configs/RRvision.h b/include/configs/RRvision.h index e2ea01638..b14136df1 100644 --- a/include/configs/RRvision.h +++ b/include/configs/RRvision.h @@ -122,13 +122,10 @@  #endif  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ - -# define CONFIG_SYS_I2C_SPEED		50000	/* 50 kHz is supposed to work	*/ -# define CONFIG_SYS_I2C_SLAVE		0xFE - -#ifdef CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -144,7 +141,6 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(1)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */  /* diff --git a/include/configs/SXNI855T.h b/include/configs/SXNI855T.h index b7fbe5e15..f0ce2828c 100644 --- a/include/configs/SXNI855T.h +++ b/include/configs/SXNI855T.h @@ -121,7 +121,10 @@  #define	CONFIG_RTC_DS1306		/* Dallas 1306 real time clock	*/ -#define	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -138,8 +141,6 @@  			else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ -# define CONFIG_SYS_I2C_SPEED		50000 -# define CONFIG_SYS_I2C_SLAVE		0xFE  # define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* Atmel 24C64			*/  # define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2	/* two byte address		*/ diff --git a/include/configs/Sandpoint8240.h b/include/configs/Sandpoint8240.h index fa456ed79..65ca4259d 100644 --- a/include/configs/Sandpoint8240.h +++ b/include/configs/Sandpoint8240.h @@ -202,13 +202,16 @@   * If the software driver is chosen, there are some additional   * configuration items that the driver uses to drive the port pins.   */ -#define CONFIG_HARD_I2C		1		/* To enable I2C support	*/ -#undef  CONFIG_SOFT_I2C				/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7F +#define CONFIG_HARD_I2C		1		/* To enable I2C support */ +#undef  CONFIG_SYS_I2C_SOFT +#define CONFIG_SYS_I2C_SLAVE	0x7F +#define CONFIG_SYS_I2C_SPEED	400000 -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT  #error "Soft I2C is not configured properly.  Please review!" +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  #define I2C_PORT		3               /* Port A=0, B=1, C=2, D=3 */  #define I2C_ACTIVE		(iop->pdir |=  0x00010000)  #define I2C_TRISTATE		(iop->pdir &= ~0x00010000) @@ -218,7 +221,7 @@  #define I2C_SCL(bit)		if(bit) iop->pdat |=  0x00020000; \  				else    iop->pdat &= ~0x00020000  #define I2C_DELAY		udelay(5)	/* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */ +#endif /* CONFIG_SYS_I2C_SOFT */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x57		/* EEPROM IS24C02		*/ diff --git a/include/configs/Sandpoint8245.h b/include/configs/Sandpoint8245.h index cdc51a501..9a6937422 100644 --- a/include/configs/Sandpoint8245.h +++ b/include/configs/Sandpoint8245.h @@ -172,13 +172,16 @@   * If the software driver is chosen, there are some additional   * configuration items that the driver uses to drive the port pins.   */ -#define CONFIG_HARD_I2C		1		/* To enable I2C support	*/ -#undef  CONFIG_SOFT_I2C				/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7F +#define CONFIG_HARD_I2C		1		/* To enable I2C support */ +#undef  CONFIG_SYS_I2C_SOFT +#define CONFIG_SYS_I2C_SPEED	400000 +#define CONFIG_SYS_I2C_SLAVE	0x7F -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT  #error "Soft I2C is not configured properly.  Please review!" +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  #define I2C_PORT		3               /* Port A=0, B=1, C=2, D=3 */  #define I2C_ACTIVE		(iop->pdir |=  0x00010000)  #define I2C_TRISTATE		(iop->pdir &= ~0x00010000) @@ -188,7 +191,7 @@  #define I2C_SCL(bit)		if(bit) iop->pdat |=  0x00020000; \  				else    iop->pdat &= ~0x00020000  #define I2C_DELAY		udelay(5)	/* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */ +#endif /* CONFIG_SYS_I2C_SOFT */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x57		/* EEPROM IS24C02		*/  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1		/* Bytes of address		*/ diff --git a/include/configs/TASREG.h b/include/configs/TASREG.h index d95a22611..059fb362f 100644 --- a/include/configs/TASREG.h +++ b/include/configs/TASREG.h @@ -136,19 +136,11 @@  /*-----------------------------------------------------------------------   * I2C   */ -#define	CONFIG_SOFT_I2C -#define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address */ -#define CONFIG_SYS_I2C_SLAVE		0x7F -#define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* EEPROM CAT28WC32		*/ -#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2	/* Bytes of address		*/ -/* mask of address bits that overflow into the "EEPROM chip address"	*/ -#define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW	0x01 -#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 5	/* The Catalyst CAT24WC32 has	*/ -					/* 32 byte page write mode using*/ -					/* last 5 bits of the address	*/ -#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS	10   /* and takes up to 10 msec */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	100000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F -#if defined (CONFIG_SOFT_I2C)  #if 0 /* push-pull */  #define	SDA	        0x00800000  #define	SCL	        0x00000008 @@ -182,7 +174,17 @@  #define	I2C_ACTIVE	{DIR1|=SDA;}  #define	I2C_TRISTATE    {DIR1&=~SDA;}  #endif -#endif + +#define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* EEPROM CAT28WC32	*/ +#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2	/* Bytes of address	*/ +/* mask of address bits that overflow into the "EEPROM chip address"	*/ +#define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW	0x01 +/* + * The Catalyst CAT24WC32 has 32 byte page write mode using + * last 5 bits of the address + */ +#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 5 +#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 /* and takes up to 10 msec */  /*-----------------------------------------------------------------------   * Definitions for initial stack pointer and data area (in DPRAM) diff --git a/include/configs/TK885D.h b/include/configs/TK885D.h index 623cb6636..af8877373 100644 --- a/include/configs/TK885D.h +++ b/include/configs/TK885D.h @@ -104,13 +104,10 @@  #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ - -#define CONFIG_SYS_I2C_SPEED		93000	/* 93 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE - -#ifdef CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	93000	/* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -126,7 +123,6 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else	immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(2)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50		/* EEPROM AT24C??	*/  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2		/* two byte address	*/ diff --git a/include/configs/TOP5200.h b/include/configs/TOP5200.h index 2267d59d7..e9dcefc78 100644 --- a/include/configs/TOP5200.h +++ b/include/configs/TOP5200.h @@ -200,10 +200,13 @@  #define CONFIG_ENV_OVERWRITE  #define CONFIG_MISC_INIT_R -#undef	CONFIG_HARD_I2C			/* I2C with hardware support */ -#define	CONFIG_SOFT_I2C		1	/* I2C with softwate support */ +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ -#if defined (CONFIG_SOFT_I2C) +#if defined(CONFIG_SYS_I2C_SOFT) +#  define CONFIG_SYS_I2C +#  define CONFIG_SYS_I2C_SOFT_SPEED	100000 +#  define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F +/**/  #  define SDA0			0x40  #  define SCL0			0x80  #  define GPIOE0		*((volatile uchar*)(CONFIG_SYS_MBAR+0x0c00)) @@ -218,8 +221,7 @@  #  define I2C_DELAY		{udelay(5);}  #  define I2C_ACTIVE	{DDR0|=SDA0;}  #  define I2C_TRISTATE	{DDR0&=~SDA0;} -#  define CONFIG_SYS_I2C_SPEED		100000 -#  define CONFIG_SYS_I2C_SLAVE		0x7F +  #define CONFIG_SYS_I2C_EEPROM_ADDR 0x57  #define CONFIG_SYS_I2C_FACT_ADDR	0x57  #endif diff --git a/include/configs/TOP860.h b/include/configs/TOP860.h index 4849f94c9..1f728e3d4 100644 --- a/include/configs/TOP860.h +++ b/include/configs/TOP860.h @@ -159,7 +159,6 @@   * Environment handler   * only the first 6k in EEPROM are available for user. Of that we use 256b   */ -#define	CONFIG_SOFT_I2C  #define CONFIG_ENV_IS_IN_EEPROM	1	/* turn on EEPROM env feature */  #define CONFIG_ENV_OFFSET		0x1000  #define CONFIG_ENV_SIZE		0x0700 @@ -170,13 +169,15 @@  #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2  #define CONFIG_SYS_EEPROM_SIZE 0x2000 -#define	CONFIG_SYS_I2C_SPEED	100000 -#define	CONFIG_SYS_I2C_SLAVE	0xFE  #define	CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 12  #define CONFIG_ENV_OVERWRITE  #define CONFIG_MISC_INIT_R -#if defined (CONFIG_SOFT_I2C) +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	100000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE +/**/  #define	SDA	0x00010  #define	SCL	0x00020  #define __I2C_DIR	immr->im_cpm.cp_pbdir @@ -193,7 +194,6 @@  #define	I2C_DELAY	{ udelay(5); }  #define	I2C_ACTIVE	{ __I2C_DIR |= SDA; }  #define	I2C_TRISTATE	{ __I2C_DIR &= ~SDA; } -#endif  #define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200, 230400 } diff --git a/include/configs/TQM8260.h b/include/configs/TQM8260.h index 7e2413179..5fbfd1c97 100644 --- a/include/configs/TQM8260.h +++ b/include/configs/TQM8260.h @@ -89,10 +89,10 @@  #define CONFIG_BOOTCOMMAND	"run flash_self"  /* enable I2C and select the hardware/software driver */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7F +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	400000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  /*   * Software (bit-bang) I2C driver configuration diff --git a/include/configs/TQM8272.h b/include/configs/TQM8272.h index 3b3f9e630..c27e4ef1d 100644 --- a/include/configs/TQM8272.h +++ b/include/configs/TQM8272.h @@ -97,11 +97,10 @@  #if CONFIG_I2C  /* enable I2C and select the hardware/software driver */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7F - +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	400000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  /*   * Software (bit-bang) I2C driver configuration   */ @@ -135,8 +134,9 @@  #define CONFIG_SYS_DTT_HYSTERESIS	3  #else +#undef CONFIG_SYS_I2C  #undef CONFIG_HARD_I2C -#undef CONFIG_SOFT_I2C +#undef CONFIG_SYS_I2C_SOFT  #endif  /* diff --git a/include/configs/TQM834x.h b/include/configs/TQM834x.h index 966a6e3da..f22eb35c2 100644 --- a/include/configs/TQM834x.h +++ b/include/configs/TQM834x.h @@ -188,7 +188,6 @@   * I2C   */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed: 400KHz */  #define CONFIG_SYS_I2C_SLAVE		0x7F	/* slave address */ diff --git a/include/configs/TQM855M.h b/include/configs/TQM855M.h index e7fd2db28..1b558fc4d 100644 --- a/include/configs/TQM855M.h +++ b/include/configs/TQM855M.h @@ -93,13 +93,10 @@  #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C         1	/* I2C bit-banged		*/ - -#define CONFIG_SYS_I2C_SPEED		93000	/* 93 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE - -#ifdef CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	93000	/* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -115,7 +112,6 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(2)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50		/* EEPROM AT24C64	*/  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	2		/* two byte address	*/ diff --git a/include/configs/TQM866M.h b/include/configs/TQM866M.h index 7d0ae99cb..910497126 100644 --- a/include/configs/TQM866M.h +++ b/include/configs/TQM866M.h @@ -107,13 +107,11 @@  #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	93000	/* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE -#define CONFIG_SYS_I2C_SPEED		93000	/* 93 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE - -#ifdef CONFIG_SOFT_I2C  /*   * Software (bit-bang) I2C driver configuration   */ @@ -129,7 +127,6 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else	immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(2)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50		/* EEPROM AT24C256	*/  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2		/* two byte address	*/ diff --git a/include/configs/TQM885D.h b/include/configs/TQM885D.h index 7941631b5..65d7c5818 100644 --- a/include/configs/TQM885D.h +++ b/include/configs/TQM885D.h @@ -101,13 +101,10 @@  #undef	CONFIG_CAN_DRIVER		/* CAN Driver support disabled	*/  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ - -#define CONFIG_SYS_I2C_SPEED		93000	/* 93 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE - -#ifdef CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	93000	/* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -123,7 +120,6 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else	immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(2)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50		/* EEPROM AT24C??	*/  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2		/* two byte address	*/ diff --git a/include/configs/alpr.h b/include/configs/alpr.h index d93d5e204..9f32a608c 100644 --- a/include/configs/alpr.h +++ b/include/configs/alpr.h @@ -122,7 +122,6 @@   * I2C   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/aria.h b/include/configs/aria.h index bd8105387..261dc695c 100644 --- a/include/configs/aria.h +++ b/include/configs/aria.h @@ -371,7 +371,6 @@  /* I2C */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C			/* so disable bit-banged I2C */  #define CONFIG_I2C_MULTI_BUS  /* I2C speed and slave address */ diff --git a/include/configs/astro_mcf5373l.h b/include/configs/astro_mcf5373l.h index a0ed8f18f..6dabe57e7 100644 --- a/include/configs/astro_mcf5373l.h +++ b/include/configs/astro_mcf5373l.h @@ -118,7 +118,6 @@  /* I2C */  #define CONFIG_FSL_I2C  #define CONFIG_HARD_I2C			/* I2C with hw support */ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		80000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x58000 diff --git a/include/configs/bf533-ezkit.h b/include/configs/bf533-ezkit.h index c1a5ecda7..beab1271a 100644 --- a/include/configs/bf533-ezkit.h +++ b/include/configs/bf533-ezkit.h @@ -94,10 +94,15 @@  /*   * I2C Settings   */ -#define CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C_SOFT +#ifdef CONFIG_SYS_I2C_SOFT +#define CONFIG_SYS_I2C  #define CONFIG_SOFT_I2C_GPIO_SCL GPIO_PF0  #define CONFIG_SOFT_I2C_GPIO_SDA GPIO_PF1 - +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0 +#define I2C_DELAY              udelay(5)       /* 1/4 I2C clock duration */ +#endif  /*   * Misc Settings diff --git a/include/configs/bf533-stamp.h b/include/configs/bf533-stamp.h index e3344e9e8..7144c6319 100644 --- a/include/configs/bf533-stamp.h +++ b/include/configs/bf533-stamp.h @@ -14,7 +14,6 @@  #define CONFIG_BFIN_CPU             bf533-0.3  #define CONFIG_BFIN_BOOT_MODE       BFIN_BOOT_BYPASS -  /*   * Clock Settings   *	CCLK = (CLKIN * VCO_MULT) / CCLK_DIV @@ -38,7 +37,6 @@  /* Values can range from 1-15						*/  #define CONFIG_SCLK_DIV			6 /* note: 1.2 boards can go faster */ -  /*   * Memory Settings   */ @@ -74,6 +72,42 @@  /* #define CONFIG_ETHADDR	02:80:ad:20:31:b8 */ +/* I2C */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0 +/* + * Software (bit-bang) I2C driver configuration + */ +#define PF_SCL			PF3 +#define PF_SDA			PF2 +#define I2C_INIT		(*pFIO_DIR |=  PF_SCL); asm("ssync;") +#define I2C_ACTIVE		(*pFIO_DIR |=  PF_SDA); \ +				*pFIO_INEN &= ~PF_SDA; asm("ssync;") +#define I2C_TRISTATE		(*pFIO_DIR &= ~PF_SDA); \ +				*pFIO_INEN |= PF_SDA; asm("ssync;") +#define I2C_READ		((volatile)(*pFIO_FLAG_D & PF_SDA) != 0); \ +				asm("ssync;") +#define I2C_SDA(bit)	if (bit) { \ +				*pFIO_FLAG_S = PF_SDA; \ +				asm("ssync;"); \ +				} \ +			else	{ \ +				*pFIO_FLAG_C = PF_SDA; \ +				asm("ssync;"); \ +				} +#define I2C_SCL(bit)	if (bit) { \ +				*pFIO_FLAG_S = PF_SCL; \ +				asm("ssync;"); \ +				} \ +			else	{ \ +				*pFIO_FLAG_C = PF_SCL; \ +				asm("ssync;"); \ +				} +#define I2C_DELAY		udelay(5)	/* 1/4 I2C clock duration */ + +  /*   * Flash Settings   */ @@ -84,7 +118,6 @@  #define CONFIG_SYS_MAX_FLASH_BANKS	1  #define CONFIG_SYS_MAX_FLASH_SECT	67 -  /*   * SPI Settings   */ @@ -132,10 +165,15 @@  /*   * I2C Settings   */ -#define CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C_SOFT +#ifdef CONFIG_SYS_I2C_SOFT +#define CONFIG_SYS_I2C  #define CONFIG_SOFT_I2C_GPIO_SCL GPIO_PF3  #define CONFIG_SOFT_I2C_GPIO_SDA GPIO_PF2 - +#define I2C_DELAY		udelay(5)	/* 1/4 I2C clock duration */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0 +#endif  /*   * Compact Flash / IDE / ATA Settings diff --git a/include/configs/bf561-ezkit.h b/include/configs/bf561-ezkit.h index 6ee1e4c86..404039ac2 100644 --- a/include/configs/bf561-ezkit.h +++ b/include/configs/bf561-ezkit.h @@ -88,10 +88,14 @@  /*   * I2C Settings   */ -#define CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C_SOFT +#ifdef CONFIG_SYS_I2C_SOFT  #define CONFIG_SOFT_I2C_GPIO_SCL GPIO_PF0  #define CONFIG_SOFT_I2C_GPIO_SDA GPIO_PF1 - +#define I2C_DELAY		udelay(5)	/* 1/4 I2C clock duration */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0 +#endif  /*   * Misc Settings diff --git a/include/configs/bfin_adi_common.h b/include/configs/bfin_adi_common.h index e1a6fe305..08ccce0b9 100644 --- a/include/configs/bfin_adi_common.h +++ b/include/configs/bfin_adi_common.h @@ -71,7 +71,7 @@  # ifdef CONFIG_SPI_FLASH  #  define CONFIG_CMD_SF  # endif -# if defined(CONFIG_HARD_I2C) || defined(CONFIG_SOFT_I2C) +# if defined(CONFIG_HARD_I2C) || defined(CONFIG_SYS_I2C_SOFT)  #  define CONFIG_CMD_I2C  #  define CONFIG_SOFT_I2C_READ_REPEATED_START  # endif @@ -299,7 +299,7 @@  /*   * I2C Settings   */ -#if defined(CONFIG_HARD_I2C) || defined(CONFIG_SOFT_I2C) +#if defined(CONFIG_HARD_I2C) || defined(CONFIG_SYS_I2C_SOFT)  # ifndef CONFIG_SYS_I2C_SPEED  #  define CONFIG_SYS_I2C_SPEED 50000  # endif diff --git a/include/configs/blackstamp.h b/include/configs/blackstamp.h index 83ad659cd..7d8227503 100644 --- a/include/configs/blackstamp.h +++ b/include/configs/blackstamp.h @@ -40,7 +40,6 @@  #define SHARED_RESOURCES	1  /* Is I2C bit-banged? */ -#undef CONFIG_SOFT_I2  /*   * Clock Settings @@ -115,7 +114,7 @@  # undef CONFIG_CMD_NET  #endif -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT  # define CONFIG_CMD_I2C  #endif @@ -204,11 +203,11 @@   * Note these pins are arbitrarily chosen because we aren't using   * them yet. You can (and probably should) change these values!   */ -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT  #define CONFIG_SOFT_I2C_GPIO_SCL GPIO_PF9  #define CONFIG_SOFT_I2C_GPIO_SDA GPIO_PF8 -#define CONFIG_SYS_I2C_SPEED		50000 -#define CONFIG_SYS_I2C_SLAVE		0xFE +#define CONFIG_SYS_SOFT_I2C_SPEED	50000 +#define CONFIG_SYS_SOFT_I2C_SLAVE	0xFE  #endif  /* diff --git a/include/configs/blackvme.h b/include/configs/blackvme.h index 523c4e409..cd37f9adb 100644 --- a/include/configs/blackvme.h +++ b/include/configs/blackvme.h @@ -224,7 +224,7 @@   * Soft I2C settings (BF561 does not have hard I2C)   * PF12,13 on SPI connector 0.   */ -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT  # define CONFIG_CMD_I2C  # define CONFIG_SOFT_I2C_GPIO_SCL	GPIO_PF12  # define CONFIG_SOFT_I2C_GPIO_SDA	GPIO_PF13 diff --git a/include/configs/cpuat91.h b/include/configs/cpuat91.h index 15d56c346..d9b006ab7 100644 --- a/include/configs/cpuat91.h +++ b/include/configs/cpuat91.h @@ -92,7 +92,6 @@  #define CONFIG_USART_ID		0/* ignored in arm */  #undef CONFIG_HARD_I2C -#undef CONFIG_SOFT_I2C  #define AT91_PIN_SDA			(1<<25)  #define AT91_PIN_SCL			(1<<26) @@ -139,7 +138,7 @@  #undef CONFIG_CMD_NFS  #undef CONFIG_CMD_DHCP -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT  #define CONFIG_CMD_EEPROM  #define CONFIG_CMD_I2C  #endif diff --git a/include/configs/debris.h b/include/configs/debris.h index c40fbd9f8..0d3a4fa29 100644 --- a/include/configs/debris.h +++ b/include/configs/debris.h @@ -273,12 +273,15 @@   * configuration items that the driver uses to drive the port pins.   */  #define CONFIG_HARD_I2C		1		/* To enable I2C support	*/ -#undef  CONFIG_SOFT_I2C				/* I2C bit-banged		*/ +#undef  CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT  #error "Soft I2C is not configured properly.  Please review!" +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  #define I2C_PORT		3               /* Port A=0, B=1, C=2, D=3 */  #define I2C_ACTIVE		(iop->pdir |=  0x00010000)  #define I2C_TRISTATE		(iop->pdir &= ~0x00010000) @@ -288,7 +291,7 @@  #define I2C_SCL(bit)		if(bit) iop->pdat |=  0x00020000; \  				else    iop->pdat &= ~0x00020000  #define I2C_DELAY		udelay(5)	/* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */ +#endif /* CONFIG_SYS_I2C_SOFT */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x57		/* EEPROM IS24C02		*/  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1		/* Bytes of address		*/ diff --git a/include/configs/eXalion.h b/include/configs/eXalion.h index a6a0f8bb5..b80ab3fcf 100644 --- a/include/configs/eXalion.h +++ b/include/configs/eXalion.h @@ -224,7 +224,7 @@   * configuration items that the driver uses to drive the port pins.   */  #define CONFIG_HARD_I2C		1	/* To enable I2C support	*/ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged		*/ +#undef	CONFIG_SYS_I2C_SOFT		/* I2C bit-banged		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/eb_cpux9k2.h b/include/configs/eb_cpux9k2.h index 3be4929fc..efb50e377 100644 --- a/include/configs/eb_cpux9k2.h +++ b/include/configs/eb_cpux9k2.h @@ -223,11 +223,10 @@   * I2C-Bus   */ -#define CONFIG_SYS_I2C_SPEED		50000 -#define CONFIG_SYS_I2C_SLAVE		0 		/* not used */ - -#ifndef CONFIG_HARD_I2C -#define CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0  /* Software  I2C driver configuration */ @@ -251,9 +250,7 @@  	else							\  		writel(ATMEL_PMX_AA_TWCK, &pio->pioa.codr); -#define I2C_DELAY	udelay(2500000/CONFIG_SYS_I2C_SPEED) - -#endif	/* CONFIG_HARD_I2C */ +#define I2C_DELAY	udelay(2500000/CONFIG_SYS_I2C_SOFT_SPEED)  /* I2C-RTC */ diff --git a/include/configs/ep8260.h b/include/configs/ep8260.h index 5a87cc5d3..2e675bce6 100644 --- a/include/configs/ep8260.h +++ b/include/configs/ep8260.h @@ -227,15 +227,18 @@   * If the software driver is chosen, there are some additional   * configuration items that the driver uses to drive the port pins.   */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7F +#define CONFIG_SYS_I2C_SLAVE		0x7F	/* This is for HARD, must go */  /*   * Software (bit-bang) I2C driver configuration   */ -#ifdef CONFIG_SOFT_I2C +#ifdef CONFIG_SYS_I2C_SOFT +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  #define I2C_PORT	3		/* Port A=0, B=1, C=2, D=3 */  #define I2C_ACTIVE	(iop->pdir |=  0x00010000)  #define I2C_TRISTATE	(iop->pdir &= ~0x00010000) @@ -245,7 +248,7 @@  #define I2C_SCL(bit)	if(bit) iop->pdat |=  0x00020000; \  			else    iop->pdat &= ~0x00020000  #define I2C_DELAY	udelay(5)	/* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */ +#endif /* CONFIG_SYS_I2C_SOFT */  /* #define CONFIG_RTC_DS174x */ diff --git a/include/configs/ethernut5.h b/include/configs/ethernut5.h index 14a0f02c5..5bf8c2249 100644 --- a/include/configs/ethernut5.h +++ b/include/configs/ethernut5.h @@ -210,10 +210,12 @@  /* I2C */  #define CONFIG_SYS_MAX_I2C_BUS	1 -#define CONFIG_SYS_I2C_SLAVE	0 -#define CONFIG_SYS_I2C_SPEED	100000 -#define CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	100000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0 +  #define I2C_SOFT_DECLARATIONS  #define GPIO_I2C_SCL		AT91_PIO_PORTA, 24 diff --git a/include/configs/ibf-dsp561.h b/include/configs/ibf-dsp561.h index 294af735d..529175512 100644 --- a/include/configs/ibf-dsp561.h +++ b/include/configs/ibf-dsp561.h @@ -105,11 +105,11 @@  /*   * I2C Settings   */ -#define CONFIG_SOFT_I2C		1 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */  #define CONFIG_SOFT_I2C_GPIO_SCL GPIO_PF0  #define CONFIG_SOFT_I2C_GPIO_SDA GPIO_PF1 -  /*   * Misc Settings   */ diff --git a/include/configs/iocon.h b/include/configs/iocon.h index 7f8825bed..695aa5c85 100644 --- a/include/configs/iocon.h +++ b/include/configs/iocon.h @@ -110,11 +110,11 @@  /*   * I2C stuff   */ -#define CONFIG_SYS_I2C_SPEED		400000 - -/* enable I2C and select the hardware/software driver */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ +#undef CONFIG_HARD_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	400000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration diff --git a/include/configs/km/keymile-common.h b/include/configs/km/keymile-common.h index 3b15c4e69..6182e81a6 100644 --- a/include/configs/km/keymile-common.h +++ b/include/configs/km/keymile-common.h @@ -78,10 +78,7 @@  #define CONFIG_LOADS_ECHO  #define CONFIG_SYS_LOADS_BAUD_CHANGE -#define CONFIG_I2C_MULTI_BUS -#define CONFIG_SYS_MAX_I2C_BUS		1  #define CONFIG_SYS_I2C_INIT_BOARD -#define CONFIG_I2C_MUX  /* Support the IVM EEprom */  #define	CONFIG_SYS_IVM_EEPROM_ADR	0x50 diff --git a/include/configs/km/km83xx-common.h b/include/configs/km/km83xx-common.h index eb0e5b6f3..5a430edbc 100644 --- a/include/configs/km/km83xx-common.h +++ b/include/configs/km/km83xx-common.h @@ -209,6 +209,9 @@  #define CONFIG_SYS_I2C_SPEED	200000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE	0x7F  #define CONFIG_SYS_I2C_OFFSET	0x3000 +#define CONFIG_I2C_MULTI_BUS +#define CONFIG_SYS_MAX_I2C_BUS		1 +#define CONFIG_I2C_MUX  /* I2C SYSMON (LM75, AD7414 is almost compatible) */  #define CONFIG_DTT_LM75		/* ON Semi's LM75 */ diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h index 766d76e18..c2c67c158 100644 --- a/include/configs/km/km_arm.h +++ b/include/configs/km/km_arm.h @@ -58,7 +58,6 @@  #define CONFIG_CMD_NAND  #define CONFIG_CMD_SF -#define CONFIG_SOFT_I2C		/* I2C bit-banged	*/  /* SPI NOR Flash default params, used by sf commands */  #define CONFIG_SF_DEFAULT_SPEED		8100000 @@ -187,8 +186,23 @@  /*   * I2C related stuff   */ +#undef CONFIG_I2C_MVTWSI +#define CONFIG_SYS_I2C +#define	CONFIG_SYS_I2C_SOFT	/* I2C bit-banged	*/ +  #define	CONFIG_KIRKWOOD_GPIO		/* Enable GPIO Support */ -#if defined(CONFIG_SOFT_I2C) +#if defined(CONFIG_SYS_I2C_SOFT) + +#define CONFIG_SYS_NUM_I2C_BUSES	6 +#define CONFIG_SYS_I2C_MAX_HOPS		1 +#define CONFIG_SYS_I2C_BUSES	{	{0, {I2C_NULL_HOP} }, \ +					{0, {{I2C_MUX_PCA9547, 0x70, 1} } }, \ +					{0, {{I2C_MUX_PCA9547, 0x70, 2} } }, \ +					{0, {{I2C_MUX_PCA9547, 0x70, 3} } }, \ +					{0, {{I2C_MUX_PCA9547, 0x70, 4} } }, \ +					{0, {{I2C_MUX_PCA9547, 0x70, 5} } }, \ +				} +  #ifndef __ASSEMBLY__  #include <asm/arch-kirkwood/gpio.h>  extern void __set_direction(unsigned pin, int high); @@ -211,6 +225,8 @@ int get_scl(void);  #define I2C_DELAY	udelay(1)  #define I2C_SOFT_DECLARATIONS +#define	CONFIG_SYS_I2C_SOFT_SLAVE	0x0 +#define	CONFIG_SYS_I2C_SOFT_SPEED	100000  #endif  /* EEprom support 24C128, 24C256 valid for environment eeprom */ @@ -240,7 +256,7 @@ int get_scl(void);  #define CONFIG_SYS_EEPROM_WREN  #define CONFIG_ENV_OFFSET		0x0 /* no bracets! */  #define CONFIG_ENV_SIZE			(0x2000 - CONFIG_ENV_OFFSET) -#define CONFIG_I2C_ENV_EEPROM_BUS	KM_ENV_BUS "\0" +#define CONFIG_I2C_ENV_EEPROM_BUS	KM_ENV_BUS  #define CONFIG_ENV_OFFSET_REDUND	0x2000 /* no bracets! */  #define CONFIG_ENV_SIZE_REDUND		(CONFIG_ENV_SIZE)  #endif @@ -293,7 +309,7 @@ int get_scl(void);  	CONFIG_KM_DEF_ENV						\  	CONFIG_KM_NEW_ENV						\  	"arch=arm\0"							\ -	"EEprom_ivm=" KM_IVM_BUS "\0"					\ +	"EEprom_ivm=" __stringify(KM_IVM_BUS) "\0"			\  	""  #if defined(CONFIG_SYS_NO_FLASH) diff --git a/include/configs/km82xx.h b/include/configs/km82xx.h index 3c2117fc3..54041f357 100644 --- a/include/configs/km82xx.h +++ b/include/configs/km82xx.h @@ -212,7 +212,7 @@  #define	CONFIG_EXTRA_ENV_SETTINGS					\  	CONFIG_KM_BOARD_EXTRA_ENV					\  	CONFIG_KM_DEF_ENV						\ -	"EEprom_ivm=pca9544a:70:4 \0"					\ +	"EEprom_ivm=1\0"						\  	"unlock=yes\0"							\  	"newenv="							\  		"prot off 0xFE0C0000 +0x40000 && "			\ @@ -242,10 +242,16 @@  #endif /* CONFIG_ENV_IS_IN_FLASH */  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		50000	/* I2C speed */ -#define CONFIG_SYS_I2C_SLAVE		0x7F	/* I2C slave address */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_NUM_I2C_BUSES	3 +#define CONFIG_SYS_I2C_MAX_HOPS		1 +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SPEED		CONFIG_SYS_I2C_SOFT_SPEED +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F +#define CONFIG_SYS_I2C_BUSES	{{0, {I2C_NULL_HOP} }, \ +			{0, {{I2C_MUX_PCA9542, 0x70, 0} } }, \ +			{0, {{I2C_MUX_PCA9542, 0x70, 1} } } }  /*   * Software (bit-bang) I2C driver configuration @@ -282,7 +288,7 @@ int get_scl(void);  #define CONFIG_SYS_DTT_MAX_TEMP	70  #define CONFIG_SYS_DTT_LOW_TEMP	-30  #define CONFIG_SYS_DTT_HYSTERESIS	3 -#define CONFIG_SYS_DTT_BUS_NUM		(CONFIG_SYS_MAX_I2C_BUS) +#define CONFIG_SYS_DTT_BUS_NUM		2  #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1 diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h index 83bb7aad3..a0ad47e73 100644 --- a/include/configs/km_kirkwood.h +++ b/include/configs/km_kirkwood.h @@ -42,18 +42,18 @@  #define CONFIG_IDENT_STRING		"\nKeymile Kirkwood"  #define CONFIG_HOSTNAME			km_kirkwood  #define CONFIG_KM_DISABLE_PCIE -#define KM_IVM_BUS			"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/ +#define KM_IVM_BUS			1	/* I2C2 (Mux-Port 1)*/  /* KM_KIRKWOOD_PCI */  #elif defined(CONFIG_KM_KIRKWOOD_PCI)  #define CONFIG_IDENT_STRING		"\nKeymile Kirkwood PCI"  #define CONFIG_HOSTNAME			km_kirkwood_pci -#define KM_IVM_BUS			"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/ +#define KM_IVM_BUS			1	/* I2C2 (Mux-Port 1)*/  #define CONFIG_KM_FPGA_CONFIG  /* KM_NUSA */  #elif defined(CONFIG_KM_NUSA) -#define KM_IVM_BUS			"pca9547:70:9"	/* I2C2 (Mux-Port 1)*/ +#define KM_IVM_BUS			1	/* I2C2 (Mux-Port 1)*/  #define CONFIG_IDENT_STRING		"\nKeymile NUSA"  #define CONFIG_HOSTNAME			kmnusa  #undef CONFIG_SYS_KWD_CONFIG @@ -69,7 +69,7 @@  #elif defined(CONFIG_KM_MGCOGE3UN)  #define CONFIG_IDENT_STRING		"\nKeymile COGE3UN"  #define CONFIG_HOSTNAME			mgcoge3un -#define KM_IVM_BUS			"pca9547:70:9" /* I2C2 (Mux-Port 1)*/ +#define KM_IVM_BUS			1	/* I2C2 (Mux-Port 1)*/  #undef CONFIG_SYS_KWD_CONFIG  #define CONFIG_SYS_KWD_CONFIG \  		$(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage-memphis.cfg @@ -81,7 +81,7 @@  /* KMCOGE5UN */  #elif defined(CONFIG_KM_COGE5UN)  #define CONFIG_IDENT_STRING		"\nKeymile COGE5UN" -#define KM_IVM_BUS			"pca9547:70:9"	/* I2C2 (Mux-Port 1)*/ +#define KM_IVM_BUS			1	/* I2C2 (Mux-Port 1)*/  #undef	CONFIG_SYS_KWD_CONFIG  #define CONFIG_SYS_KWD_CONFIG \  		$(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage_256M8_1.cfg @@ -95,12 +95,12 @@  #elif defined(CONFIG_KM_PORTL2)  #define CONFIG_IDENT_STRING		"\nKeymile Port-L2"  #define CONFIG_HOSTNAME			portl2 -#define KM_IVM_BUS			"pca9544a:70:9" /* I2C2 (Mux-Port 1)*/ +#define KM_IVM_BUS			1	/* I2C2 (Mux-Port 1)*/  #define CONFIG_KM_PIGGY4_88E6061  /* KM_SUV31 */  #elif defined(CONFIG_KM_SUV31) -#define KM_IVM_BUS			"pca9547:70:9"	/* I2C2 (Mux-Port 1)*/ +#define CONFIG_KM_IVM_BUS		1	/* I2C2 (Mux-Port 1)*/  #define CONFIG_IDENT_STRING		"\nKeymile SUV31"  #define CONFIG_HOSTNAME			kmsuv31  #define CONFIG_KM_ENV_IS_IN_SPI_NOR @@ -114,7 +114,7 @@  #include "km/km_arm.h"  #ifndef CONFIG_KM_ENV_IS_IN_SPI_NOR -#define KM_ENV_BUS	"pca9544a:70:d"	/* I2C2 (Mux-Port 5)*/ +#define KM_ENV_BUS	5	/* I2C2 (Mux-Port 5)*/  #endif  #if defined(CONFIG_KM_PIGGY4_88E6352) diff --git a/include/configs/korat.h b/include/configs/korat.h index d7c1f8508..eea8c98b6 100644 --- a/include/configs/korat.h +++ b/include/configs/korat.h @@ -156,7 +156,6 @@   * I2C   */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/lwmon.h b/include/configs/lwmon.h index 3c02b73d8..dc0bd33e8 100644 --- a/include/configs/lwmon.h +++ b/include/configs/lwmon.h @@ -146,13 +146,10 @@  #undef	CONFIG_STATUS_LED		/* Status LED disabled		*/  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C         1	/* I2C bit-banged		*/ - -#define CONFIG_SYS_I2C_SPEED		93000	/* 93 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE - -#ifdef CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	93000	/* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -168,7 +165,6 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(2)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */  #define CONFIG_RTC_PCF8563		/* use Philips PCF8563 RTC	*/ diff --git a/include/configs/lwmon5.h b/include/configs/lwmon5.h index ba613e33c..4dcb25a96 100644 --- a/include/configs/lwmon5.h +++ b/include/configs/lwmon5.h @@ -299,7 +299,6 @@   * I2C   */  #define CONFIG_HARD_I2C				/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C				/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/mecp5123.h b/include/configs/mecp5123.h index c4f245b98..6f73e5d94 100644 --- a/include/configs/mecp5123.h +++ b/include/configs/mecp5123.h @@ -267,7 +267,6 @@  /* I2C */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C			/* so disable bit-banged I2C */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed */  #define CONFIG_SYS_I2C_SLAVE		0x7F	/* slave address */ diff --git a/include/configs/mpc5121ads.h b/include/configs/mpc5121ads.h index 6f003aa03..65ca62fa3 100644 --- a/include/configs/mpc5121ads.h +++ b/include/configs/mpc5121ads.h @@ -360,7 +360,6 @@  /* I2C */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C			/* so disable bit-banged I2C */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/nhk8815.h b/include/configs/nhk8815.h index d438efdae..09073e948 100644 --- a/include/configs/nhk8815.h +++ b/include/configs/nhk8815.h @@ -109,8 +109,11 @@  #ifndef __ASSEMBLY__  #include <asm/arch/gpio.h>  #define CONFIG_CMD_I2C -#define CONFIG_SOFT_I2C -#define CONFIG_SYS_I2C_SPEED	400000 +#define CONFIG_SYS_I2C +#define	CONFIG_SYS_I2C_SOFT	1	/* I2C bit-banged	*/ +#define I2C_SOFT_DEFS +#define CONFIG_SYS_I2C_SOFT_SPEED	400000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  #define __SDA			63  #define __SCL			62  #define I2C_SDA(x)		nmk_gpio_set(__SDA, x) diff --git a/include/configs/otc570.h b/include/configs/otc570.h index fe4f3c0fa..010e1b940 100644 --- a/include/configs/otc570.h +++ b/include/configs/otc570.h @@ -115,14 +115,13 @@  /* RTC and I2C stuff */  #define CONFIG_RTC_DS1338  #define CONFIG_SYS_I2C_RTC_ADDR		0x68 -#undef CONFIG_HARD_I2C -#define CONFIG_SOFT_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		0x7F -#ifdef CONFIG_SOFT_I2C -# define CONFIG_I2C_CMD_TREE -# define CONFIG_I2C_MULTI_BUS +#define CONFIG_SYS_I2C +#define	CONFIG_SYS_I2C_SOFT	/* I2C bit-banged	*/ +#ifdef CONFIG_SYS_I2C_SOFT +#define CONFIG_SYS_I2C_SOFT_SPEED	100000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F +  /* Configure data and clock pins for pio */  # define I2C_INIT { \  	at91_set_pio_output(AT91_PIO_PORTB, 4, 0); \ @@ -140,7 +139,7 @@  /* Set clock pin */  # define I2C_SCL(bit)		at91_set_pio_value(AT91_PIO_PORTB, 5, bit)  # define I2C_DELAY		udelay(2) /* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */ +#endif /* CONFIG_SYS_I2C_SOFT */  /*   * BOOTP options diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h index 2fa537291..d0a6b1757 100644 --- a/include/configs/p1_p2_rdb_pc.h +++ b/include/configs/p1_p2_rdb_pc.h @@ -536,7 +536,6 @@  /* I2C */  #define CONFIG_FSL_I2C			/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C			/* I2C with hardware support */ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_I2C_CMD_TREE  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C spd and slave address */ diff --git a/include/configs/p3p440.h b/include/configs/p3p440.h index a19de079b..3c33da73b 100644 --- a/include/configs/p3p440.h +++ b/include/configs/p3p440.h @@ -98,7 +98,6 @@   * I2C   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/pcs440ep.h b/include/configs/pcs440ep.h index 189761905..6358104c1 100644 --- a/include/configs/pcs440ep.h +++ b/include/configs/pcs440ep.h @@ -140,7 +140,6 @@   * I2C   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1	    /* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C			    /* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		100000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/pdnb3.h b/include/configs/pdnb3.h index 1e073177e..9aa112a26 100644 --- a/include/configs/pdnb3.h +++ b/include/configs/pdnb3.h @@ -281,12 +281,10 @@   */  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ - -#define CONFIG_SYS_I2C_SPEED		83000	/* 83 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE - +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	83000	/* 83 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ diff --git a/include/configs/quad100hd.h b/include/configs/quad100hd.h index 5f1bb581f..30a8c5519 100644 --- a/include/configs/quad100hd.h +++ b/include/configs/quad100hd.h @@ -153,7 +153,6 @@   * I2C   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1		/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C				/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h index 56e83478f..89ae32b21 100644 --- a/include/configs/s5p_goni.h +++ b/include/configs/s5p_goni.h @@ -226,8 +226,10 @@  #define CONFIG_SOFT_I2C_GPIO_SCL s5pc110_gpio_get_nr(j4, 3)  #define CONFIG_SOFT_I2C_GPIO_SDA s5pc110_gpio_get_nr(j4, 0) -#define CONFIG_SOFT_I2C	1 -#define CONFIG_SYS_I2C_SPEED	50000 +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_MAX_I2C_BUS	7  #define CONFIG_USB_GADGET diff --git a/include/configs/s5pc210_universal.h b/include/configs/s5pc210_universal.h index eb13bb3a6..f7266aa3a 100644 --- a/include/configs/s5pc210_universal.h +++ b/include/configs/s5pc210_universal.h @@ -250,9 +250,11 @@  #define CONFIG_SOFT_I2C_GPIO_SCL exynos4_gpio_part1_get_nr(b, 7)  #define CONFIG_SOFT_I2C_GPIO_SDA exynos4_gpio_part1_get_nr(b, 6) -#define CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0  #define CONFIG_SOFT_I2C_READ_REPEATED_START -#define CONFIG_SYS_I2C_SPEED	50000  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_MAX_I2C_BUS	7 diff --git a/include/configs/sacsng.h b/include/configs/sacsng.h index 54d55a0a1..efbf6b69f 100644 --- a/include/configs/sacsng.h +++ b/include/configs/sacsng.h @@ -296,15 +296,13 @@   * If the software driver is chosen, there are some additional   * configuration items that the driver uses to drive the port pins.   */ -#undef  CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define CONFIG_SOFT_I2C		1	/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7F - +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	400000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  /*   * Software (bit-bang) I2C driver configuration   */ -#ifdef CONFIG_SOFT_I2C  #define I2C_PORT	3		/* Port A=0, B=1, C=2, D=3 */  #define I2C_ACTIVE	(iop->pdir |=  0x00010000)  #define I2C_TRISTATE	(iop->pdir &= ~0x00010000) @@ -314,7 +312,6 @@  #define I2C_SCL(bit)	if(bit) iop->pdat |=  0x00020000; \  			else    iop->pdat &= ~0x00020000  #define I2C_DELAY	udelay(20)	/* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */  /* Define this to reserve an entire FLASH sector for   * environment variables. Otherwise, the environment will be diff --git a/include/configs/sbc405.h b/include/configs/sbc405.h index 6e53bc2ee..4120cf4d2 100644 --- a/include/configs/sbc405.h +++ b/include/configs/sbc405.h @@ -169,7 +169,6 @@  #define CONFIG_SYS_RX_ETH_BUFFER	16	/* use 16 rx buffer on 405 emac */  #define CONFIG_HARD_I2C		1	/* I2C with hardware support	*/ -#undef  CONFIG_SOFT_I2C			/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/sbc8349.h b/include/configs/sbc8349.h index fdc1b95e2..7a79e8c21 100644 --- a/include/configs/sbc8349.h +++ b/include/configs/sbc8349.h @@ -305,7 +305,6 @@  /* I2C */  #define CONFIG_HARD_I2C			/* I2C with hardware support*/ -#undef CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE	0x7F diff --git a/include/configs/sbc8548.h b/include/configs/sbc8548.h index 148ade356..354691a36 100644 --- a/include/configs/sbc8548.h +++ b/include/configs/sbc8548.h @@ -446,7 +446,6 @@   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/configs/sbc8641d.h b/include/configs/sbc8641d.h index 0e2d17deb..147e0ae83 100644 --- a/include/configs/sbc8641d.h +++ b/include/configs/sbc8641d.h @@ -291,7 +291,6 @@   */  #define	CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define	CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address */  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_NOPROBES        {0x69}	/* Don't probe these addrs */ diff --git a/include/configs/sc3.h b/include/configs/sc3.h index 9dec21de6..59636f7f7 100644 --- a/include/configs/sc3.h +++ b/include/configs/sc3.h @@ -247,7 +247,6 @@   *-----------------------------------------------------------------------   */  #define  CONFIG_HARD_I2C		/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define I2C_INIT diff --git a/include/configs/snapper9260.h b/include/configs/snapper9260.h index 218ca546b..c683fab00 100644 --- a/include/configs/snapper9260.h +++ b/include/configs/snapper9260.h @@ -106,11 +106,11 @@  #define CONFIG_SYS_PROMPT		"Snapper> "  /* I2C - Bit-bashed */ -#define CONFIG_SOFT_I2C -#define CONFIG_SYS_I2C_SPEED		100000 -#define CONFIG_SYS_I2C_SLAVE		0x7F +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	100000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F  #define CONFIG_SOFT_I2C_READ_REPEATED_START -#define CONFIG_I2C_MULTI_BUS  #define I2C_INIT do {							\  		at91_set_gpio_output(AT91_PIN_PA23, 1);			\  		at91_set_gpio_output(AT91_PIN_PA24, 1);			\ diff --git a/include/configs/socrates.h b/include/configs/socrates.h index 7a0b48193..19869e613 100644 --- a/include/configs/socrates.h +++ b/include/configs/socrates.h @@ -237,7 +237,6 @@   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/  #define CONFIG_SYS_I2C_SPEED		102124	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F  #define CONFIG_SYS_I2C_OFFSET		0x3000 diff --git a/include/configs/spc1920.h b/include/configs/spc1920.h index 87878d50c..2a9b00c4e 100644 --- a/include/configs/spc1920.h +++ b/include/configs/spc1920.h @@ -207,13 +207,10 @@   */  #if defined(CONFIG_CMD_I2C)  /* enable I2C and select the hardware/software driver */ -#undef CONFIG_HARD_I2C                 /* I2C with hardware support    */ -#define CONFIG_SOFT_I2C                1       /* I2C bit-banged               */ - -#define CONFIG_SYS_I2C_SPEED          93000   /* 93 kHz is supposed to work   */ -#define CONFIG_SYS_I2C_SLAVE          0xFE - -#ifdef CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	93000	/* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -229,7 +226,6 @@  #define I2C_SCL(bit)   if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  		       else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY      udelay(2)       /* 1/4 I2C clock duration */ -#endif /* CONFIG_SOFT_I2C */  #endif  /*----------------------------------------------------------------------- diff --git a/include/configs/stxgp3.h b/include/configs/stxgp3.h index 939a964e7..b688b457d 100644 --- a/include/configs/stxgp3.h +++ b/include/configs/stxgp3.h @@ -180,7 +180,6 @@   */  #define CONFIG_FSL_I2C		/* Use FSL common I2C driver */  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F  #if 0 diff --git a/include/configs/stxssa.h b/include/configs/stxssa.h index 96d7128d0..4c3c08622 100644 --- a/include/configs/stxssa.h +++ b/include/configs/stxssa.h @@ -200,7 +200,6 @@   */  #define CONFIG_FSL_I2C			/* Use FSL common I2C driver */  #define  CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_SYS_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F  #undef CONFIG_SYS_I2C_NOPROBES diff --git a/include/configs/top9000.h b/include/configs/top9000.h index 7cc65773b..884670da2 100644 --- a/include/configs/top9000.h +++ b/include/configs/top9000.h @@ -201,11 +201,12 @@  #define CONFIG_CMD_USB  /* I2C support must always be enabled */ -#define CONFIG_SOFT_I2C  #define CONFIG_CMD_I2C -#define CONFIG_SYS_I2C_SPEED		400000 -#define CONFIG_SYS_I2C_SLAVE		0x7F -#define CONFIG_I2C_MULTI_BUS +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	400000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7F +  #define I2C0_PORT			AT91_PIO_PORTA  #define SDA0_PIN			23  #define SCL0_PIN			24 diff --git a/include/configs/trats.h b/include/configs/trats.h index 356d87bca..926b209c0 100644 --- a/include/configs/trats.h +++ b/include/configs/trats.h @@ -275,10 +275,12 @@  #define CONFIG_SYS_INIT_SP_ADDR	(CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE)  #define CONFIG_SYS_CACHELINE_SIZE       32 -#define CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  #define CONFIG_SOFT_I2C_READ_REPEATED_START  #define CONFIG_SYS_I2C_INIT_BOARD -#define CONFIG_SYS_I2C_SPEED	50000  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SOFT_I2C_MULTI_BUS  #define CONFIG_SYS_MAX_I2C_BUS	15 diff --git a/include/configs/u8500_href.h b/include/configs/u8500_href.h index 1bb612826..218feeb23 100644 --- a/include/configs/u8500_href.h +++ b/include/configs/u8500_href.h @@ -166,7 +166,6 @@   */  #define CONFIG_U8500_I2C  #undef	CONFIG_HARD_I2C			/* I2C with hardware support */ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_SYS_I2C_SPEED		100000  #define CONFIG_SYS_I2C_SLAVE		0	/* slave addr of controller */ diff --git a/include/configs/uc100.h b/include/configs/uc100.h index 450c98bd3..ce122b46e 100644 --- a/include/configs/uc100.h +++ b/include/configs/uc100.h @@ -464,13 +464,10 @@   */  /* enable I2C and select the hardware/software driver */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C         1	/* I2C bit-banged		*/ - -#define CONFIG_SYS_I2C_SPEED		93000	/* 93 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0xFE - -#ifdef CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	93000 /* 93 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0xFE  /*   * Software (bit-bang) I2C driver configuration   */ @@ -486,7 +483,6 @@  #define I2C_SCL(bit)	if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; \  			else    immr->im_cpm.cp_pbdat &= ~PB_SCL  #define I2C_DELAY	udelay(2)	/* 1/4 I2C clock duration */ -#endif	/* CONFIG_SOFT_I2C */  /*-----------------------------------------------------------------------   * I2C EEPROM (24C164) diff --git a/include/configs/utx8245.h b/include/configs/utx8245.h index 60d1503bc..4815664ab 100644 --- a/include/configs/utx8245.h +++ b/include/configs/utx8245.h @@ -235,8 +235,7 @@ protect on ${u-boot_startaddr} ${u-boot_endaddr}"   *------------------------------------------------------------------*/  #if 1  #define CONFIG_HARD_I2C		1		/* To enable I2C support	*/ -#undef  CONFIG_SOFT_I2C				/* I2C bit-banged		*/ -#define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/ +#define CONFIG_SYS_I2C_SPEED		400000  #define CONFIG_SYS_I2C_SLAVE		0x7F  #endif diff --git a/include/configs/vct.h b/include/configs/vct.h index 7aeb66801..fbdb72849 100644 --- a/include/configs/vct.h +++ b/include/configs/vct.h @@ -245,11 +245,10 @@  /*   * I2C/EEPROM   */ -#undef	CONFIG_HARD_I2C			/* I2C with hardware support	*/ -#define	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ - -#define CONFIG_SYS_I2C_SPEED		83000	/* 83 kHz is supposed to work	*/ -#define CONFIG_SYS_I2C_SLAVE		0x7f +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT		/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	83000	/* 83 kHz is supposed to work */ +#define CONFIG_SYS_I2C_SOFT_SLAVE	0x7f  /*   * Software (bit-bang) I2C driver configuration @@ -337,7 +336,7 @@ int vct_gpio_get(int pin);  #undef CONFIG_CMD_USB  #undef CONFIG_SMC911X -#undef CONFIG_SOFT_I2C +#undef CONFIG_SYS_I2C_SOFT  #undef CONFIG_SOURCE  #undef CONFIG_SYS_LONGHELP  #undef CONFIG_TIMESTAMP diff --git a/include/configs/vl_ma2sc.h b/include/configs/vl_ma2sc.h index e2cf4f005..5c43c1bea 100644 --- a/include/configs/vl_ma2sc.h +++ b/include/configs/vl_ma2sc.h @@ -147,10 +147,12 @@  #define CONFIG_SYS_I2C_SLAVE			0		/* not used */  #ifndef CONFIG_HARD_I2C -#define CONFIG_SOFT_I2C +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_SOFT			/* I2C bit-banged */ +#define CONFIG_SYS_I2C_SOFT_SPEED	CONFIG_SYS_I2C_SPEED +#define CONFIG_SYS_I2C_SOFT_SLAVE	CONFIG_SYS_I2C_SLAVE  /* Software  I2C driver configuration */ -  #define I2C_DELAY	udelay(2500000/CONFIG_SYS_I2C_SPEED)  #define AT91_PIN_SDA	(1<<4)		/* AT91C_PIO_PB4 */ diff --git a/include/configs/vme8349.h b/include/configs/vme8349.h index f97de5490..54fbe8bda 100644 --- a/include/configs/vme8349.h +++ b/include/configs/vme8349.h @@ -239,7 +239,6 @@  /* I2C */  #define CONFIG_I2C_MULTI_BUS  #define CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef CONFIG_SOFT_I2C		/* I2C bit-banged */  #define CONFIG_FSL_I2C  #define CONFIG_I2C_CMD_TREE  #define CONFIG_SYS_I2C_SPEED	400000	/* I2C speed and slave address */ diff --git a/include/configs/zeus.h b/include/configs/zeus.h index b0c3bd5f9..75195bc74 100644 --- a/include/configs/zeus.h +++ b/include/configs/zeus.h @@ -169,7 +169,6 @@   * I2C   *----------------------------------------------------------------------*/  #define CONFIG_HARD_I2C		1		/* I2C with hardware support	*/ -#undef	CONFIG_SOFT_I2C				/* I2C bit-banged		*/  #define CONFIG_PPC4XX_I2C		/* use PPC4xx driver		*/  #define CONFIG_SYS_I2C_SPEED		400000		/* I2C speed and slave address	*/  #define CONFIG_SYS_I2C_SLAVE		0x7F diff --git a/include/i2c.h b/include/i2c.h index 3e09af914..f532a1443 100644 --- a/include/i2c.h +++ b/include/i2c.h @@ -305,6 +305,15 @@ unsigned int i2c_get_bus_speed(void);   * Adjusts I2C pointers after U-Boot is relocated to DRAM   */  void i2c_reloc_fixup(void); +#if defined(CONFIG_SYS_I2C_SOFT) +void i2c_soft_init(void); +void i2c_soft_active(void); +void i2c_soft_tristate(void); +int i2c_soft_read(void); +void i2c_soft_sda(int bit); +void i2c_soft_scl(int bit); +void i2c_soft_delay(void); +#endif  #else  /* |