tpci200->slots[i].io_phys.size = 0;
                tpci200->slots[i].id_phys.address = NULL;
                tpci200->slots[i].id_phys.size = 0;
+               tpci200->slots[i].int_phys.address = NULL;
+               tpci200->slots[i].int_phys.size = 0;
                tpci200->slots[i].mem_phys.address = NULL;
                tpci200->slots[i].mem_phys.size = 0;
        }
                        TPCI200_ID_SPACE_OFF + TPCI200_ID_SPACE_GAP*i;
                tpci200->slots[i].id_phys.size = TPCI200_ID_SPACE_SIZE;
 
+               tpci200->slots[i].int_phys.address =
+                       (void __iomem *)ioidint_base +
+                       TPCI200_INT_SPACE_OFF + TPCI200_INT_SPACE_GAP * i;
+               tpci200->slots[i].int_phys.size = TPCI200_INT_SPACE_SIZE;
+
                tpci200->slots[i].mem_phys.address =
                        (void __iomem *)mem_base + TPCI200_MEM8_GAP*i;
                tpci200->slots[i].mem_phys.size = TPCI200_MEM8_SIZE;
                }
                virt_addr_space = &dev->id_space;
                break;
+       case IPACK_INT_SPACE:
+               if (dev->int_space.address == NULL) {
+                       dev_info(&dev->dev,
+                                "Slot [%d:%d] INT space not mapped !\n",
+                                dev->bus_nr, dev->slot);
+                       goto out_unlock;
+               }
+               virt_addr_space = &dev->int_space;
+               break;
        case IPACK_MEM_SPACE:
                if (dev->mem_space.address == NULL) {
                        dev_info(&dev->dev,
                phys_address = tpci200->slots[dev->slot].id_phys.address;
                size_to_map = tpci200->slots[dev->slot].id_phys.size;
                break;
+       case IPACK_INT_SPACE:
+               if (dev->int_space.address != NULL) {
+                       dev_err(&dev->dev,
+                               "Slot [%d:%d] INT space already mapped !\n",
+                               tpci200->number, dev->slot);
+                       res = -EINVAL;
+                       goto out_unlock;
+               }
+               virt_addr_space = &dev->int_space;
+
+               phys_address = tpci200->slots[dev->slot].int_phys.address;
+               size_to_map = tpci200->slots[dev->slot].int_phys.size;
+               break;
        case IPACK_MEM_SPACE:
                if (dev->mem_space.address != NULL) {
                        dev_err(&dev->dev,
 
  * @irq                Slot IRQ infos
  * @io_phys    IO physical base address register of the slot
  * @id_phys    ID physical base address register of the slot
+ * @int_phys   INT physical base address register of the slot
  * @mem_phys   MEM physical base address register of the slot
  *
  */
        struct slot_irq         *irq;
        struct ipack_addr_space io_phys;
        struct ipack_addr_space id_phys;
+       struct ipack_addr_space int_phys;
        struct ipack_addr_space mem_phys;
 };