[U-Boot-Users] [PATCH] 3/4: Innokom update
Robert Schwebel
robert at schwebel.de
Wed Mar 19 14:00:11 CET 2003
- fixes i2c fixup code :)
- fixes forgotten baudrate
Robert
--
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Braunschweiger Str. 79, 31134 Hildesheim, Germany
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Phone: +49-5121-28619-0 | Fax: +49-5121-28619-4
-------------- next part --------------
diff -urNb -x CVS -x ptx-patches u-boot/board/innokom/innokom.c u-boot-ptx/board/innokom/innokom.c
--- u-boot/board/innokom/innokom.c Tue Mar 18 19:50:36 2003
+++ u-boot-ptx/board/innokom/innokom.c Wed Mar 19 09:42:09 2003
@@ -39,20 +39,28 @@
* The Innokom board has GPIO70 connected to SCLK which can be toggled
* until all chips think that their current cycles are finished.
*/
-void i2c_init_board(void)
+int i2c_init_board(void)
{
- int i;
+ int i, icr;
- /* set gpio pin to output */
- GPDR(70) |= GPIO_bit(70);
- for (i = 0; i < 11; i++) {
+ /* disable I2C controller first, otherwhise it thinks we want to */
+ /* talk to the slave port... */
+ icr = ICR; ICR &= ~(ICR_SCLE | ICR_IUE);
+
+ /* set gpio pin low _before_ we change direction to output */
GPCR(70) = GPIO_bit(70);
+
+ /* now toggle between output=low and high-impedance */
+ for (i = 0; i < 20; i++) {
+ GPDR(70) |= GPIO_bit(70); /* output */
udelay(10);
- GPSR(70) = GPIO_bit(70);
+ GPDR(70) &= ~GPIO_bit(70); /* input */
udelay(10);
}
- /* set gpio pin to input */
- GPDR(70) &= ~GPIO_bit(70);
+
+ ICR = icr;
+
+ return 0;
}
@@ -98,6 +106,9 @@
/* adress of boot parameters */
gd->bd->bi_boot_params = 0xa0000100;
+ /* baud rate */
+ gd->bd->bi_baudrate = CONFIG_BAUDRATE;
+
return 0;
}
More information about the U-Boot
mailing list