aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorMatthias Brugger <matthias.bgg@gmail.com>2014-05-12 19:06:13 -0400
committerMatthias Brugger <matthias.bgg@gmail.com>2014-07-22 11:52:37 -0400
commitf682a21854166d66e67606283dffd8d9fe31dbee (patch)
tree2e07eb052734bbafb310b2908a26c2a22b6b61aa /arch/arm
parent7171511eaec5bf23fb06078f59784a3a0626b38f (diff)
arm: add basic support for Mediatek MT6589 boards
This adds a generic devicetree board file and a dtsi for boards based on MT6589 SoCs from Mediatek. Apart from the generic parts (gic, clocks) the only component currently supported are the timers. Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/Makefile1
-rw-r--r--arch/arm/boot/dts/mt6589.dtsi94
-rw-r--r--arch/arm/mach-mediatek/Kconfig6
-rw-r--r--arch/arm/mach-mediatek/Makefile1
-rw-r--r--arch/arm/mach-mediatek/mediatek.c27
6 files changed, 131 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 87b63fde06d7..845c12de257b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -978,6 +978,8 @@ source "arch/arm/mach-mv78xx0/Kconfig"
978 978
979source "arch/arm/mach-imx/Kconfig" 979source "arch/arm/mach-imx/Kconfig"
980 980
981source "arch/arm/mach-mediatek/Kconfig"
982
981source "arch/arm/mach-mxs/Kconfig" 983source "arch/arm/mach-mxs/Kconfig"
982 984
983source "arch/arm/mach-netx/Kconfig" 985source "arch/arm/mach-netx/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 6721fab13734..1895de2ecc3c 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -172,6 +172,7 @@ machine-$(CONFIG_ARCH_MSM) += msm
172machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0 172machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0
173machine-$(CONFIG_ARCH_MVEBU) += mvebu 173machine-$(CONFIG_ARCH_MVEBU) += mvebu
174machine-$(CONFIG_ARCH_MXC) += imx 174machine-$(CONFIG_ARCH_MXC) += imx
175machine-$(CONFIG_ARCH_MEDIATEK) += mediatek
175machine-$(CONFIG_ARCH_MXS) += mxs 176machine-$(CONFIG_ARCH_MXS) += mxs
176machine-$(CONFIG_ARCH_NETX) += netx 177machine-$(CONFIG_ARCH_NETX) += netx
177machine-$(CONFIG_ARCH_NOMADIK) += nomadik 178machine-$(CONFIG_ARCH_NOMADIK) += nomadik
diff --git a/arch/arm/boot/dts/mt6589.dtsi b/arch/arm/boot/dts/mt6589.dtsi
new file mode 100644
index 000000000000..d0297a051549
--- /dev/null
+++ b/arch/arm/boot/dts/mt6589.dtsi
@@ -0,0 +1,94 @@
1/*
2 * Copyright (c) 2014 MundoReader S.L.
3 * Author: Matthias Brugger <matthias.bgg@gmail.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#include <dt-bindings/interrupt-controller/irq.h>
17#include <dt-bindings/interrupt-controller/arm-gic.h>
18#include "skeleton.dtsi"
19
20/ {
21 compatible = "mediatek,mt6589";
22 interrupt-parent = <&gic>;
23
24 cpus {
25 #address-cells = <1>;
26 #size-cells = <0>;
27
28 cpu@0 {
29 device_type = "cpu";
30 compatible = "arm,cortex-a7";
31 reg = <0x0>;
32 };
33 cpu@1 {
34 device_type = "cpu";
35 compatible = "arm,cortex-a7";
36 reg = <0x1>;
37 };
38 cpu@2 {
39 device_type = "cpu";
40 compatible = "arm,cortex-a7";
41 reg = <0x2>;
42 };
43 cpu@3 {
44 device_type = "cpu";
45 compatible = "arm,cortex-a7";
46 reg = <0x3>;
47 };
48
49 };
50
51 clocks {
52 #address-cells = <1>;
53 #size-cells = <1>;
54 compatible = "simple-bus";
55 ranges;
56
57 system_clk: dummy13m {
58 compatible = "fixed-clock";
59 clock-frequency = <13000000>;
60 #clock-cells = <0>;
61 };
62
63 rtc_clk: dummy32k {
64 compatible = "fixed-clock";
65 clock-frequency = <32000>;
66 #clock-cells = <0>;
67 };
68 };
69
70 soc {
71 #address-cells = <1>;
72 #size-cells = <1>;
73 compatible = "simple-bus";
74 ranges;
75
76 timer: timer@10008000 {
77 compatible = "mediatek,mt6577-timer";
78 reg = <0x10008000 0x80>;
79 interrupts = <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>;
80 clocks = <&system_clk>, <&rtc_clk>;
81 clock-names = "system-clk", "rtc-clk";
82 };
83
84 gic: interrupt-controller@10212000 {
85 compatible = "arm,cortex-a15-gic";
86 interrupt-controller;
87 #interrupt-cells = <3>;
88 reg = <0x10211000 0x1000>,
89 <0x10212000 0x1000>,
90 <0x10214000 0x2000>,
91 <0x10216000 0x2000>;
92 };
93 };
94};
diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig
new file mode 100644
index 000000000000..2c043a210db0
--- /dev/null
+++ b/arch/arm/mach-mediatek/Kconfig
@@ -0,0 +1,6 @@
1config ARCH_MEDIATEK
2 bool "Mediatek MT6589 SoC" if ARCH_MULTI_V7
3 select ARM_GIC
4 select MTK_TIMER
5 help
6 Support for Mediatek Cortex-A7 Quad-Core-SoC MT6589.
diff --git a/arch/arm/mach-mediatek/Makefile b/arch/arm/mach-mediatek/Makefile
new file mode 100644
index 000000000000..43e619f56172
--- /dev/null
+++ b/arch/arm/mach-mediatek/Makefile
@@ -0,0 +1 @@
obj-$(CONFIG_ARCH_MEDIATEK) += mediatek.o
diff --git a/arch/arm/mach-mediatek/mediatek.c b/arch/arm/mach-mediatek/mediatek.c
new file mode 100644
index 000000000000..f2acf075350d
--- /dev/null
+++ b/arch/arm/mach-mediatek/mediatek.c
@@ -0,0 +1,27 @@
1/*
2 * Device Tree support for Mediatek SoCs
3 *
4 * Copyright (c) 2014 MundoReader S.L.
5 * Author: Matthias Brugger <matthias.bgg@gmail.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 */
17#include <linux/init.h>
18#include <asm/mach/arch.h>
19
20static const char * const mediatek_board_dt_compat[] = {
21 "mediatek,mt6589",
22 NULL,
23};
24
25DT_MACHINE_START(MEDIATEK_DT, "Mediatek Cortex-A7 (Device Tree)")
26 .dt_compat = mediatek_board_dt_compat,
27MACHINE_END