From: Yoshinori Sato <ysato@users.sourceforge.jp>
To: qemu-devel@nongnu.org
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Subject: [PATCH 14/20] hw/rx/rx62n: RX62N Add MTU module
Date: Thu, 27 Aug 2020 21:38:53 +0900 [thread overview]
Message-ID: <20200827123859.81793-15-ysato@users.sourceforge.jp> (raw)
In-Reply-To: <20200827123859.81793-1-ysato@users.sourceforge.jp>
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
---
include/hw/rx/rx62n.h | 3 +++
hw/rx/rx62n.c | 28 ++++++++++++++++++++++++++++
hw/rx/Kconfig | 1 +
3 files changed, 32 insertions(+)
diff --git a/include/hw/rx/rx62n.h b/include/hw/rx/rx62n.h
index f463148799..170c8cb6fc 100644
--- a/include/hw/rx/rx62n.h
+++ b/include/hw/rx/rx62n.h
@@ -28,6 +28,7 @@
#include "hw/intc/rx_icu.h"
#include "hw/timer/renesas_tmr8.h"
#include "hw/timer/renesas_timer.h"
+#include "hw/timer/renesas_mtu.h"
#include "hw/char/renesas_sci.h"
#include "hw/rx/rx62n-cpg.h"
#include "qemu/units.h"
@@ -45,6 +46,7 @@
#define RX62N_NR_TMR 2
#define RX62N_NR_CMT 2
#define RX62N_NR_SCI 6
+#define RX62N_NR_MTU 2
typedef struct RX62NClass {
/*< private >*/
@@ -70,6 +72,7 @@ typedef struct RX62NState {
RXICUState icu;
RenesasTMR8State tmr[RX62N_NR_TMR];
RenesasCMTState cmt[RX62N_NR_CMT];
+ RenesasMTU2State mtu[RX62N_NR_MTU];
RSCIAState sci[RX62N_NR_SCI];
RX62NCPGState cpg;
diff --git a/hw/rx/rx62n.c b/hw/rx/rx62n.c
index f61383a4c2..344be846bc 100644
--- a/hw/rx/rx62n.c
+++ b/hw/rx/rx62n.c
@@ -46,6 +46,7 @@
#define RX62N_ICU_BASE 0x00087000
#define RX62N_TMR_BASE 0x00088200
#define RX62N_CMT_BASE 0x00088000
+#define RX62N_MTU_BASE 0x00088600
#define RX62N_SCI_BASE 0x00088240
#define RX62N_CPG_BASE 0x00080010
@@ -55,6 +56,7 @@
*/
#define RX62N_TMR_IRQ 174
#define RX62N_CMT_IRQ 28
+#define RX62N_MTU_IRQ 114
#define RX62N_SCI_IRQ 214
/*
@@ -187,6 +189,30 @@ static void register_cmt(RX62NState *s, int unit)
qdev_get_clock_out(DEVICE(&s->cpg), ckname));
}
+static void register_mtu(RX62NState *s, int unit)
+{
+ SysBusDevice *mtu;
+ int i, irqbase;
+ char ckname[16];
+
+ object_initialize_child(OBJECT(s), "mtu[*]", &s->mtu[unit],
+ TYPE_RENESAS_MTU2);
+ mtu = SYS_BUS_DEVICE(&s->mtu[unit]);
+ qdev_prop_set_uint32(DEVICE(mtu), "unit", unit);
+
+ sysbus_mmio_map(mtu, 0, RX62N_MTU_BASE + 0x100 + unit * 0x400);
+ sysbus_mmio_map(mtu, 1, RX62N_MTU_BASE + unit * 0x400);
+ sysbus_mmio_map(mtu, 2, RX62N_MTU_BASE + 0x280 + unit * 0x400);
+ irqbase = RX62N_MTU_IRQ + MTU_NR_IRQ * unit;
+ for (i = 0; i < MTU_NR_IRQ; i++) {
+ sysbus_connect_irq(mtu, i, s->irq[irqbase + i]);
+ }
+ sysbus_realize(mtu, &error_abort);
+ snprintf(ckname, sizeof(ckname), "pck_mtu-%d", unit);
+ qdev_connect_clock_in(DEVICE(mtu), "pck",
+ qdev_get_clock_out(DEVICE(&s->cpg), ckname));
+}
+
static void register_sci(RX62NState *s, int unit)
{
SysBusDevice *sci;
@@ -248,6 +274,8 @@ static void rx62n_realize(DeviceState *dev, Error **errp)
register_tmr(s, 1);
register_cmt(s, 0);
register_cmt(s, 1);
+ register_mtu(s, 0);
+ register_mtu(s, 1);
register_sci(s, 0);
sysbus_realize(SYS_BUS_DEVICE(&s->cpg), &error_abort);
}
diff --git a/hw/rx/Kconfig b/hw/rx/Kconfig
index d1812870ea..887a5782bb 100644
--- a/hw/rx/Kconfig
+++ b/hw/rx/Kconfig
@@ -4,6 +4,7 @@ config RX62N_MCU
select RENESAS_TMR8
select RENESAS_TIMER
select RENESAS_SCI
+ select RENESAS_MTU
config RX_GDBSIM
bool
--
2.20.1
next prev parent reply other threads:[~2020-08-27 12:48 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-27 12:38 [PATCH 00/20] RX target update Yoshinori Sato
2020-08-27 12:38 ` [PATCH 01/20] loader.c: Add support Motrola S-record format Yoshinori Sato
2020-09-08 20:44 ` Philippe Mathieu-Daudé
2020-10-25 0:43 ` Philippe Mathieu-Daudé
2020-10-27 21:05 ` Alistair Francis
2020-08-27 12:38 ` [PATCH 02/20] include/elf.h: Add EM_RX Yoshinori Sato
2020-08-27 12:38 ` [PATCH 03/20] hw/rx: Firmware and kernel loader Yoshinori Sato
2020-09-08 20:47 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 04/20] hw/rx: New firmware loader Yoshinori Sato
2020-08-27 12:38 ` [PATCH 05/20] hw/rx: Add RX62N Clock generator Yoshinori Sato
2020-09-08 21:11 ` Philippe Mathieu-Daudé
2020-10-24 21:56 ` Philippe Mathieu-Daudé
2020-10-24 21:58 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 06/20] hw/timer: Renesas 8bit timer emulation Yoshinori Sato
2020-10-24 21:27 ` Philippe Mathieu-Daudé
2020-10-24 21:29 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 07/20] hw/rx: RX62N convert new 8bit timer Yoshinori Sato
2020-08-27 12:38 ` [PATCH 08/20] hw/timer: Renesas TMU/CMT module Yoshinori Sato
2020-10-24 22:47 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 09/20] hw/timer: Remove renesas_cmt Yoshinori Sato
2020-08-27 12:38 ` [PATCH 10/20] hw/rx: Convert to renesas_timer Yoshinori Sato
2020-08-27 12:38 ` [PATCH 11/20] hw/char: Renesas SCI module Yoshinori Sato
2020-10-24 21:40 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 12/20] hw/rx/rx62n: Use New " Yoshinori Sato
2020-10-25 0:33 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 13/20] hw/timer: Add Renesas MTU2 Yoshinori Sato
2020-08-27 12:38 ` Yoshinori Sato [this message]
2020-09-08 21:12 ` [PATCH 14/20] hw/rx/rx62n: RX62N Add MTU module Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 15/20] hw/net: Add generic Bit-bang MDIO PHY Yoshinori Sato
2020-08-27 12:38 ` [PATCH 16/20] hw/net: Add Renesas On-chip Ethernet MAC Yoshinori Sato
2020-10-24 21:37 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 17/20] hw/rx/rx62n: Add Ethernet support Yoshinori Sato
2020-08-27 12:38 ` [PATCH 18/20] hw/rx: Add Tokudenkairo TKDN-RX62N-BRD Yoshinori Sato
2020-09-08 21:18 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 19/20] hw/rx: Add CQ-FRK-RX62N target Yoshinori Sato
2020-09-08 21:20 ` Philippe Mathieu-Daudé
2020-08-27 12:38 ` [PATCH 20/20] MAINTAINERS: Update RX entry Yoshinori Sato
2020-09-08 21:21 ` Philippe Mathieu-Daudé
2020-08-31 20:38 ` [PATCH 00/20] RX target update Philippe Mathieu-Daudé
2020-09-10 16:06 ` Yoshinori Sato
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200827123859.81793-15-ysato@users.sourceforge.jp \
--to=ysato@users.sourceforge.jp \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).