Skip to content

Commit

Permalink
Merge tag 'v3.17-next-mediatek-support' of https://github.com/mbgg/li…
Browse files Browse the repository at this point in the history
…nux-mediatek into next/soc

Merge basic support for the Mediatek Cortex-A7 SoCs from Matthias Brugger:

Support is quite basic, as the only component working up to now are the
timers.

* tag 'v3.17-next-mediatek-support' of https://github.com/mbgg/linux-mediatek:
  arm: mediatek: add dts for Aquaris5 mobile phone
  dt-bindings: add documentation for Mediatek SoC
  arm: add basic support for Mediatek MT6589 boards

Signed-off-by: Matthias Brugger matthias.bgg@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  • Loading branch information
Arnd Bergmann committed Jul 23, 2014
2 parents f37ac9e + afaedea commit 60c70c8
Show file tree
Hide file tree
Showing 8 changed files with 164 additions and 0 deletions.
8 changes: 8 additions & 0 deletions Documentation/devicetree/bindings/arm/mediatek.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Mediatek MT6589 Platforms Device Tree Bindings

Boards with a SoC of the Mediatek MT6589 shall have the following property:

Required root node property:

compatible: must contain "mediatek,mt6589"

2 changes: 2 additions & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -946,6 +946,8 @@ source "arch/arm/mach-mv78xx0/Kconfig"

source "arch/arm/mach-imx/Kconfig"

source "arch/arm/mach-mediatek/Kconfig"

source "arch/arm/mach-mxs/Kconfig"

source "arch/arm/mach-netx/Kconfig"
Expand Down
1 change: 1 addition & 0 deletions arch/arm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ machine-$(CONFIG_ARCH_MSM) += msm
machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0
machine-$(CONFIG_ARCH_MVEBU) += mvebu
machine-$(CONFIG_ARCH_MXC) += imx
machine-$(CONFIG_ARCH_MEDIATEK) += mediatek
machine-$(CONFIG_ARCH_MXS) += mxs
machine-$(CONFIG_ARCH_NETX) += netx
machine-$(CONFIG_ARCH_NOMADIK) += nomadik
Expand Down
25 changes: 25 additions & 0 deletions arch/arm/boot/dts/mt6589-aquaris5.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Copyright (c) 2014 MundoReader S.L.
* Author: Matthias Brugger <matthias.bgg@gmail.com>
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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.
*/

/dts-v1/;
#include "mt6589.dtsi"

/ {
model = "bq Aquaris5";

memory {
reg = <0x80000000 0x40000000>;
};
};
94 changes: 94 additions & 0 deletions arch/arm/boot/dts/mt6589.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/*
* Copyright (c) 2014 MundoReader S.L.
* Author: Matthias Brugger <matthias.bgg@gmail.com>
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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.
*/

#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "skeleton.dtsi"

/ {
compatible = "mediatek,mt6589";
interrupt-parent = <&gic>;

cpus {
#address-cells = <1>;
#size-cells = <0>;

cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
};
cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x2>;
};
cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x3>;
};

};

clocks {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
ranges;

system_clk: dummy13m {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};

rtc_clk: dummy32k {
compatible = "fixed-clock";
clock-frequency = <32000>;
#clock-cells = <0>;
};
};

soc {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
ranges;

timer: timer@10008000 {
compatible = "mediatek,mt6577-timer";
reg = <0x10008000 0x80>;
interrupts = <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>;
clocks = <&system_clk>, <&rtc_clk>;
clock-names = "system-clk", "rtc-clk";
};

gic: interrupt-controller@10212000 {
compatible = "arm,cortex-a15-gic";
interrupt-controller;
#interrupt-cells = <3>;
reg = <0x10211000 0x1000>,
<0x10212000 0x1000>,
<0x10214000 0x2000>,
<0x10216000 0x2000>;
};
};
};
6 changes: 6 additions & 0 deletions arch/arm/mach-mediatek/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
config ARCH_MEDIATEK
bool "Mediatek MT6589 SoC" if ARCH_MULTI_V7
select ARM_GIC
select MTK_TIMER
help
Support for Mediatek Cortex-A7 Quad-Core-SoC MT6589.
1 change: 1 addition & 0 deletions arch/arm/mach-mediatek/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
obj-$(CONFIG_ARCH_MEDIATEK) += mediatek.o
27 changes: 27 additions & 0 deletions arch/arm/mach-mediatek/mediatek.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
* Device Tree support for Mediatek SoCs
*
* Copyright (c) 2014 MundoReader S.L.
* Author: Matthias Brugger <matthias.bgg@gmail.com>
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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.
*/
#include <linux/init.h>
#include <asm/mach/arch.h>

static const char * const mediatek_board_dt_compat[] = {
"mediatek,mt6589",
NULL,
};

DT_MACHINE_START(MEDIATEK_DT, "Mediatek Cortex-A7 (Device Tree)")
.dt_compat = mediatek_board_dt_compat,
MACHINE_END

0 comments on commit 60c70c8

Please sign in to comment.