[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 14/14] hw/arm/mps2-tz: Use the ARM SBCon two-wire serial bus i
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v3 14/14] hw/arm/mps2-tz: Use the ARM SBCon two-wire serial bus interface |
Date: |
Wed, 17 Jun 2020 09:25:39 +0200 |
>From 'Application Note AN521', chapter 4.7:
The SMM implements four SBCon serial modules:
One SBCon module for use by the Color LCD touch interface.
One SBCon module to configure the audio controller.
Two general purpose SBCon modules, that connect to the
Expansion headers J7 and J8, are intended for use with the
V2C-Shield1 which provide an I2C interface on the headers.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/arm/mps2-tz.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c
index 8155c35418..a4fd5ddede 100644
--- a/hw/arm/mps2-tz.c
+++ b/hw/arm/mps2-tz.c
@@ -58,6 +58,7 @@
#include "hw/arm/armsse.h"
#include "hw/dma/pl080.h"
#include "hw/ssi/pl022.h"
+#include "hw/i2c/arm_sbcon_i2c.h"
#include "hw/net/lan9118.h"
#include "net/net.h"
#include "hw/core/split-irq.h"
@@ -87,7 +88,7 @@ typedef struct {
TZPPC ppc[5];
TZMPC ssram_mpc[3];
PL022State spi[5];
- UnimplementedDeviceState i2c[4];
+ ArmSbconI2CState i2c[4];
UnimplementedDeviceState i2s_audio;
UnimplementedDeviceState gpio[4];
UnimplementedDeviceState gfx;
@@ -365,6 +366,18 @@ static MemoryRegion *make_spi(MPS2TZMachineState *mms,
void *opaque,
return sysbus_mmio_get_region(s, 0);
}
+static MemoryRegion *make_i2c(MPS2TZMachineState *mms, void *opaque,
+ const char *name, hwaddr size)
+{
+ ArmSbconI2CState *i2c = opaque;
+ SysBusDevice *s;
+
+ object_initialize_child(OBJECT(mms), name, i2c, TYPE_ARM_SBCON_I2C);
+ s = SYS_BUS_DEVICE(i2c);
+ sysbus_realize(s, &error_fatal);
+ return sysbus_mmio_get_region(s, 0);
+}
+
static void mps2tz_common_init(MachineState *machine)
{
MPS2TZMachineState *mms = MPS2TZ_MACHINE(machine);
@@ -499,10 +512,10 @@ static void mps2tz_common_init(MachineState *machine)
{ "uart2", make_uart, &mms->uart[2], 0x40202000, 0x1000 },
{ "uart3", make_uart, &mms->uart[3], 0x40203000, 0x1000 },
{ "uart4", make_uart, &mms->uart[4], 0x40204000, 0x1000 },
- { "i2c0", make_unimp_dev, &mms->i2c[0], 0x40207000, 0x1000 },
- { "i2c1", make_unimp_dev, &mms->i2c[1], 0x40208000, 0x1000 },
- { "i2c2", make_unimp_dev, &mms->i2c[2], 0x4020c000, 0x1000 },
- { "i2c3", make_unimp_dev, &mms->i2c[3], 0x4020d000, 0x1000 },
+ { "i2c0", make_i2c, &mms->i2c[0], 0x40207000, 0x1000 },
+ { "i2c1", make_i2c, &mms->i2c[1], 0x40208000, 0x1000 },
+ { "i2c2", make_i2c, &mms->i2c[2], 0x4020c000, 0x1000 },
+ { "i2c3", make_i2c, &mms->i2c[3], 0x4020d000, 0x1000 },
},
}, {
.name = "apb_ppcexp2",
--
2.21.3
- [PATCH v3 05/14] hw/arm: Use TYPE_VERSATILE_I2C instead of hardcoded string, (continued)
- [PATCH v3 05/14] hw/arm: Use TYPE_VERSATILE_I2C instead of hardcoded string, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 04/14] hw/i2c: Add header for ARM SBCon two-wire serial bus interface, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 06/14] hw/arm/mps2: Document CMSDK/FPGA APB subsystem sections, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 08/14] hw/arm/mps2: Add CMSDK APB watchdog device, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 09/14] hw/arm/mps2: Add CMSDK AHB GPIO peripherals as unimplemented devices, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 07/14] hw/arm/mps2: Rename CMSDK AHB peripheral region, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 10/14] hw/arm/mps2: Map the FPGA I/O block, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 12/14] hw/arm/mps2: Add I2C devices, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 13/14] hw/arm/mps2: Add audio I2S interface as unimplemented device, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 11/14] hw/arm/mps2: Add SPI devices, Philippe Mathieu-Daudé, 2020/06/17
- [PATCH v3 14/14] hw/arm/mps2-tz: Use the ARM SBCon two-wire serial bus interface,
Philippe Mathieu-Daudé <=
- Re: [PATCH v3 00/14] mps2: Add few more peripherals, no-reply, 2020/06/17
- Re: [PATCH v3 00/14] mps2: Add few more peripherals, Peter Maydell, 2020/06/22