mirror of https://github.com/xemu-project/xemu.git
hw/arm: Add SPI to Allwinner A10
The Allwinner A10 SPI controller is added to the Allwinner A10 description, so it is available when Cubieboard is emulated. Update the documentation for Cubieboard to indicate SPI availability. Signed-off-by: Strahinja Jankovic <strahinja.p.jankovic@gmail.com> Message-id: 20241001221349.8319-3-strahinja.p.jankovic@gmail.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
8d3dfb6205
commit
3341d1cb37
|
@ -15,4 +15,5 @@ Emulated devices:
|
|||
- USB controller
|
||||
- SATA controller
|
||||
- TWI (I2C) controller
|
||||
- SPI controller
|
||||
- Watchdog timer
|
||||
|
|
|
@ -328,6 +328,7 @@ config ALLWINNER_A10
|
|||
select ALLWINNER_WDT
|
||||
select ALLWINNER_EMAC
|
||||
select ALLWINNER_I2C
|
||||
select ALLWINNER_A10_SPI
|
||||
select AXP2XX_PMU
|
||||
select SERIAL_MM
|
||||
select UNIMP
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#define AW_A10_PIC_REG_BASE 0x01c20400
|
||||
#define AW_A10_PIT_REG_BASE 0x01c20c00
|
||||
#define AW_A10_UART0_REG_BASE 0x01c28000
|
||||
#define AW_A10_SPI0_BASE 0x01c05000
|
||||
#define AW_A10_EMAC_BASE 0x01c0b000
|
||||
#define AW_A10_EHCI_BASE 0x01c14000
|
||||
#define AW_A10_OHCI_BASE 0x01c14400
|
||||
|
@ -80,6 +81,8 @@ static void aw_a10_init(Object *obj)
|
|||
|
||||
object_initialize_child(obj, "i2c0", &s->i2c0, TYPE_AW_I2C);
|
||||
|
||||
object_initialize_child(obj, "spi0", &s->spi0, TYPE_AW_A10_SPI);
|
||||
|
||||
for (size_t i = 0; i < AW_A10_NUM_USB; i++) {
|
||||
object_initialize_child(obj, "ehci[*]", &s->ehci[i],
|
||||
TYPE_PLATFORM_EHCI);
|
||||
|
@ -195,6 +198,11 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
|
|||
sysbus_mmio_map(SYS_BUS_DEVICE(&s->i2c0), 0, AW_A10_I2C0_BASE);
|
||||
sysbus_connect_irq(SYS_BUS_DEVICE(&s->i2c0), 0, qdev_get_gpio_in(dev, 7));
|
||||
|
||||
/* SPI */
|
||||
sysbus_realize(SYS_BUS_DEVICE(&s->spi0), &error_fatal);
|
||||
sysbus_mmio_map(SYS_BUS_DEVICE(&s->spi0), 0, AW_A10_SPI0_BASE);
|
||||
sysbus_connect_irq(SYS_BUS_DEVICE(&s->spi0), 0, qdev_get_gpio_in(dev, 10));
|
||||
|
||||
/* WDT */
|
||||
sysbus_realize(SYS_BUS_DEVICE(&s->wdt), &error_fatal);
|
||||
sysbus_mmio_map_overlap(SYS_BUS_DEVICE(&s->wdt), 0, AW_A10_WDT_BASE, 1);
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "hw/misc/allwinner-a10-ccm.h"
|
||||
#include "hw/misc/allwinner-a10-dramc.h"
|
||||
#include "hw/i2c/allwinner-i2c.h"
|
||||
#include "hw/ssi/allwinner-a10-spi.h"
|
||||
#include "hw/watchdog/allwinner-wdt.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
|
||||
|
@ -40,6 +41,7 @@ struct AwA10State {
|
|||
AllwinnerAHCIState sata;
|
||||
AwSdHostState mmc0;
|
||||
AWI2CState i2c0;
|
||||
AWA10SPIState spi0;
|
||||
AwRtcState rtc;
|
||||
AwWdtState wdt;
|
||||
MemoryRegion sram_a;
|
||||
|
|
Loading…
Reference in New Issue