ARM: mediatek: Add basic support for mt6592
Subsystems (5)
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
@@ -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
@@ -19,6 +19,7 @@static const char *const mediatek_board_dt_compat[] = {"mediatek,mt6589" , +"mediatek,mt6592" ,NULL , };
Signature · 1 line
1.9.1
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
@@ -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
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
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
PATCH 3/3 dt-bindings: add documentation for Mediatek SoC
In reply to Howard ChenThis 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
@@ -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
@@ -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
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.
Signed-off-by Howard Chen <[email protected]>
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
PATCH 1/3 ARM: mediatek: Add basic support for mt6592
In reply to Howard ChenQuoted 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
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.