aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2015-11-02 10:18:50 +0000
committerJohn Crispin <john@openwrt.org>2015-11-02 10:18:50 +0000
commit25afe99b31f4ef3d835f96545e370770c230ac44 (patch)
tree5dbe83834a0a67121c557b7549a13221317f07eb /target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch
parent12e0d2737f558e886cf698e939f1758ab6a64947 (diff)
downloadupstream-25afe99b31f4ef3d835f96545e370770c230ac44.tar.gz
upstream-25afe99b31f4ef3d835f96545e370770c230ac44.tar.bz2
upstream-25afe99b31f4ef3d835f96545e370770c230ac44.zip
mediatek: add support for the new MT7623 Arm SoC
the support is still WIP. next steps are to make the pmic and ethernet work. this is the first commit to make sure nothing gets lost. Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 47354
Diffstat (limited to 'target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch')
-rw-r--r--target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch b/target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch
new file mode 100644
index 0000000000..728792c2a8
--- /dev/null
+++ b/target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch
@@ -0,0 +1,63 @@
+From eec99287ace37015ed313b4fc27ba205a158b66c Mon Sep 17 00:00:00 2001
+From: Matthias Brugger <matthias.bgg@gmail.com>
+Date: Fri, 1 May 2015 15:43:26 +0800
+Subject: [PATCH 41/76] arm: mediatek: enable gpt6 on boot up to make arch
+ timer working
+
+We enable GTP6 which ungates the arch timer clock.
+In the future this should be done in the bootloader.
+
+Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
+Signed-off-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
+---
+ arch/arm/mach-mediatek/mediatek.c | 29 +++++++++++++++++++++++++++++
+ 1 file changed, 29 insertions(+)
+
+diff --git a/arch/arm/mach-mediatek/mediatek.c b/arch/arm/mach-mediatek/mediatek.c
+index a954900..6b38d67 100644
+--- a/arch/arm/mach-mediatek/mediatek.c
++++ b/arch/arm/mach-mediatek/mediatek.c
+@@ -16,6 +16,34 @@
+ */
+ #include <linux/init.h>
+ #include <asm/mach/arch.h>
++#include <linux/of.h>
++#include <linux/clk-provider.h>
++#include <linux/clocksource.h>
++
++
++#define GPT6_CON_MT65xx 0x10008060
++#define GPT_ENABLE 0x31
++
++static void __init mediatek_timer_init(void)
++{
++ void __iomem *gpt_base = 0;
++
++ if (of_machine_is_compatible("mediatek,mt6589") ||
++ of_machine_is_compatible("mediatek,mt8135") ||
++ of_machine_is_compatible("mediatek,mt8127")) {
++ /* turn on GPT6 which ungates arch timer clocks */
++ gpt_base = ioremap(GPT6_CON_MT65xx, 0x04);
++ }
++
++ /* enabel clock and set to free-run */
++ if (gpt_base) {
++ writel(GPT_ENABLE, gpt_base);
++ iounmap(gpt_base);
++ }
++
++ of_clk_init(NULL);
++ clocksource_of_init();
++};
+
+ static const char * const mediatek_board_dt_compat[] = {
+ "mediatek,mt6589",
+@@ -27,4 +55,5 @@ static const char * const mediatek_board_dt_compat[] = {
+
+ DT_MACHINE_START(MEDIATEK_DT, "Mediatek Cortex-A7 (Device Tree)")
+ .dt_compat = mediatek_board_dt_compat,
++ .init_time = mediatek_timer_init,
+ MACHINE_END
+--
+1.7.10.4
+