2015-07-14 07:06:09

by Mars Cheng

[permalink] [raw]
Subject: [PATCH v2 0/2] Add mt6795 basic chip support

This patch adds basic chip support for Mediatek 8-core chip, mt6795.
It is also named as Helio X10. It is based on:
1. 4.2-rc1
2. [PATCH v4 0/2] Add mt6580 basic chip support

The second one has added some device tree binding documentation for
mt6580. mt6795 has some device tree binding modifications too.
To cleanly apply this patch, please apply mt6580 patch set first.

Changes in v2
1. Remove clocks node & bootargs
2. Refine stdout-path setting
3. Use correct mask value in device tree for arm local timer

Mars Cheng (2):
Document: DT: Add bindings for mediatek MT6795 SoC Platform
arm64: dts: mediatek: add mt6795 support

Documentation/devicetree/bindings/arm/mediatek.txt | 9 +-
.../bindings/arm/mediatek/mediatek,sysirq.txt | 3 +-
.../devicetree/bindings/serial/mtk-uart.txt | 5 +-
arch/arm64/boot/dts/mediatek/Makefile | 1 +
arch/arm64/boot/dts/mediatek/mt6795-evb.dts | 37 +++++
arch/arm64/boot/dts/mediatek/mt6795.dtsi | 162 +++++++++++++++++++++
6 files changed, 212 insertions(+), 5 deletions(-)
create mode 100644 arch/arm64/boot/dts/mediatek/mt6795-evb.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt6795.dtsi

--
1.8.1.1.dirty


2015-07-14 07:01:21

by Mars Cheng

[permalink] [raw]
Subject: [PATCH v2 1/2] Document: DT: Add bindings for mediatek MT6795 SoC Platform

This adds DT binding documentation for Mediatek MT6795.

Signed-off-by: Mars Cheng <[email protected]>
---
Documentation/devicetree/bindings/arm/mediatek.txt | 9 +++++++--
.../devicetree/bindings/arm/mediatek/mediatek,sysirq.txt | 3 ++-
Documentation/devicetree/bindings/serial/mtk-uart.txt | 5 +++--
3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/mediatek.txt b/Documentation/devicetree/bindings/arm/mediatek.txt
index 2daa424..618a919 100644
--- a/Documentation/devicetree/bindings/arm/mediatek.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek.txt
@@ -1,6 +1,7 @@
-MediaTek mt65xx & mt81xx Platforms Device Tree Bindings
+MediaTek mt65xx, mt67xx & mt81xx Platforms Device Tree Bindings

-Boards with a MediaTek mt65xx/mt81xx SoC shall have the following property:
+Boards with a MediaTek mt65xx/mt67xx/mt81xx SoC shall have the
+following property:

Required root node property:

@@ -8,6 +9,7 @@ compatible: Must contain one of
"mediatek,mt6580"
"mediatek,mt6589"
"mediatek,mt6592"
+ "mediatek,mt6795"
"mediatek,mt8127"
"mediatek,mt8135"
"mediatek,mt8173"
@@ -24,6 +26,9 @@ Supported boards:
- Evaluation board for MT6592:
Required root node properties:
- compatible = "mediatek,mt6592-evb", "mediatek,mt6592";
+- Evaluation board for MT6795(Helio X10):
+ Required root node properties:
+ - compatible = "mediatek,mt6795-evb", "mediatek,mt6795";
- MTK mt8127 tablet moose EVB:
Required root node properties:
- compatible = "mediatek,mt8127-moose", "mediatek,mt8127";
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt
index 3c9c3a7..260cc1a 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt
@@ -1,4 +1,4 @@
-Mediatek 65xx/81xx sysirq
+Mediatek 65xx/67xx/81xx sysirq

Mediatek SOCs sysirq support controllable irq inverter for each GIC SPI
interrupt.
@@ -8,6 +8,7 @@ Required properties:
"mediatek,mt8173-sysirq"
"mediatek,mt8135-sysirq"
"mediatek,mt8127-sysirq"
+ "mediatek,mt6795-sysirq"
"mediatek,mt6592-sysirq"
"mediatek,mt6589-sysirq"
"mediatek,mt6582-sysirq"
diff --git a/Documentation/devicetree/bindings/serial/mtk-uart.txt b/Documentation/devicetree/bindings/serial/mtk-uart.txt
index a875997..c0a70f2 100644
--- a/Documentation/devicetree/bindings/serial/mtk-uart.txt
+++ b/Documentation/devicetree/bindings/serial/mtk-uart.txt
@@ -5,11 +5,12 @@ Required properties:
* "mediatek,mt8135-uart" for MT8135 compatible UARTS
* "mediatek,mt8127-uart" for MT8127 compatible UARTS
* "mediatek,mt8173-uart" for MT8173 compatible UARTS
+ * "mediatek,mt6795-uart" for MT6795 compatible UARTS
* "mediatek,mt6589-uart" for MT6589 compatible UARTS
* "mediatek,mt6582-uart" for MT6582 compatible UARTS
* "mediatek,mt6580-uart" for MT6580 compatible UARTS
- * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6589, MT6582,
- MT6580, MT6577)
+ * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6795, MT6589,
+ MT6582, MT6580, MT6577)

- reg: The base address of the UART register bank.

--
1.8.1.1.dirty

2015-07-14 07:06:11

by Mars Cheng

[permalink] [raw]
Subject: [PATCH v2 2/2] arm64: dts: mediatek: add mt6795 support

This adds basic chip support for MT6795 SoC

Signed-off-by: Mars Cheng <[email protected]>
---
arch/arm64/boot/dts/mediatek/Makefile | 1 +
arch/arm64/boot/dts/mediatek/mt6795-evb.dts | 41 +++++++
arch/arm64/boot/dts/mediatek/mt6795.dtsi | 162 ++++++++++++++++++++++++++++
3 files changed, 204 insertions(+)
create mode 100644 arch/arm64/boot/dts/mediatek/mt6795-evb.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt6795.dtsi

diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
index 3ce2462..e0a4bff 100644
--- a/arch/arm64/boot/dts/mediatek/Makefile
+++ b/arch/arm64/boot/dts/mediatek/Makefile
@@ -1,3 +1,4 @@
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt6795-evb.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb

always := $(dtb-y)
diff --git a/arch/arm64/boot/dts/mediatek/mt6795-evb.dts b/arch/arm64/boot/dts/mediatek/mt6795-evb.dts
new file mode 100644
index 0000000..ad665f5
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt6795-evb.dts
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2015 MediaTek Inc.
+ * Author: Mars.C <[email protected]>
+ *
+ * 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 "mt6795.dtsi"
+
+/ {
+ model = "MediaTek MT6795 Evaluation Board";
+ compatible = "mediatek,mt6795-evb", "mediatek,mt6795";
+
+ aliases {
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0 0x40000000 0 0x1e800000>;
+ };
+
+ chosen {
+ stdout-path = "serial0:921600n8";
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt6795.dtsi b/arch/arm64/boot/dts/mediatek/mt6795.dtsi
new file mode 100644
index 0000000..da200e7
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt6795.dtsi
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2015 MediaTek Inc.
+ * Author: Mars.C <[email protected]>
+ *
+ * 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,
+ * 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>
+
+/ {
+ compatible = "mediatek,mt6795";
+ interrupt-parent = <&sysirq>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu0: cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x000>;
+ };
+
+ cpu1: cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x001>;
+ };
+
+ cpu2: cpu@2 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x002>;
+ };
+
+ cpu3: cpu@3 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x003>;
+ };
+
+ cpu4: cpu@100 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x100>;
+ };
+
+ cpu5: cpu@101 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x101>;
+ };
+
+ cpu6: cpu@102 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x102>;
+ };
+
+ cpu7: cpu@103 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x103>;
+ };
+ };
+
+ system_clk: dummy13m {
+ compatible = "fixed-clock";
+ clock-frequency = <13000000>;
+ #clock-cells = <0>;
+ };
+
+ rtc_clk: dummy32k {
+ compatible = "fixed-clock";
+ clock-frequency = <32000>;
+ #clock-cells = <0>;
+ };
+
+ uart_clk: dummy26m {
+ compatible = "fixed-clock";
+ clock-frequency = <26000000>;
+ #clock-cells = <0>;
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_PPI 13
+ (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 14
+ (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 11
+ (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 10
+ (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+ };
+
+ sysirq: intpol-controller@10200620 {
+ compatible = "mediatek,mt6795-sysirq",
+ "mediatek,mt6577-sysirq";
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ interrupt-parent = <&gic>;
+ reg = <0 0x10200620 0 0x20>;
+ };
+
+ gic: interrupt-controller@10221000 {
+ compatible = "arm,gic-400";
+ #interrupt-cells = <3>;
+ interrupt-parent = <&gic>;
+ interrupt-controller;
+ reg = <0 0x10221000 0 0x1000>,
+ <0 0x10222000 0 0x2000>,
+ <0 0x10224000 0 0x2000>,
+ <0 0x10226000 0 0x2000>;
+ };
+
+ uart0: serial@11002000 {
+ compatible = "mediatek,mt6795-uart",
+ "mediatek,mt6577-uart";
+ reg = <0 0x11002000 0 0x400>;
+ interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&uart_clk>;
+ status = "disabled";
+ };
+
+ uart1: serial@11003000 {
+ compatible = "mediatek,mt6795-uart",
+ "mediatek,mt6577-uart";
+ reg = <0 0x11003000 0 0x400>;
+ interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&uart_clk>;
+ status = "disabled";
+ };
+
+ uart2: serial@11004000 {
+ compatible = "mediatek,mt6795-uart",
+ "mediatek,mt6577-uart";
+ reg = <0 0x11004000 0 0x400>;
+ interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&uart_clk>;
+ status = "disabled";
+ };
+
+ uart3: serial@11005000 {
+ compatible = "mediatek,mt6795-uart",
+ "mediatek,mt6577-uart";
+ reg = <0 0x11005000 0 0x400>;
+ interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&uart_clk>;
+ status = "disabled";
+ };
+};
--
1.8.1.1.dirty

2015-07-22 23:44:21

by Mars Cheng

[permalink] [raw]
Subject: Re: [PATCH v2 0/2] Add mt6795 basic chip support

On Tue, 2015-07-14 at 14:58 +0800, Mars Cheng wrote:
> This patch adds basic chip support for Mediatek 8-core chip, mt6795.
> It is also named as Helio X10. It is based on:
> 1. 4.2-rc1
> 2. [PATCH v4 0/2] Add mt6580 basic chip support
>
Hi all

Need anything to get this patch reviewed?
If there is anything to do, I will do my best to finish it.

Thanks a lot.
> The second one has added some device tree binding documentation for
> mt6580. mt6795 has some device tree binding modifications too.
> To cleanly apply this patch, please apply mt6580 patch set first.
>
> Changes in v2
> 1. Remove clocks node & bootargs
> 2. Refine stdout-path setting
> 3. Use correct mask value in device tree for arm local timer
>
> Mars Cheng (2):
> Document: DT: Add bindings for mediatek MT6795 SoC Platform
> arm64: dts: mediatek: add mt6795 support
>
> Documentation/devicetree/bindings/arm/mediatek.txt | 9 +-
> .../bindings/arm/mediatek/mediatek,sysirq.txt | 3 +-
> .../devicetree/bindings/serial/mtk-uart.txt | 5 +-
> arch/arm64/boot/dts/mediatek/Makefile | 1 +
> arch/arm64/boot/dts/mediatek/mt6795-evb.dts | 37 +++++
> arch/arm64/boot/dts/mediatek/mt6795.dtsi | 162 +++++++++++++++++++++
> 6 files changed, 212 insertions(+), 5 deletions(-)
> create mode 100644 arch/arm64/boot/dts/mediatek/mt6795-evb.dts
> create mode 100644 arch/arm64/boot/dts/mediatek/mt6795.dtsi
>
> --
> 1.8.1.1.dirty
>
> _______________________________________________
> Linux-mediatek mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-mediatek

2015-07-23 18:00:58

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH v2 0/2] Add mt6795 basic chip support

On Tuesday, July 14, 2015 02:58:11 PM Mars Cheng wrote:
> This patch adds basic chip support for Mediatek 8-core chip, mt6795.
> It is also named as Helio X10. It is based on:
> 1. 4.2-rc1
> 2. [PATCH v4 0/2] Add mt6580 basic chip support
>
> The second one has added some device tree binding documentation for
> mt6580. mt6795 has some device tree binding modifications too.
> To cleanly apply this patch, please apply mt6580 patch set first.
>
> Changes in v2
> 1. Remove clocks node & bootargs
> 2. Refine stdout-path setting
> 3. Use correct mask value in device tree for arm local timer
>
> Mars Cheng (2):
> Document: DT: Add bindings for mediatek MT6795 SoC Platform
> arm64: dts: mediatek: add mt6795 support
>
> Documentation/devicetree/bindings/arm/mediatek.txt | 9 +-
> .../bindings/arm/mediatek/mediatek,sysirq.txt | 3 +-
> .../devicetree/bindings/serial/mtk-uart.txt | 5 +-
> arch/arm64/boot/dts/mediatek/Makefile | 1 +
> arch/arm64/boot/dts/mediatek/mt6795-evb.dts | 37 +++++
> arch/arm64/boot/dts/mediatek/mt6795.dtsi | 162
> +++++++++++++++++++++ 6 files changed, 212 insertions(+), 5 deletions(-)
> create mode 100644 arch/arm64/boot/dts/mediatek/mt6795-evb.dts
> create mode 100644 arch/arm64/boot/dts/mediatek/mt6795.dtsi

Your series is not based on v4.2-rc1, anyway I fixed it and applied to v4.2-
next/arm64

Thanks.