hw: aspeed: Introduce common UART init function
Signed-off-by: Peter Delevoryas <pdel@fb.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20220516062328.298336-5-pdel@fb.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
94d10f4210
commit
470253b6d0
@ -15,7 +15,6 @@
|
|||||||
#include "sysemu/sysemu.h"
|
#include "sysemu/sysemu.h"
|
||||||
#include "hw/qdev-clock.h"
|
#include "hw/qdev-clock.h"
|
||||||
#include "hw/misc/unimp.h"
|
#include "hw/misc/unimp.h"
|
||||||
#include "hw/char/serial.h"
|
|
||||||
#include "hw/arm/aspeed_soc.h"
|
#include "hw/arm/aspeed_soc.h"
|
||||||
|
|
||||||
#define ASPEED_SOC_IOMEM_SIZE 0x00200000
|
#define ASPEED_SOC_IOMEM_SIZE 0x00200000
|
||||||
@ -215,10 +214,8 @@ static void aspeed_soc_ast1030_realize(DeviceState *dev_soc, Error **errp)
|
|||||||
qdev_get_gpio_in(DEVICE(&s->armv7m),
|
qdev_get_gpio_in(DEVICE(&s->armv7m),
|
||||||
sc->irqmap[ASPEED_DEV_KCS] + aspeed_lpc_kcs_4));
|
sc->irqmap[ASPEED_DEV_KCS] + aspeed_lpc_kcs_4));
|
||||||
|
|
||||||
/* UART - attach an 8250 to the IO space as our UART */
|
/* UART */
|
||||||
serial_mm_init(get_system_memory(), sc->memmap[s->uart_default], 2,
|
aspeed_soc_uart_init(s);
|
||||||
aspeed_soc_get_irq(s, s->uart_default),
|
|
||||||
38400, serial_hd(0), DEVICE_LITTLE_ENDIAN);
|
|
||||||
|
|
||||||
/* Timer */
|
/* Timer */
|
||||||
object_property_set_link(OBJECT(&s->timerctrl), "scu", OBJECT(&s->scu),
|
object_property_set_link(OBJECT(&s->timerctrl), "scu", OBJECT(&s->scu),
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "hw/misc/unimp.h"
|
#include "hw/misc/unimp.h"
|
||||||
#include "hw/arm/aspeed_soc.h"
|
#include "hw/arm/aspeed_soc.h"
|
||||||
#include "hw/char/serial.h"
|
|
||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
#include "hw/i2c/aspeed_i2c.h"
|
#include "hw/i2c/aspeed_i2c.h"
|
||||||
@ -372,10 +371,8 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp)
|
|||||||
sysbus_connect_irq(SYS_BUS_DEVICE(&s->adc), 0,
|
sysbus_connect_irq(SYS_BUS_DEVICE(&s->adc), 0,
|
||||||
aspeed_soc_get_irq(s, ASPEED_DEV_ADC));
|
aspeed_soc_get_irq(s, ASPEED_DEV_ADC));
|
||||||
|
|
||||||
/* UART - attach an 8250 to the IO space as our UART */
|
/* UART */
|
||||||
serial_mm_init(get_system_memory(), sc->memmap[s->uart_default], 2,
|
aspeed_soc_uart_init(s);
|
||||||
aspeed_soc_get_irq(s, s->uart_default), 38400,
|
|
||||||
serial_hd(0), DEVICE_LITTLE_ENDIAN);
|
|
||||||
|
|
||||||
/* I2C */
|
/* I2C */
|
||||||
object_property_set_link(OBJECT(&s->i2c), "dram", OBJECT(s->dram_mr),
|
object_property_set_link(OBJECT(&s->i2c), "dram", OBJECT(s->dram_mr),
|
||||||
|
@ -303,10 +303,8 @@ static void aspeed_soc_realize(DeviceState *dev, Error **errp)
|
|||||||
sysbus_connect_irq(SYS_BUS_DEVICE(&s->adc), 0,
|
sysbus_connect_irq(SYS_BUS_DEVICE(&s->adc), 0,
|
||||||
aspeed_soc_get_irq(s, ASPEED_DEV_ADC));
|
aspeed_soc_get_irq(s, ASPEED_DEV_ADC));
|
||||||
|
|
||||||
/* UART - attach an 8250 to the IO space as our UART */
|
/* UART */
|
||||||
serial_mm_init(get_system_memory(), sc->memmap[s->uart_default], 2,
|
aspeed_soc_uart_init(s);
|
||||||
aspeed_soc_get_irq(s, s->uart_default), 38400,
|
|
||||||
serial_hd(0), DEVICE_LITTLE_ENDIAN);
|
|
||||||
|
|
||||||
/* I2C */
|
/* I2C */
|
||||||
object_property_set_link(OBJECT(&s->i2c), "dram", OBJECT(s->dram_mr),
|
object_property_set_link(OBJECT(&s->i2c), "dram", OBJECT(s->dram_mr),
|
||||||
@ -544,3 +542,13 @@ qemu_irq aspeed_soc_get_irq(AspeedSoCState *s, int dev)
|
|||||||
{
|
{
|
||||||
return ASPEED_SOC_GET_CLASS(s)->get_irq(s, dev);
|
return ASPEED_SOC_GET_CLASS(s)->get_irq(s, dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void aspeed_soc_uart_init(AspeedSoCState *s)
|
||||||
|
{
|
||||||
|
AspeedSoCClass *sc = ASPEED_SOC_GET_CLASS(s);
|
||||||
|
|
||||||
|
/* Attach an 8250 to the IO space as our UART */
|
||||||
|
serial_mm_init(get_system_memory(), sc->memmap[s->uart_default], 2,
|
||||||
|
aspeed_soc_get_irq(s, s->uart_default), 38400,
|
||||||
|
serial_hd(0), DEVICE_LITTLE_ENDIAN);
|
||||||
|
}
|
||||||
|
@ -164,5 +164,6 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
qemu_irq aspeed_soc_get_irq(AspeedSoCState *s, int dev);
|
qemu_irq aspeed_soc_get_irq(AspeedSoCState *s, int dev);
|
||||||
|
void aspeed_soc_uart_init(AspeedSoCState *s);
|
||||||
|
|
||||||
#endif /* ASPEED_SOC_H */
|
#endif /* ASPEED_SOC_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user