mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-16 14:41:55 -06:00
nseries: attach monitor powerdown request to menelaus
I noticed some unused code in the twl92230, probably from before qdev-ification. This patch makes the machine use the chip's pwrbtn signal. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
This commit is contained in:
parent
6c263e26a5
commit
dd4427a619
2 changed files with 11 additions and 12 deletions
|
@ -204,6 +204,8 @@ static void n8x0_i2c_setup(struct n800_s *s)
|
||||||
qdev_get_gpio_in(s->cpu->ih[0],
|
qdev_get_gpio_in(s->cpu->ih[0],
|
||||||
OMAP_INT_24XX_SYS_NIRQ));
|
OMAP_INT_24XX_SYS_NIRQ));
|
||||||
|
|
||||||
|
qemu_system_powerdown = qdev_get_gpio_in(dev, 3);
|
||||||
|
|
||||||
/* Attach a TMP105 PM chip (A0 wired to ground) */
|
/* Attach a TMP105 PM chip (A0 wired to ground) */
|
||||||
dev = i2c_create_slave(s->i2c, "tmp105", N8X0_TMP105_ADDR);
|
dev = i2c_create_slave(s->i2c, "tmp105", N8X0_TMP105_ADDR);
|
||||||
qdev_connect_gpio_out(dev, 0, tmp_irq);
|
qdev_connect_gpio_out(dev, 0, tmp_irq);
|
||||||
|
|
|
@ -61,9 +61,7 @@ typedef struct {
|
||||||
} rtc;
|
} rtc;
|
||||||
uint16_t rtc_next_vmstate;
|
uint16_t rtc_next_vmstate;
|
||||||
qemu_irq out[4];
|
qemu_irq out[4];
|
||||||
qemu_irq *in;
|
|
||||||
uint8_t pwrbtn_state;
|
uint8_t pwrbtn_state;
|
||||||
qemu_irq pwrbtn;
|
|
||||||
} MenelausState;
|
} MenelausState;
|
||||||
|
|
||||||
static inline void menelaus_update(MenelausState *s)
|
static inline void menelaus_update(MenelausState *s)
|
||||||
|
@ -186,14 +184,12 @@ static void menelaus_gpio_set(void *opaque, int line, int level)
|
||||||
{
|
{
|
||||||
MenelausState *s = (MenelausState *) opaque;
|
MenelausState *s = (MenelausState *) opaque;
|
||||||
|
|
||||||
/* No interrupt generated */
|
if (line < 3) {
|
||||||
s->inputs &= ~(1 << line);
|
/* No interrupt generated */
|
||||||
s->inputs |= level << line;
|
s->inputs &= ~(1 << line);
|
||||||
}
|
s->inputs |= level << line;
|
||||||
|
return;
|
||||||
static void menelaus_pwrbtn_set(void *opaque, int line, int level)
|
}
|
||||||
{
|
|
||||||
MenelausState *s = (MenelausState *) opaque;
|
|
||||||
|
|
||||||
if (!s->pwrbtn_state && level) {
|
if (!s->pwrbtn_state && level) {
|
||||||
s->status |= 1 << 11; /* PSHBTN */
|
s->status |= 1 << 11; /* PSHBTN */
|
||||||
|
@ -849,8 +845,9 @@ static int twl92230_init(I2CSlave *i2c)
|
||||||
s->rtc.hz_tm = qemu_new_timer_ms(rt_clock, menelaus_rtc_hz, s);
|
s->rtc.hz_tm = qemu_new_timer_ms(rt_clock, menelaus_rtc_hz, s);
|
||||||
/* Three output pins plus one interrupt pin. */
|
/* Three output pins plus one interrupt pin. */
|
||||||
qdev_init_gpio_out(&i2c->qdev, s->out, 4);
|
qdev_init_gpio_out(&i2c->qdev, s->out, 4);
|
||||||
qdev_init_gpio_in(&i2c->qdev, menelaus_gpio_set, 3);
|
|
||||||
s->pwrbtn = qemu_allocate_irqs(menelaus_pwrbtn_set, s, 1)[0];
|
/* Three input pins plus one power-button pin. */
|
||||||
|
qdev_init_gpio_in(&i2c->qdev, menelaus_gpio_set, 4);
|
||||||
|
|
||||||
menelaus_reset(&s->i2c);
|
menelaus_reset(&s->i2c);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue