Question regarding mpic_assign_isu() in storcenter.c

Eric Witcher witcher at mindspring.com
Sat Jun 14 10:52:18 EST 2008


Can anyone explain why the comment preceding mpic_assign_isu() on line 145 says that the I2C registers are at 0x11020 yet the code on line 146 shows 0x11000?

The MPC8245 user manual shows the external interrupt 0 registers at 0x10200 (paddr=40000) and the I2C registers at 0x11020.


<from storcenter.c> <2.6.25.6>

/*
 112 * Interrupt setup and service.  Interrrupts on the turbostation come
 113 * from the four PCI slots plus onboard 8241 devices: I2C, DUART.
 114 */
 115static void __init storcenter_init_IRQ(void)
 116{
 117        struct mpic *mpic;
 118        struct device_node *dnp;
 119        const void *prop;
 120        int size;
 121        phys_addr_t paddr;
 122
 123        dnp = of_find_node_by_type(NULL, "open-pic");
 124        if (dnp == NULL)
 125                return;
 126
 127        prop = of_get_property(dnp, "reg", &size);
 128        if (prop == NULL) {
 129                of_node_put(dnp);
 130                return;
 131        }
 132
 133        paddr = (phys_addr_t)of_translate_address(dnp, prop);
 134        mpic = mpic_alloc(dnp, paddr, MPIC_PRIMARY | MPIC_WANTS_RESET,
 135                        16, 32, " OpenPIC  ");
 136
 137        of_node_put(dnp);
 138
 139        BUG_ON(mpic == NULL);
 140
 141        /*
 142         * 16 Serial Interrupts followed by 16 Internal Interrupts.
 143         * I2C is the second internal, so it is at 17, 0x11020.
 144         */
 145        mpic_assign_isu(mpic, 0, paddr + 0x10200);
 146        mpic_assign_isu(mpic, 1, paddr + 0x11000);
 147
 148        mpic_init(mpic);
 149}





More information about the Linuxppc-dev mailing list