hw/sd/pl181: Use named GPIOs
To make the code easier to manage/review/use, rename the cardstatus[0] variable as 'card_readonly' and name the GPIO "card-read-only". Similarly with cardstatus[1], renamed as 'card_inserted' and name its GPIO "card-inserted". Adapt the users accordingly by using the qdev_init_gpio_out_named() function. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Acked-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20200705204630.4133-6-f4bug@amsat.org>
This commit is contained in:
parent
0e33730c89
commit
26c5b0f4cb
@ -645,9 +645,9 @@ static void integratorcp_init(MachineState *machine)
|
|||||||
sysbus_create_simple(TYPE_INTEGRATOR_DEBUG, 0x1a000000, 0);
|
sysbus_create_simple(TYPE_INTEGRATOR_DEBUG, 0x1a000000, 0);
|
||||||
|
|
||||||
dev = sysbus_create_varargs("pl181", 0x1c000000, pic[23], pic[24], NULL);
|
dev = sysbus_create_varargs("pl181", 0x1c000000, pic[23], pic[24], NULL);
|
||||||
qdev_connect_gpio_out(dev, 0,
|
qdev_connect_gpio_out_named(dev, "card-read-only", 0,
|
||||||
qdev_get_gpio_in_named(icp, ICP_GPIO_MMC_WPROT, 0));
|
qdev_get_gpio_in_named(icp, ICP_GPIO_MMC_WPROT, 0));
|
||||||
qdev_connect_gpio_out(dev, 1,
|
qdev_connect_gpio_out_named(dev, "card-inserted", 0,
|
||||||
qdev_get_gpio_in_named(icp, ICP_GPIO_MMC_CARDIN, 0));
|
qdev_get_gpio_in_named(icp, ICP_GPIO_MMC_CARDIN, 0));
|
||||||
sysbus_create_varargs("pl041", 0x1d000000, pic[25], NULL);
|
sysbus_create_varargs("pl041", 0x1d000000, pic[25], NULL);
|
||||||
|
|
||||||
|
@ -234,8 +234,8 @@ static void realview_init(MachineState *machine,
|
|||||||
mmc_irq[1] = qemu_irq_split(
|
mmc_irq[1] = qemu_irq_split(
|
||||||
qdev_get_gpio_in(sysctl, ARM_SYSCTL_GPIO_MMC_CARDIN),
|
qdev_get_gpio_in(sysctl, ARM_SYSCTL_GPIO_MMC_CARDIN),
|
||||||
qemu_irq_invert(qdev_get_gpio_in(gpio2, 0)));
|
qemu_irq_invert(qdev_get_gpio_in(gpio2, 0)));
|
||||||
qdev_connect_gpio_out(dev, 0, mmc_irq[0]);
|
qdev_connect_gpio_out_named(dev, "card-read-only", 0, mmc_irq[0]);
|
||||||
qdev_connect_gpio_out(dev, 1, mmc_irq[1]);
|
qdev_connect_gpio_out_named(dev, "card-inserted", 0, mmc_irq[1]);
|
||||||
|
|
||||||
sysbus_create_simple("pl031", 0x10017000, pic[10]);
|
sysbus_create_simple("pl031", 0x10017000, pic[10]);
|
||||||
|
|
||||||
|
@ -624,9 +624,9 @@ static void vexpress_common_init(MachineState *machine)
|
|||||||
|
|
||||||
dev = sysbus_create_varargs("pl181", map[VE_MMCI], pic[9], pic[10], NULL);
|
dev = sysbus_create_varargs("pl181", map[VE_MMCI], pic[9], pic[10], NULL);
|
||||||
/* Wire up MMC card detect and read-only signals */
|
/* Wire up MMC card detect and read-only signals */
|
||||||
qdev_connect_gpio_out(dev, 0,
|
qdev_connect_gpio_out_named(dev, "card-read-only", 0,
|
||||||
qdev_get_gpio_in(sysctl, ARM_SYSCTL_GPIO_MMC_WPROT));
|
qdev_get_gpio_in(sysctl, ARM_SYSCTL_GPIO_MMC_WPROT));
|
||||||
qdev_connect_gpio_out(dev, 1,
|
qdev_connect_gpio_out_named(dev, "card-inserted", 0,
|
||||||
qdev_get_gpio_in(sysctl, ARM_SYSCTL_GPIO_MMC_CARDIN));
|
qdev_get_gpio_in(sysctl, ARM_SYSCTL_GPIO_MMC_CARDIN));
|
||||||
|
|
||||||
sysbus_create_simple("pl050_keyboard", map[VE_KMI0], pic[12]);
|
sysbus_create_simple("pl050_keyboard", map[VE_KMI0], pic[12]);
|
||||||
|
@ -60,7 +60,8 @@ typedef struct PL181State {
|
|||||||
uint32_t fifo[PL181_FIFO_LEN]; /* TODO use Fifo32 */
|
uint32_t fifo[PL181_FIFO_LEN]; /* TODO use Fifo32 */
|
||||||
qemu_irq irq[2];
|
qemu_irq irq[2];
|
||||||
/* GPIO outputs for 'card is readonly' and 'card inserted' */
|
/* GPIO outputs for 'card is readonly' and 'card inserted' */
|
||||||
qemu_irq cardstatus[2];
|
qemu_irq card_readonly;
|
||||||
|
qemu_irq card_inserted;
|
||||||
} PL181State;
|
} PL181State;
|
||||||
|
|
||||||
static const VMStateDescription vmstate_pl181 = {
|
static const VMStateDescription vmstate_pl181 = {
|
||||||
@ -479,7 +480,7 @@ static void pl181_reset(DeviceState *d)
|
|||||||
s->mask[1] = 0;
|
s->mask[1] = 0;
|
||||||
|
|
||||||
/* We can assume our GPIO outputs have been wired up now */
|
/* We can assume our GPIO outputs have been wired up now */
|
||||||
sd_set_cb(s->card, s->cardstatus[0], s->cardstatus[1]);
|
sd_set_cb(s->card, s->card_readonly, s->card_inserted);
|
||||||
/* Since we're still using the legacy SD API the card is not plugged
|
/* Since we're still using the legacy SD API the card is not plugged
|
||||||
* into any bus, and we must reset it manually.
|
* into any bus, and we must reset it manually.
|
||||||
*/
|
*/
|
||||||
@ -496,7 +497,8 @@ static void pl181_init(Object *obj)
|
|||||||
sysbus_init_mmio(sbd, &s->iomem);
|
sysbus_init_mmio(sbd, &s->iomem);
|
||||||
sysbus_init_irq(sbd, &s->irq[0]);
|
sysbus_init_irq(sbd, &s->irq[0]);
|
||||||
sysbus_init_irq(sbd, &s->irq[1]);
|
sysbus_init_irq(sbd, &s->irq[1]);
|
||||||
qdev_init_gpio_out(dev, s->cardstatus, 2);
|
qdev_init_gpio_out_named(dev, &s->card_readonly, "card-read-only", 1);
|
||||||
|
qdev_init_gpio_out_named(dev, &s->card_inserted, "card-inserted", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pl181_realize(DeviceState *dev, Error **errp)
|
static void pl181_realize(DeviceState *dev, Error **errp)
|
||||||
|
Loading…
Reference in New Issue
Block a user