[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v4 07/14] i.MX: Add i.MX7 GPT variant
From: |
Andrey Smirnov |
Subject: |
[Qemu-arm] [PATCH v4 07/14] i.MX: Add i.MX7 GPT variant |
Date: |
Mon, 15 Jan 2018 17:37:02 -0800 |
Add minimal code needed to allow upstream Linux guest to boot.
Cc: Peter Maydell <address@hidden>
Cc: Jason Wang <address@hidden>
Cc: Philippe Mathieu-Daudé <address@hidden>
Cc: address@hidden
Cc: address@hidden
Cc: address@hidden
Signed-off-by: Andrey Smirnov <address@hidden>
---
hw/timer/imx_gpt.c | 25 +++++++++++++++++++++++++
include/hw/timer/imx_gpt.h | 1 +
2 files changed, 26 insertions(+)
diff --git a/hw/timer/imx_gpt.c b/hw/timer/imx_gpt.c
index 4b9b54bf2e..65e4ee6bcf 100644
--- a/hw/timer/imx_gpt.c
+++ b/hw/timer/imx_gpt.c
@@ -113,6 +113,17 @@ static const IMXClk imx6_gpt_clocks[] = {
CLK_HIGH, /* 111 reference clock */
};
+static const IMXClk imx7_gpt_clocks[] = {
+ CLK_NONE, /* 000 No clock source */
+ CLK_IPG, /* 001 ipg_clk, 532MHz*/
+ CLK_IPG_HIGH, /* 010 ipg_clk_highfreq */
+ CLK_EXT, /* 011 External clock */
+ CLK_32k, /* 100 ipg_clk_32k */
+ CLK_HIGH, /* 101 reference clock */
+ CLK_NONE, /* 110 not defined */
+ CLK_NONE, /* 111 not defined */
+};
+
static void imx_gpt_set_freq(IMXGPTState *s)
{
uint32_t clksrc = extract32(s->cr, GPT_CR_CLKSRC_SHIFT, 3);
@@ -512,6 +523,13 @@ static void imx6_gpt_init(Object *obj)
s->clocks = imx6_gpt_clocks;
}
+static void imx7_gpt_init(Object *obj)
+{
+ IMXGPTState *s = IMX_GPT(obj);
+
+ s->clocks = imx7_gpt_clocks;
+}
+
static const TypeInfo imx25_gpt_info = {
.name = TYPE_IMX25_GPT,
.parent = TYPE_SYS_BUS_DEVICE,
@@ -532,11 +550,18 @@ static const TypeInfo imx6_gpt_info = {
.instance_init = imx6_gpt_init,
};
+static const TypeInfo imx7_gpt_info = {
+ .name = TYPE_IMX7_GPT,
+ .parent = TYPE_IMX25_GPT,
+ .instance_init = imx7_gpt_init,
+};
+
static void imx_gpt_register_types(void)
{
type_register_static(&imx25_gpt_info);
type_register_static(&imx31_gpt_info);
type_register_static(&imx6_gpt_info);
+ type_register_static(&imx7_gpt_info);
}
type_init(imx_gpt_register_types)
diff --git a/include/hw/timer/imx_gpt.h b/include/hw/timer/imx_gpt.h
index eac59b2a70..20ccb327c4 100644
--- a/include/hw/timer/imx_gpt.h
+++ b/include/hw/timer/imx_gpt.h
@@ -77,6 +77,7 @@
#define TYPE_IMX25_GPT "imx25.gpt"
#define TYPE_IMX31_GPT "imx31.gpt"
#define TYPE_IMX6_GPT "imx6.gpt"
+#define TYPE_IMX7_GPT "imx7.gpt"
#define TYPE_IMX_GPT TYPE_IMX25_GPT
--
2.14.3
- [Qemu-arm] [PATCH v4 00/14] Initial i.MX7 support, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 01/14] sdhci: Add i.MX specific subtype of SDHCI, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 02/14] hw: i.MX: Convert i.MX6 to use TYPE_IMX_USDHC, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 03/14] i.MX: Add code to emulate i.MX7 CCM, PMU and ANALOG IP blocks, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 04/14] i.MX: Add code to emulate i.MX2 watchdog IP block, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 05/14] i.MX: Add code to emulate i.MX7 SNVS IP-block, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 06/14] i.MX: Add code to emulate GPCv2 IP block, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 07/14] i.MX: Add i.MX7 GPT variant,
Andrey Smirnov <=
- [Qemu-arm] [PATCH v4 08/14] i.MX: Add implementation of i.MX7 GPR IP block, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 10/14] usb: Add basic code to emulate Chipidea USB IP, Andrey Smirnov, 2018/01/15
- [Qemu-arm] [PATCH v4 11/14] ARM: Add basic code to emulate A7MPCore DAP block, Andrey Smirnov, 2018/01/15