Skip to contentSkip to conversation

ARM: mediatek: Add basic support for mt6592

PATCH Superseded Howard Chen 3 participants 8 messages Oct 8, 2014 – Oct 9, 2014

Subsystems (5)

v1 of 7 Superseded Latest is v7 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/3 ARM: mediatek: Add basic support for mt6592

* A dtsi for boards based on Mediatek MT6592 SoCs
* Compatible string in arch/arm/mach-mediatek/mediatek.c

---
 arch/arm/boot/dts/mt6592.dtsi     | 136 ++++++++++++++++++++++++++++++++++++++
 arch/arm/mach-mediatek/mediatek.c |   1 +
 2 files changed, 137 insertions(+)
 create mode 100644 arch/arm/boot/dts/mt6592.dtsi
arch/arm/boot/dts/mt6592.dtsi new file +136 -0
new file mode 100644
index 0000000..3cf9072
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2014 Mediatek
+ * Author: Howard Chen <[email protected]>
+ *
+ * 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,mt6592";
+	interrupt-parent = <&gic>;
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu at 0 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a7";
+			reg = <0x0>;
+		};
+		cpu at 1 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a7";
+			reg = <0x1>;
+		};
+		cpu at 2 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a7";
+			reg = <0x2>;
+		};
+		cpu at 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>;
+		};
+
+		uart_clk: uart_clk {
+			compatible = "fixed-clock";
+			clock-frequency = <26000000>;
+			#clock-cells = <0>;
+		};
+	};
+
+	soc {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		ranges;
+
+		timer: timer at 10008000 {
+			compatible = "mediatek,mt6577-timer";
+			reg = <0x10008000 0x80>;
+			interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&system_clk>, <&rtc_clk>;
+			clock-names = "system-clk", "rtc-clk";
+		};
+
+		gic: interrupt-controller at 10211000 {
+			compatible = "arm,cortex-a7-gic";
+			interrupt-controller;
+			#interrupt-cells = <3>;
+			reg = <0x10211000 0x1000>,
+			      <0x10212000 0x1000>,
+			      <0x10214000 0x2000>,
+			      <0x10216000 0x2000>;
+		};
+
+		uart0: serial at 11002000 {
+			compatible = "mediatek,mt6592-uart", "mediatek,mt6577-uart";
+			reg = <0x11002000 0x400>;
+			reg-shift = <2>;
+			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&uart_clk>;
+			status = "disabled";
+		};
+
+		uart1: serial at 11003000 {
+			compatible = "mediatek,mt6592-uart", "mediatek,mt6577-uart";
+			reg = <0x11003000 0x400>;
+			reg-shift = <2>;
+			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&uart_clk>;
+			status = "disabled";
+		};
+
+		uart2: serial at 11004000 {
+			compatible = "mediatek,mt6592-uart", "mediatek,mt6577-uart";
+			reg = <0x11004000 0x400>;
+			reg-shift = <2>;
+			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&uart_clk>;
+			status = "disabled";
+		};
+
+		uart3: serial at 11005000 {
+			compatible = "mediatek,mt6592-uart", "mediatek,mt6577-uart";
+			reg = <0x11005000 0x400>;
+			reg-shift = <2>;
+			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&uart_clk>;
+			status = "disabled";
+		};
+	};
+};
arch/arm/mach-mediatek/mediatek.c +1 -0
index f2acf07..88e4626 100644
@@ -19,6 +19,7 @@
 
 static const char * const mediatek_board_dt_compat[] = {
 	"mediatek,mt6589",
+	"mediatek,mt6592",
 	NULL,
 };
 
Signature · 1 line
1.9.1
#1 lore raw

PATCH 2/3 ARM: mediatek: add dts for mt6592-evb

The mt6592-evb is an evaluation board based on the MT6592 SoC.

---
 arch/arm/boot/dts/mt6592-evb.dts | 46 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 arch/arm/boot/dts/mt6592-evb.dts
arch/arm/boot/dts/mt6592-evb.dts new file +46 -0
new file mode 100644
index 0000000..38f2560
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2014 Mediatek
+ * Author: Howard Chen <[email protected]>
+ *
+ * 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 "mt6592.dtsi"
+
+/ {
+	model = "mt6592 evb";
+	compatible = "mediatek,mt6592-evb", "mediatek,mt6592";
+
+	chosen {
+		bootargs = "earlyprintk console=ttyS0,921600n8";
+	};
+
+	memory {
+		reg = <0x80000000 0x08000000>;
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&uart1 {
+	status = "okay";
+};
+
+&uart2 {
+	status = "okay";
+};
+
+&uart3 {
+	status = "okay";
+};
Signature · 1 line
1.9.1
#2 lore raw

PATCH 2/3 ARM: mediatek: add dts for mt6592-evb

arch/arm/boot/dts/mt6592-evb.dts line 26

Quoted 8 lines · On Wednesday 08 October 2014 17:36:26 Howard Chen wrote:
arch/arm/boot/dts/mt6592-evb.dts new file +8 -0
+/ {
+       model = "mt6592 evb";
+       compatible = "mediatek,mt6592-evb", "mediatek,mt6592";
+
+       chosen {
+               bootargs = "earlyprintk console=ttyS0,921600n8";
+       };
+

We're trying to get more people to use the DT earlyprintk method. Can you move this into a stdout-path property instead of the bootargs and make sure the driver supports it?

Arnd

#3 lore raw

PATCH 2/3 ARM: mediatek: add dts for mt6592-evb

Quoted 13 lines · Arnd Bergmann

arch/arm/boot/dts/mt6592-evb.dts line 26

Quoted 8 lines · On Wednesday 08 October 2014 17:36:26 Howard Chen wrote:
arch/arm/boot/dts/mt6592-evb.dts new file +8 -0
+/ {
+       model = "mt6592 evb";
+       compatible = "mediatek,mt6592-evb", "mediatek,mt6592";
+
+       chosen {
+               bootargs = "earlyprintk console=ttyS0,921600n8";
+       };
+

We're trying to get more people to use the DT earlyprintk method. Can you move this into a stdout-path property instead of the bootargs and make sure the driver supports it?

OK, It requires another patch on drivers/tty/serial/8250/8250_mtk.c. I will discuss with Mathias, the author, about this new feature.

Thanks,
Howard

#4 lore raw

PATCH 3/3 dt-bindings: add documentation for Mediatek SoC

In reply to Howard Chen

This adds a DT binding documentation for the MT6592 SoC from Mediatek.

---
 Documentation/devicetree/bindings/arm/mediatek.txt    | 7 +++++--
 Documentation/devicetree/bindings/serial/mtk-uart.txt | 3 ++-
 2 files changed, 7 insertions(+), 3 deletions(-)
Documentation/devicetree/bindings/arm/mediatek.txt +5 -2
index fa25226..1d2d151 100644
@@ -1,10 +1,10 @@
 Mediatek MT6589 Platforms Device Tree Bindings
 
-Boards with a SoC of the Mediatek MT6589 shall have the following property:
+Boards with a SoC from Mediatek shall have the following property:
 
 Required root node property:
 
-compatible: must contain "mediatek,mt6589"
+compatible: must contain one of "mediatek,mt6589", "mediatek,mt6592"
 
 
 Supported boards:
@@ -12,3 +12,6 @@ Supported boards:
 - bq Aquaris5 smart phone:
     Required root node properties:
       - compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589";
+
+- Evaluation board for MT6592:
+      - compatible = "mediatek,mt6592-evb", "mediatek,mt6592";
Documentation/devicetree/bindings/serial/mtk-uart.txt +2 -1
index 48358a3..e2864b7 100644
@@ -2,9 +2,10 @@
 
 Required properties:
 - compatible should contain:
+  * "mediatek,mt6592-uart" for MT6592 compatible UARTS
   * "mediatek,mt6589-uart" for MT6589 compatible UARTS
   * "mediatek,mt6582-uart" for MT6582 compatible UARTS
-  * "mediatek,mt6577-uart" for all compatible UARTS (MT6589, MT6582, MT6577)
+  * "mediatek,mt6577-uart" for all compatible UARTS on MT65xx
 
 - reg: The base address of the UART register bank.
 
Signature · 1 line
1.9.1
#5 lore raw

PATCH 3/3 dt-bindings: add documentation for Mediatek SoC

Quoted 4 lines · On Wednesday 08 October 2014 17:36:27 Howard Chen wrote:

This adds a DT binding documentation for the MT6592 SoC from Mediatek.

mt6592 is closely related to mt6572 and mt6582, right?

Maybe you can add all three here, at least to the documentation? I don't know how significant the differences really are, but you could also have an mt65x2.dtsi file that contains the common parts and that gets included by these three, or any other variants such as mt6582m.

Arnd

#6 lore raw

PATCH 1/3 ARM: mediatek: Add basic support for mt6592

In reply to Howard Chen
Quoted 18 lines · On Wednesday 08 October 2014 17:36:25 Howard Chen wrote:
arch/arm/boot/dts/mt6592.dtsi new file +17 -0
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu at 0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x0>;
+               };
+               cpu at 1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x1>;
+               };
+               cpu at 2 {
+                       device_type = "cpu";

arch/arm/boot/dts/mt6592.dtsi line 49

Quoted 10 lines
arch/arm/boot/dts/mt6592.dtsi new file +10 -0
+                       compatible = "arm,cortex-a7";
+                       reg = <0x2>;
+               };
+               cpu at 3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x3>;
+               };
+
+       };

Shouldn't there be eight cpu nodes for mt6592?

Arnd

#7 lore raw

PATCH 1/3 ARM: mediatek: Add basic support for mt6592

In reply to Howard Chen

[...]

Quoted 14 lines
arch/arm/boot/dts/mt6592.dtsi new file +14 -0
+	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";

arch/arm/boot/dts/mt6592.dtsi line 74

Quoted 10 lines
arch/arm/boot/dts/mt6592.dtsi new file +10 -0
+			clock-frequency = <32000>;
+			#clock-cells = <0>;
+		};
+
+		uart_clk: uart_clk {
+			compatible = "fixed-clock";
+			clock-frequency = <26000000>;
+			#clock-cells = <0>;
+		};
+	};

There is no need for a clocks node. Please just put these directly under the root node.

Mark.