Additional MPC8349 support for multibus i2c
authorBen Warren <bwarren@qstreams.com>
Tue, 12 Sep 2006 14:15:53 +0000 (10:15 -0400)
committerKim Phillips <kim.phillips@freescale.com>
Sat, 4 Nov 2006 01:42:19 +0000 (19:42 -0600)
Hello,

Here is a patch for a file that was accidentally left out of a previous
attempt.

It accompanies the patch with ticket DNX#2006090742000024

CHANGELOG:
        Change PCI initialization to use new multi-bus I2C API.

regards,
Ben

board/mpc8349emds/pci.c

index 63e44055780ec27cba839a15e99961229be1e068..a4d6508bb06315d22ce4c33b677f4cbc7648b6e3 100644 (file)
@@ -68,11 +68,16 @@ static struct pci_controller pci_hose[] = {
 void
 pib_init(void)
 {
-       u8 val8;
+       u8 val8, orig_i2c_bus;
        /*
         * Assign PIB PMC slot to desired PCI bus
         */
-       mpc8349_i2c = (i2c_t*)(CFG_IMMRBAR + CFG_I2C2_OFFSET);
+       /* Switch temporarily to I2C bus #2 */
+       orig_i2c_bus = i2c_get_bus_num();
+
+       if(orig_i2c_bus != I2C_BUS_2)
+               i2c_set_bus_num(I2C_BUS_2);
+
        i2c_init(CFG_I2C_SPEED, CFG_I2C_SLAVE);
 
        val8 = 0;
@@ -118,6 +123,9 @@ pib_init(void)
        printf("PCI1: 32-bit on PMC1, PMC2\n");
        printf("PCI2: 32-bit on PMC3\n");
 #endif
+       /* Reset to original I2C bus */
+       if(orig_i2c_bus != I2C_BUS_2)
+               i2c_set_bus_num(orig_i2c_bus);
 }
 
 /**************************************************************************