Skip to content

Commit a694292

Browse files
committed
Merge tag 'mtk-dts32-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
MediaTek mach ARM32 updates This adds support for the MediaTek MT6572 SoC, found in various old smartphones and tablets from various manufacturers. In particular, this adds a board_dt_compat entry for this SoC and its SMP bring up sequence to enable secondary cores. * tag 'mtk-dts32-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux: ARM: dts: mediatek: add basic support for Lenovo A369i board ARM: dts: mediatek: add basic support for JTY D101 board ARM: dts: mediatek: add basic support for MT6572 SoC dt-bindings: arm: mediatek: add boards based on the MT6572 SoC dt-bindings: vendor-prefixes: add JTY dt-bindings: watchdog: mediatek,mtk-wdt: add MT6572 dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: add MT6572 Link: https://lore.kernel.org/r/20250711083656.33538-2-angelogioacchino.delregno@collabora.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents 5a793f8 + 5a8e7b4 commit a694292

8 files changed

Lines changed: 236 additions & 0 deletions

File tree

Documentation/devicetree/bindings/arm/mediatek.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ properties:
2727
- enum:
2828
- mediatek,mt2712-evb
2929
- const: mediatek,mt2712
30+
- items:
31+
- enum:
32+
- jty,d101
33+
- lenovo,a369i
34+
- const: mediatek,mt6572
3035
- items:
3136
- enum:
3237
- mediatek,mt6580-evbp1

Documentation/devicetree/bindings/interrupt-controller/mediatek,mt6577-sysirq.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ properties:
2121
- enum:
2222
- mediatek,mt2701-sysirq
2323
- mediatek,mt2712-sysirq
24+
- mediatek,mt6572-sysirq
2425
- mediatek,mt6580-sysirq
2526
- mediatek,mt6582-sysirq
2627
- mediatek,mt6589-sysirq

Documentation/devicetree/bindings/vendor-prefixes.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,8 @@ patternProperties:
786786
description: Jide Tech
787787
"^joz,.*":
788788
description: JOZ BV
789+
"^jty,.*":
790+
description: JTY
789791
"^kam,.*":
790792
description: Kamstrup A/S
791793
"^karo,.*":

Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ properties:
3434
- items:
3535
- enum:
3636
- mediatek,mt2701-wdt
37+
- mediatek,mt6572-wdt
3738
- mediatek,mt6582-wdt
3839
- mediatek,mt6797-wdt
3940
- mediatek,mt7622-wdt

arch/arm/boot/dts/mediatek/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# SPDX-License-Identifier: GPL-2.0
22
dtb-$(CONFIG_ARCH_MEDIATEK) += \
33
mt2701-evb.dtb \
4+
mt6572-jty-d101.dtb \
5+
mt6572-lenovo-a369i.dtb \
46
mt6580-evbp1.dtb \
57
mt6582-prestigio-pmt5008-3g.dtb \
68
mt6589-aquaris5.dtb \
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Copyright (c) 2025 Max Shevchenko <wctrl@proton.me>
4+
*/
5+
6+
/dts-v1/;
7+
#include "mt6572.dtsi"
8+
9+
/ {
10+
model = "JTY D101";
11+
compatible = "jty,d101", "mediatek,mt6572";
12+
13+
aliases {
14+
serial0 = &uart0;
15+
};
16+
17+
chosen {
18+
#address-cells = <1>;
19+
#size-cells = <1>;
20+
stdout-path = "serial0:921600n8";
21+
22+
framebuffer: framebuffer@bf400000 {
23+
compatible = "simple-framebuffer";
24+
memory-region = <&framebuffer_reserved>;
25+
width = <1024>;
26+
height = <600>;
27+
stride = <(1024 * 2)>;
28+
format = "r5g6b5";
29+
};
30+
};
31+
32+
memory@80000000 {
33+
device_type = "memory";
34+
reg = <0x80000000 0x40000000>;
35+
};
36+
37+
reserved-memory {
38+
#address-cells = <1>;
39+
#size-cells = <1>;
40+
ranges;
41+
42+
connsys@80000000 {
43+
reg = <0x80000000 0x100000>;
44+
no-map;
45+
};
46+
47+
modem@be000000 {
48+
reg = <0xbe000000 0x1400000>;
49+
no-map;
50+
};
51+
52+
framebuffer_reserved: framebuffer@bf400000 {
53+
reg = <0xbf400000 0xc00000>;
54+
no-map;
55+
};
56+
};
57+
};
58+
59+
&uart0 {
60+
status = "okay";
61+
};
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Copyright (c) 2025 Max Shevchenko <wctrl@proton.me>
4+
*/
5+
6+
/dts-v1/;
7+
#include "mt6572.dtsi"
8+
9+
/ {
10+
model = "Lenovo A369i";
11+
compatible = "lenovo,a369i", "mediatek,mt6572";
12+
13+
aliases {
14+
serial0 = &uart0;
15+
};
16+
17+
chosen {
18+
#address-cells = <1>;
19+
#size-cells = <1>;
20+
stdout-path = "serial0:921600n8";
21+
22+
framebuffer: framebuffer@9fa00000 {
23+
compatible = "simple-framebuffer";
24+
memory-region = <&framebuffer_reserved>;
25+
width = <480>;
26+
height = <800>;
27+
stride = <(480 * 2)>;
28+
format = "r5g6b5";
29+
};
30+
};
31+
32+
memory@80000000 {
33+
device_type = "memory";
34+
reg = <0x80000000 0x20000000>;
35+
};
36+
37+
reserved-memory {
38+
#address-cells = <1>;
39+
#size-cells = <1>;
40+
ranges;
41+
42+
connsys@80000000 {
43+
reg = <0x80000000 0x100000>;
44+
no-map;
45+
};
46+
47+
framebuffer_reserved: framebuffer@9fa00000 {
48+
reg = <0x9fa00000 0x600000>;
49+
no-map;
50+
};
51+
};
52+
};
53+
54+
&uart0 {
55+
status = "okay";
56+
};
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Copyright (c) 2025 Max Shevchenko <wctrl@proton.me>
4+
*/
5+
6+
#include <dt-bindings/interrupt-controller/irq.h>
7+
#include <dt-bindings/interrupt-controller/arm-gic.h>
8+
9+
/ {
10+
#address-cells = <1>;
11+
#size-cells = <1>;
12+
interrupt-parent = <&sysirq>;
13+
14+
cpus {
15+
#address-cells = <1>;
16+
#size-cells = <0>;
17+
enable-method = "mediatek,mt6589-smp";
18+
19+
cpu@0 {
20+
device_type = "cpu";
21+
compatible = "arm,cortex-a7";
22+
reg = <0x0>;
23+
};
24+
cpu@1 {
25+
device_type = "cpu";
26+
compatible = "arm,cortex-a7";
27+
reg = <0x1>;
28+
};
29+
};
30+
31+
uart_clk: dummy26m {
32+
compatible = "fixed-clock";
33+
clock-frequency = <26000000>;
34+
#clock-cells = <0>;
35+
};
36+
37+
system_clk: dummy13m {
38+
compatible = "fixed-clock";
39+
clock-frequency = <13000000>;
40+
#clock-cells = <0>;
41+
};
42+
43+
rtc_clk: dummy32k {
44+
compatible = "fixed-clock";
45+
clock-frequency = <32000>;
46+
#clock-cells = <0>;
47+
};
48+
49+
soc {
50+
#address-cells = <1>;
51+
#size-cells = <1>;
52+
compatible = "simple-bus";
53+
ranges;
54+
55+
watchdog: watchdog@10007000 {
56+
compatible = "mediatek,mt6572-wdt", "mediatek,mt6589-wdt";
57+
reg = <0x10007000 0x100>;
58+
interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_LOW>;
59+
timeout-sec = <15>;
60+
#reset-cells = <1>;
61+
};
62+
63+
timer: timer@10008000 {
64+
compatible = "mediatek,mt6572-timer", "mediatek,mt6577-timer";
65+
reg = <0x10008000 0x80>;
66+
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_LOW>;
67+
clocks = <&system_clk>, <&rtc_clk>;
68+
clock-names = "system-clk", "rtc-clk";
69+
};
70+
71+
sysirq: interrupt-controller@10200100 {
72+
compatible = "mediatek,mt6572-sysirq", "mediatek,mt6577-sysirq";
73+
reg = <0x10200100 0x1c>;
74+
interrupt-controller;
75+
#interrupt-cells = <3>;
76+
interrupt-parent = <&gic>;
77+
};
78+
79+
gic: interrupt-controller@10211000 {
80+
compatible = "arm,cortex-a7-gic";
81+
reg = <0x10211000 0x1000>,
82+
<0x10212000 0x2000>,
83+
<0x10214000 0x2000>,
84+
<0x10216000 0x2000>;
85+
interrupt-controller;
86+
#interrupt-cells = <3>;
87+
interrupt-parent = <&gic>;
88+
};
89+
90+
uart0: serial@11005000 {
91+
compatible = "mediatek,mt6572-uart", "mediatek,mt6577-uart";
92+
reg = <0x11005000 0x400>;
93+
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>;
94+
clocks = <&uart_clk>;
95+
clock-names = "baud";
96+
status = "disabled";
97+
};
98+
99+
uart1: serial@11006000 {
100+
compatible = "mediatek,mt6572-uart", "mediatek,mt6577-uart";
101+
reg = <0x11006000 0x400>;
102+
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
103+
clocks = <&uart_clk>;
104+
clock-names = "baud";
105+
status = "disabled";
106+
};
107+
};
108+
};

0 commit comments

Comments
 (0)