[coreboot-gerrit] New patch to review for coreboot: 7d129fe libpayload: add mediatek timer driver

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Mon May 11 10:32:41 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10170

-gerrit

commit 7d129fee3ec0072ecbab7dba9ce60c142f5c0399
Author: Yidi Lin <yidi.lin at mediatek.com>
Date:   Mon Feb 9 16:34:44 2015 +0800

    libpayload: add mediatek timer driver
    
    Change-Id: Ifb19cf97d4db6c7394521e549968a0cfb6ed1c75
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 0137652ca07e290bb3cb1cc82a00b44ac7bcc7bf
    Original-Change-Id: Ica649927d3533c847b24e520e8fe73d75fb9e786
    Original-Signed-off-by: Yidi Lin <yidi.lin at mediatek.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/257375
    Original-Reviewed-by: Julius Werner <jwerner at chromium.org>
---
 payloads/libpayload/Config.in                 | 17 ++++++++++++++
 payloads/libpayload/drivers/Makefile.inc      |  1 +
 payloads/libpayload/drivers/timer/mtk_timer.c | 34 +++++++++++++++++++++++++++
 3 files changed, 52 insertions(+)

diff --git a/payloads/libpayload/Config.in b/payloads/libpayload/Config.in
index 40c57dc..4d48761 100644
--- a/payloads/libpayload/Config.in
+++ b/payloads/libpayload/Config.in
@@ -405,6 +405,9 @@ config TIMER_CYGNUS
 config TIMER_IMG_PISTACHIO
 	bool "Timer for IMG Pistachio"
 
+config TIMER_MTK
+	bool "Timer for MediaTek MT8173"
+
 endchoice
 
 config TIMER_MCT_HZ
@@ -447,6 +450,20 @@ config IPROC_PERIPH_GLB_TIM_REG_BASE
 	depends on TIMER_CYGNUS
 	default 0x19020200
 
+config TIMER_MTK_HZ
+	int "MediaTek GPT frequency"
+	depends on TIMER_MTK
+	default 13000000
+	help
+	  Clock frequency of MediaTek General Purpose Timer.
+
+config TIMER_MTK_ADDRESS
+	hex "MTK GPT register address"
+	depends on TIMER_MTK
+	default 0x10008048
+	help
+	  Address of GPT4's counter register to read the FREERUN-mode timer value.
+
 config USB
 	bool "USB Support"
 	default n
diff --git a/payloads/libpayload/drivers/Makefile.inc b/payloads/libpayload/drivers/Makefile.inc
index 61b0034..57a82ac 100644
--- a/payloads/libpayload/drivers/Makefile.inc
+++ b/payloads/libpayload/drivers/Makefile.inc
@@ -46,6 +46,7 @@ libc-$(CONFIG_LP_NVRAM) += nvram.c
 libc-$(CONFIG_LP_NVRAM) += options.c
 
 # Timer drivers
+libc-$(CONFIG_LP_TIMER_MTK) += timer/mtk_timer.c
 libc-$(CONFIG_LP_TIMER_MCT) += timer/mct.c
 libc-$(CONFIG_LP_TIMER_RDTSC) += timer/rdtsc.c
 libc-$(CONFIG_LP_TIMER_TEGRA_1US) += timer/tegra_1us.c
diff --git a/payloads/libpayload/drivers/timer/mtk_timer.c b/payloads/libpayload/drivers/timer/mtk_timer.c
new file mode 100644
index 0000000..92b28bd
--- /dev/null
+++ b/payloads/libpayload/drivers/timer/mtk_timer.c
@@ -0,0 +1,34 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2014 MediaTek Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <arch/io.h>
+#include <libpayload.h>
+#include <libpayload-config.h>
+#include <stdint.h>
+
+static uint32_t *const mtk_tmrus = (void*)CONFIG_LP_TIMER_MTK_ADDRESS;
+
+uint64_t timer_hz(void)
+{
+	return CONFIG_LP_TIMER_MTK_HZ;
+}
+
+uint64_t timer_raw_value(void)
+{
+	return (uint64_t)readl(mtk_tmrus);
+}



More information about the coreboot-gerrit mailing list