[PATCH v2 0/7] arm: Add basic support for MediaTek MT8127 & MT8135 SoCs
STALE4400d
10 messages,
2 authors,
2014-09-18 · open the first message on its own page
This is v2 of adding basic device tree support MT8127 & MT8135.
This series is based on Matthias' pull request for mediatek support [1]
Comparing to v1, this version changes:
- Change timer compatible string.
- Build dtb for mt8127 & mt8135
- Adding earlyprintk support for mt8127 & mt8135
We are planning to upstream drivers for MT8127 & MT8135 SoCs.
MT8135 is a tablet soc featuring 2 CA7 + 2 CA15. MT8127 is a
tablet soc with 4 CA7. They share many similar IP components
with MT65xx series.
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2014-September/287506.html
Joe.C (7):
arm: MTK: Add basic support for mt8127
arm: mediatek: add dts for 8127 Moose board
arm: MTK: Add basic support for mt8135
arm: mediatek: add dts for MT8135 evaluation board.
dt-bindings: add more chips in documentation for Mediatek SoC
arm: dts: Build dtb for mt8127 & mt8135
arm: mediatek: Add earlyprintk support for mt8127 & mt8135
Documentation/devicetree/bindings/arm/mediatek.txt | 9 +-
arch/arm/Kconfig.debug | 20 ++++
arch/arm/boot/dts/Makefile | 4 +-
arch/arm/boot/dts/mt8127-moose.dts | 24 +++++
arch/arm/boot/dts/mt8127.dtsi | 93 +++++++++++++++++
arch/arm/boot/dts/mt8135-evbp1.dts | 24 +++++
arch/arm/boot/dts/mt8135.dtsi | 115 +++++++++++++++++++++
arch/arm/mach-mediatek/mediatek.c | 2 +
8 files changed, 287 insertions(+), 4 deletions(-)
create mode 100644 arch/arm/boot/dts/mt8127-moose.dts
create mode 100644 arch/arm/boot/dts/mt8127.dtsi
create mode 100644 arch/arm/boot/dts/mt8135-evbp1.dts
create mode 100644 arch/arm/boot/dts/mt8135.dtsi
--
1.8.1.1.dirty
From: "Joe.C" <redacted>
This adds a basic dtsi for MT8127 SoC.
Signed-off-by: Joe.C <redacted>
---
arch/arm/boot/dts/mt8127.dtsi | 93 +++++++++++++++++++++++++++++++++++++++
arch/arm/mach-mediatek/mediatek.c | 1 +
2 files changed, 94 insertions(+)
create mode 100644 arch/arm/boot/dts/mt8127.dtsi
diff --git a/arch/arm/boot/dts/mt8127.dtsi b/arch/arm/boot/dts/mt8127.dtsi
new file mode 100644
index 0000000..25c9f69
--- /dev/null
+++ b/arch/arm/boot/dts/mt8127.dtsi @@ -0,0 +1,93 @@
+ /*
+ * Copyright ( c ) 2014 MediaTek Inc .
+ * Author : Joe . C < yingjoe . chen @ mediatek . com >
+ *
+ * This program is free software ; you can redistribute it and / or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation .
+ *
+ * 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 "skeleton64.dtsi"
+
+ / {
+ compatible = "mediatek,mt8127" ;
+ 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 = < 2 > ;
+ #size-cells = < 2 > ;
+ 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 = < 2 > ;
+ #size-cells = < 2 > ;
+ compatible = "simple-bus" ;
+ ranges ;
+
+ timer : timer @ 10008000 {
+ compatible = "mediatek,mt8127-timer" , "mediatek,mt6577-timer" ;
+ reg = < 0 0x10008000 0 0x80 > ;
+ interrupts = < GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH > ;
+ clocks = <& system_clk > , <& rtc_clk > ;
+ clock-names = "system-clk" , "rtc-clk" ;
+ };
+
+ gic : interrupt-controller @ 10211000 {
+ compatible = "arm,cortex-a7-gic" ;
+ interrupt-controller ;
+ # interrupt-cells = < 3 > ;
+ reg = < 0 0x10211000 0 0x1000 > ,
+ < 0 0x10212000 0 0x1000 > ,
+ < 0 0x10214000 0 0x2000 > ,
+ < 0 0x10216000 0 0x2000 > ;
+ };
+ };
+ }; diff --git a/arch/arm/mach-mediatek/mediatek.c b/arch/arm/mach-mediatek/mediatek.c
index f2acf07..7f478ce 100644
--- a/arch/arm/mach-mediatek/mediatek.c
+++ b/arch/arm/mach-mediatek/mediatek.c @@ -19,6 +19,7 @@
static const char * const mediatek_board_dt_compat [] = {
"mediatek,mt6589" ,
+ "mediatek,mt8127" ,
NULL ,
};
--
1.8.1.1.dirty
From: "Joe.C" <redacted>
Moose is a tablet evalutation board based on MT8127 SoC.
Signed-off-by: Joe.C <redacted>
---
arch/arm/boot/dts/mt8127-moose.dts | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 arch/arm/boot/dts/mt8127-moose.dts
diff --git a/arch/arm/boot/dts/mt8127-moose.dts b/arch/arm/boot/dts/mt8127-moose.dts
new file mode 100644
index 0000000..715e23c
--- /dev/null
+++ b/arch/arm/boot/dts/mt8127-moose.dts @@ -0,0 +1,24 @@
+ /*
+ * Copyright ( c ) 2014 MediaTek Inc .
+ * Author : Joe . C < yingjoe . chen @ mediatek . com >
+ *
+ * This program is free software ; you can redistribute it and / or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation .
+ *
+ * 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 "mt8127.dtsi"
+
+ / {
+ model = "mt8127-moose" ;
+
+ memory {
+ reg = < 0 0x80000000 0 0x40000000 > ;
+ };
+ }; --
1.8.1.1.dirty
From: "Joe.C" <redacted>
This adds a basic dtsi for MT8135 based SoC.
Signed-off-by: Joe.C <redacted>
---
arch/arm/boot/dts/mt8135.dtsi | 115 ++++++++++++++++++++++++++++++++++++++
arch/arm/mach-mediatek/mediatek.c | 1 +
2 files changed, 116 insertions(+)
create mode 100644 arch/arm/boot/dts/mt8135.dtsi
diff --git a/arch/arm/boot/dts/mt8135.dtsi b/arch/arm/boot/dts/mt8135.dtsi
new file mode 100644
index 0000000..90a56ad
--- /dev/null
+++ b/arch/arm/boot/dts/mt8135.dtsi @@ -0,0 +1,115 @@
+ /*
+ * Copyright ( c ) 2014 MediaTek Inc .
+ * Author : Joe . C < yingjoe . chen @ mediatek . com >
+ *
+ * This program is free software ; you can redistribute it and / or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation .
+ *
+ * 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 "skeleton64.dtsi"
+
+ / {
+ compatible = "mediatek,mt8135" ;
+ interrupt-parent = <& gic > ;
+
+ cpu-map {
+ cluster0 {
+ core0 {
+ cpu = <& cpu0 > ;
+ };
+ core1 {
+ cpu = <& cpu1 > ;
+ };
+ };
+
+ cluster1 {
+ core0 {
+ cpu = <& cpu2 > ;
+ };
+ core1 {
+ cpu = <& cpu3 > ;
+ };
+ };
+ };
+
+ cpus {
+ #address-cells = < 1 > ;
+ #size-cells = < 0 > ;
+
+ cpu0 : cpu @ 0 {
+ device_type = "cpu" ;
+ compatible = "arm,cortex-a7" ;
+ reg = < 0x000 > ;
+ };
+
+ cpu1 : cpu @ 1 {
+ device_type = "cpu" ;
+ compatible = "arm,cortex-a7" ;
+ reg = < 0x001 > ;
+ };
+
+ cpu2 : cpu @ 100 {
+ device_type = "cpu" ;
+ compatible = "arm,cortex-a15" ;
+ reg = < 0x100 > ;
+ };
+
+ cpu3 : cpu @ 101 {
+ device_type = "cpu" ;
+ compatible = "arm,cortex-a15" ;
+ reg = < 0x101 > ;
+ };
+ };
+
+ clocks {
+ #address-cells = < 2 > ;
+ #size-cells = < 2 > ;
+ 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 = < 2 > ;
+ #size-cells = < 2 > ;
+ compatible = "simple-bus" ;
+ ranges ;
+
+ timer : timer @ 10008000 {
+ compatible = "mediatek,mt8135-timer" , "mediatek,mt6577-timer" ;
+ reg = < 0 0x10008000 0 0x80 > ;
+ interrupts = < GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH > ;
+ clocks = <& system_clk > , <& rtc_clk > ;
+ clock-names = "system-clk" , "rtc-clk" ;
+ };
+
+ gic : interrupt-controller @ 10211000 {
+ compatible = "arm,cortex-a15-gic" ;
+ interrupt-controller ;
+ # interrupt-cells = < 3 > ;
+ reg = < 0 0x10211000 0 0x1000 > ,
+ < 0 0x10212000 0 0x1000 > ,
+ < 0 0x10214000 0 0x2000 > ,
+ < 0 0x10216000 0 0x2000 > ;
+ };
+ };
+ }; diff --git a/arch/arm/mach-mediatek/mediatek.c b/arch/arm/mach-mediatek/mediatek.c
index 7f478ce..48051a2 100644
--- a/arch/arm/mach-mediatek/mediatek.c
+++ b/arch/arm/mach-mediatek/mediatek.c @@ -20,6 +20,7 @@
static const char * const mediatek_board_dt_compat [] = {
"mediatek,mt6589" ,
"mediatek,mt8127" ,
+ "mediatek,mt8135" ,
NULL ,
};
--
1.8.1.1.dirty
From: "Joe.C" <redacted>
Evbp1 is a tablet evaluation board based on MT8135 SoC.
Signed-off-by: Joe.C <redacted>
---
arch/arm/boot/dts/mt8135-evbp1.dts | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 arch/arm/boot/dts/mt8135-evbp1.dts
diff --git a/arch/arm/boot/dts/mt8135-evbp1.dts b/arch/arm/boot/dts/mt8135-evbp1.dts
new file mode 100644
index 0000000..d7c5ef0
--- /dev/null
+++ b/arch/arm/boot/dts/mt8135-evbp1.dts @@ -0,0 +1,24 @@
+ /*
+ * Copyright ( c ) 2014 MediaTek Inc .
+ * Author : Joe . C < yingjoe . chen @ mediatek . com >
+ *
+ * This program is free software ; you can redistribute it and / or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation .
+ *
+ * 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 "mt8135.dtsi"
+
+ / {
+ model = "mt8135-evbp1" ;
+
+ memory {
+ reg = < 0 0x80000000 0 0x40000000 > ;
+ };
+ }; --
1.8.1.1.dirty
From: "Joe.C" <redacted>
Add MT8127 & MT8135 from Mediatek.
Signed-off-by: Joe.C <redacted>
---
Documentation/devicetree/bindings/arm/mediatek.txt | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/mediatek.txt b/Documentation/devicetree/bindings/arm/mediatek.txt
index fa25226..40a9745 100644
--- a/Documentation/devicetree/bindings/arm/mediatek.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek.txt @@ -1,10 +1,13 @@
- Mediatek MT6589 Platforms Device Tree Bindings
+ Mediatek Platforms Device Tree Bindings
- Boards with a SoC of the Mediatek MT6589 shall have the following property:
+ Boards with a SoC of the Mediatek shall have the following property:
Required root node property:
- compatible: must contain "mediatek,mt6589"
+ compatible: Must contain one of
+ "mediatek,mt6589"
+ "mediatek,mt8127"
+ "mediatek,mt8135"
Supported boards: --
1.8.1.1.dirty
From: "Joe.C" <redacted>
This allows the "make dtbs" to build the moose and mt8135-evbp1
for MediaTek SoC
Signed-off-by: Joe.C <redacted>
---
arch/arm/boot/dts/Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 055b20c..1e7380d 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile @@ -491,7 +491,9 @@ dtb-$(CONFIG_MACH_DOVE) += dove-cm-a510.dtb \
dove-d2plug.dtb \
dove-d3plug.dtb \
dove-dove-db.dtb
- dtb-$(CONFIG_ARCH_MEDIATEK) += mt6589-aquaris5.dtb
+ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6589-aquaris5.dtb \
+ mt8127-moose.dtb \
+ mt8135-evbp1.dtb
targets += dtbs dtbs_install
targets += $( dtb-y) --
1.8.1.1.dirty
From: "Joe.C" <redacted>
Enable low-level debug for Mediatek mt8127 & mt8135 SoC.
Signed-off-by: Joe.C <redacted>
---
arch/arm/Kconfig.debug | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index cfdd1c0..3888d17 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug @@ -842,6 +842,22 @@ choice
Say Y here if you want kernel low-level debugging support
for Mediatek mt6589 based platforms on UART0.
+ config DEBUG_MT8127_UART0
+ bool "Mediatek mt8127 UART0"
+ depends on ARCH_MEDIATEK
+ select DEBUG_UART_8250
+ help
+ Say Y here if you want kernel low-level debugging support
+ for Mediatek mt8127 based platforms on UART0.
+
+ config DEBUG_MT8135_UART3
+ bool "Mediatek mt8135 UART3"
+ depends on ARCH_MEDIATEK
+ select DEBUG_UART_8250
+ help
+ Say Y here if you want kernel low-level debugging support
+ for Mediatek mt8135 based platforms on UART3.
+
config DEBUG_VEXPRESS_UART0_DETECT
bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
depends on ARCH_VEXPRESS && CPU_CP15_MMU @@ -1084,6 +1100,8 @@ config DEBUG_UART_PHYS
default 0 x101f1000 if ARCH_VERSATILE
default 0 x101fb000 if DEBUG_NOMADIK_UART
default 0 x11006000 if DEBUG_MT6589_UART0
+ default 0 x11002000 if DEBUG_MT8127_UART0
+ default 0 x11009000 if DEBUG_MT8135_UART3
default 0 x16000000 if ARCH_INTEGRATOR
default 0 x18000300 if DEBUG_BCM_5301X
default 0 x1c090000 if DEBUG_VEXPRESS_UART0_RS1 @@ -1147,6 +1165,8 @@ config DEBUG_UART_VIRT
default 0 xf0201000 if DEBUG_BCM2835
default 0 xf1000300 if DEBUG_BCM_5301X
default 0 xf1006000 if DEBUG_MT6589_UART0
+ default 0 xf1002000 if DEBUG_MT8127_UART0
+ default 0 xf1009000 if DEBUG_MT8135_UART3
default 0 xf11f1000 if ARCH_VERSATILE
default 0 xf1600000 if ARCH_INTEGRATOR
default 0 xf1c28000 if DEBUG_SUNXI_UART0 --
1.8.1.1.dirty
On 17/09/14 16:24, Joe.C wrote: quoted hunk From: "Joe.C" <yingjoe.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
Enable low-level debug for Mediatek mt8127 & mt8135 SoC.
Signed-off-by: Joe.C <yingjoe.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
---
arch/arm/Kconfig.debug | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index cfdd1c0..3888d17 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug @@ -842,6 +842,22 @@ choice
Say Y here if you want kernel low-level debugging support
for Mediatek mt6589 based platforms on UART0.
+ config DEBUG_MT8127_UART0
+ bool "Mediatek mt8127 UART0"
+ depends on ARCH_MEDIATEK
+ select DEBUG_UART_8250
+ help
+ Say Y here if you want kernel low-level debugging support
+ for Mediatek mt8127 based platforms on UART0.
+
+ config DEBUG_MT8135_UART3
+ bool "Mediatek mt8135 UART3"
+ depends on ARCH_MEDIATEK
+ select DEBUG_UART_8250
+ help
+ Say Y here if you want kernel low-level debugging support
+ for Mediatek mt8135 based platforms on UART3.
+
config DEBUG_VEXPRESS_UART0_DETECT
bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
depends on ARCH_VEXPRESS && CPU_CP15_MMU @@ -1084,6 +1100,8 @@ config DEBUG_UART_PHYS
default 0 x101f1000 if ARCH_VERSATILE
default 0 x101fb000 if DEBUG_NOMADIK_UART
default 0 x11006000 if DEBUG_MT6589_UART0
+ default 0 x11002000 if DEBUG_MT8127_UART0
+ default 0 x11009000 if DEBUG_MT8135_UART3
These lines are ordered by the address.
quoted hunk default 0x16000000 if ARCH_INTEGRATOR
default 0x18000300 if DEBUG_BCM_5301X
default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1 @@ -1147,6 +1165,8 @@ config DEBUG_UART_VIRT
default 0xf0201000 if DEBUG_BCM2835
default 0xf1000300 if DEBUG_BCM_5301X
default 0xf1006000 if DEBUG_MT6589_UART0
+ default 0xf1002000 if DEBUG_MT8127_UART0
+ default 0xf1009000 if DEBUG_MT8135_UART3
Same here.
Apart from that the patches look fine to me.
Cheers,
Matthias
default 0xf11f1000 if ARCH_VERSATILE
default 0xf1600000 if ARCH_INTEGRATOR
default 0xf1c28000 if DEBUG_SUNXI_UART0 --
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Sorry I just saw some more issues:
On 17/09/14 16:24, Joe.C wrote: quoted hunk From: "Joe.C" <yingjoe.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
Add MT8127 & MT8135 from Mediatek.
Signed-off-by: Joe.C <yingjoe.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
---
Documentation/devicetree/bindings/arm/mediatek.txt | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/mediatek.txt b/Documentation/devicetree/bindings/arm/mediatek.txt
index fa25226..40a9745 100644
--- a/Documentation/devicetree/bindings/arm/mediatek.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek.txt @@ -1,10 +1,13 @@
- Mediatek MT6589 Platforms Device Tree Bindings
+ Mediatek Platforms Device Tree Bindings
- Boards with a SoC of the Mediatek MT6589 shall have the following property:
+ Boards with a SoC of the Mediatek shall have the following property:
Required root node property:
- compatible: must contain "mediatek,mt6589"
+ compatible: Must contain one of
+ "mediatek,mt6589"
+ "mediatek,mt8127"
+ "mediatek,mt8135"
Supported boards:
Please document the supported boards and add a compatible string in the
dts files for moose and evbp1 boards.
Thanks,
Matthias
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html