Revision c31a4724
b/hw/pl181.c | ||
---|---|---|
47 | 47 |
int linux_hack; |
48 | 48 |
uint32_t fifo[PL181_FIFO_LEN]; |
49 | 49 |
qemu_irq irq[2]; |
50 |
/* GPIO outputs for 'card is readonly' and 'card inserted' */ |
|
51 |
qemu_irq cardstatus[2]; |
|
50 | 52 |
} pl181_state; |
51 | 53 |
|
52 | 54 |
#define PL181_CMD_INDEX 0x3f |
... | ... | |
444 | 446 |
s->linux_hack = 0; |
445 | 447 |
s->mask[0] = 0; |
446 | 448 |
s->mask[1] = 0; |
449 |
|
|
450 |
/* We can assume our GPIO outputs have been wired up now */ |
|
451 |
sd_set_cb(s->card, s->cardstatus[0], s->cardstatus[1]); |
|
447 | 452 |
} |
448 | 453 |
|
449 | 454 |
static int pl181_init(SysBusDevice *dev) |
... | ... | |
457 | 462 |
sysbus_init_mmio(dev, 0x1000, iomemtype); |
458 | 463 |
sysbus_init_irq(dev, &s->irq[0]); |
459 | 464 |
sysbus_init_irq(dev, &s->irq[1]); |
465 |
qdev_init_gpio_out(&s->busdev.qdev, s->cardstatus, 2); |
|
460 | 466 |
dinfo = drive_get_next(IF_SD); |
461 | 467 |
s->card = sd_init(dinfo ? dinfo->bdrv : NULL, 0); |
462 | 468 |
qemu_register_reset(pl181_reset, s); |
Also available in: Unified diff