From 25afe99b31f4ef3d835f96545e370770c230ac44 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 2 Nov 2015 10:18:50 +0000 Subject: 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 SVN-Revision: 47354 --- ...k-enable-gpt6-on-boot-up-to-make-arch-tim.patch | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch (limited to 'target/linux/mediatek/patches/0041-arm-mediatek-enable-gpt6-on-boot-up-to-make-arch-tim.patch') 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 +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 +Signed-off-by: Yingjoe Chen +--- + 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 + #include ++#include ++#include ++#include ++ ++ ++#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 + -- cgit v1.2.3