* [PATCH v2 0/6] arm64: Initial support for MediaTek MT8163 SoC
@ 2026-11-05 14:28 Ben Grisdale via B4 Relay
2026-11-05 14:28 ` [PATCH v2 1/6] dt-bindings: arm: mediatek: Add MT8163 Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Ben Grisdale via B4 Relay @ 2026-11-05 14:28 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Sean Wang, Thomas Gleixner,
Radu Rendec, Daniel Lezcano, Greg Kroah-Hartman, Jiri Slaby
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-serial, Ben Grisdale, Krzysztof Kozlowski
This series adds basic support for the MediaTek MT8163 SoC.
The MT8163 is a 64-bit SoC featuring four ARM Cortex-A53 cores,
typically found in entry-level tablets and smart displays, such as
the Amazon Echo and Fire HD devices.
The bindings and SoC dtsi added here, together with the already applied
watchdog support, are enough to boot the 2016 Amazon Echo Dot (biscuit)
to a shell over UART0.
This series requires custom TF-A, U-Boot and OP-TEE ports for MT8163.
The stock vendor firmware does not provide a usable PSCI implementation
(the vendor kernel brings up secondary CPUs with a custom "mt-boot"
enable-method instead), and these ports also define the reserved memory
layout used by the board dts:
- TF-A: https://github.com/iara-linux/arm-trusted-firmware
- U-Boot: https://github.com/iara-linux/u-boot
- OP-TEE: https://github.com/iara-linux/optee_os
This is the first of several series. Support for the remaining
peripherals will follow, starting with the clock controllers, pinctrl
and power domains.
Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
---
Changes in v2:
- Dropped WDT patches as they have been applied [1].
- Picked up latest tags from v1.
- Link to v1: https://patch.msgid.link/20261019-arm64-initial-support-for-mediatek-mt8163-soc-v1-0-f2462b2d2437@protonmail.ch
[1] https://lore.kernel.org/all/589d0ab4-46cf-4b8d-b4b3-5519dbf030ea@roeck-us.net/
---
Ben Grisdale (6):
dt-bindings: arm: mediatek: Add MT8163 Amazon Echo Dot (2016)
dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Add MT8163
dt-bindings: timer: mediatek,timer: Add MT8163
dt-bindings: serial: mediatek,uart: Add MT8163
arm64: dts: mediatek: Add basic support for MT8163 SoC
arm64: dts: mediatek: Add Amazon Echo Dot (2016)
.../devicetree/bindings/arm/mediatek.yaml | 4 +
.../mediatek,mt6577-sysirq.yaml | 1 +
.../devicetree/bindings/serial/mediatek,uart.yaml | 1 +
.../devicetree/bindings/timer/mediatek,timer.yaml | 1 +
arch/arm64/boot/dts/mediatek/Makefile | 1 +
.../boot/dts/mediatek/mt8163-amazon-biscuit.dts | 68 ++++++
arch/arm64/boot/dts/mediatek/mt8163.dtsi | 243 +++++++++++++++++++++
7 files changed, 319 insertions(+)
---
base-commit: 8b7179210b22f8e48a82c5ceacb9d56a9c4cfec4
change-id: 20261018-arm64-initial-support-for-mediatek-mt8163-soc-ea58d47cb7aa
Best regards,
--
Ben Grisdale <bengris32@protonmail.ch>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 1/6] dt-bindings: arm: mediatek: Add MT8163 Amazon Echo Dot (2016)
2026-11-05 14:28 [PATCH v2 0/6] arm64: Initial support for MediaTek MT8163 SoC Ben Grisdale via B4 Relay
@ 2026-11-05 14:28 ` Ben Grisdale via B4 Relay
2026-11-05 14:31 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 2/6] dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Add MT8163 Ben Grisdale via B4 Relay
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Ben Grisdale via B4 Relay @ 2026-11-05 14:28 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Sean Wang, Thomas Gleixner,
Radu Rendec, Daniel Lezcano, Greg Kroah-Hartman, Jiri Slaby
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-serial, Ben Grisdale, Krzysztof Kozlowski
From: Ben Grisdale <bengris32@protonmail.ch>
Add compatible strings for the MediaTek MT8163 SoC and the Amazon Echo
Dot (2nd generation, 2016), codenamed "biscuit".
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
---
Documentation/devicetree/bindings/arm/mediatek.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/mediatek.yaml b/Documentation/devicetree/bindings/arm/mediatek.yaml
index 180e6e4948e7..15db402552c1 100644
--- a/Documentation/devicetree/bindings/arm/mediatek.yaml
+++ b/Documentation/devicetree/bindings/arm/mediatek.yaml
@@ -129,6 +129,10 @@ properties:
- enum:
- mediatek,mt8135-evbp1
- const: mediatek,mt8135
+ - items:
+ - enum:
+ - amazon,biscuit
+ - const: mediatek,mt8163
- items:
- enum:
- mediatek,mt8167-pumpkin
--
2.56.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 2/6] dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Add MT8163
2026-11-05 14:28 [PATCH v2 0/6] arm64: Initial support for MediaTek MT8163 SoC Ben Grisdale via B4 Relay
2026-11-05 14:28 ` [PATCH v2 1/6] dt-bindings: arm: mediatek: Add MT8163 Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
@ 2026-11-05 14:28 ` Ben Grisdale via B4 Relay
2026-11-05 14:30 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 3/6] dt-bindings: timer: mediatek,timer: " Ben Grisdale via B4 Relay
` (3 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Ben Grisdale via B4 Relay @ 2026-11-05 14:28 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Sean Wang, Thomas Gleixner,
Radu Rendec, Daniel Lezcano, Greg Kroah-Hartman, Jiri Slaby
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-serial, Ben Grisdale, Krzysztof Kozlowski
From: Ben Grisdale <bengris32@protonmail.ch>
Add a compatible string for the SYSIRQ interrupt polarity controller on
the MediaTek MT8163 SoC, which is compatible with the MT6577 SYSIRQ.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
---
.../devicetree/bindings/interrupt-controller/mediatek,mt6577-sysirq.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/interrupt-controller/mediatek,mt6577-sysirq.yaml b/Documentation/devicetree/bindings/interrupt-controller/mediatek,mt6577-sysirq.yaml
index b94fc3cec175..9d2fc15fc81d 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/mediatek,mt6577-sysirq.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/mediatek,mt6577-sysirq.yaml
@@ -36,6 +36,7 @@ properties:
- mediatek,mt7629-sysirq
- mediatek,mt8127-sysirq
- mediatek,mt8135-sysirq
+ - mediatek,mt8163-sysirq
- mediatek,mt8173-sysirq
- mediatek,mt8183-sysirq
- mediatek,mt8365-sysirq
--
2.56.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 3/6] dt-bindings: timer: mediatek,timer: Add MT8163
2026-11-05 14:28 [PATCH v2 0/6] arm64: Initial support for MediaTek MT8163 SoC Ben Grisdale via B4 Relay
2026-11-05 14:28 ` [PATCH v2 1/6] dt-bindings: arm: mediatek: Add MT8163 Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
2026-11-05 14:28 ` [PATCH v2 2/6] dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Add MT8163 Ben Grisdale via B4 Relay
@ 2026-11-05 14:28 ` Ben Grisdale via B4 Relay
2026-11-05 14:31 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 4/6] dt-bindings: serial: mediatek,uart: " Ben Grisdale via B4 Relay
` (2 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Ben Grisdale via B4 Relay @ 2026-11-05 14:28 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Sean Wang, Thomas Gleixner,
Radu Rendec, Daniel Lezcano, Greg Kroah-Hartman, Jiri Slaby
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-serial, Ben Grisdale, Krzysztof Kozlowski
From: Ben Grisdale <bengris32@protonmail.ch>
Add a compatible string for the general purpose timer (GPT) on the
MediaTek MT8163 SoC, which is compatible with the MT6577 timer.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
---
Documentation/devicetree/bindings/timer/mediatek,timer.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/timer/mediatek,timer.yaml b/Documentation/devicetree/bindings/timer/mediatek,timer.yaml
index 337580dc77d8..fcf4303e1426 100644
--- a/Documentation/devicetree/bindings/timer/mediatek,timer.yaml
+++ b/Documentation/devicetree/bindings/timer/mediatek,timer.yaml
@@ -34,6 +34,7 @@ properties:
- mediatek,mt7623-timer
- mediatek,mt8127-timer
- mediatek,mt8135-timer
+ - mediatek,mt8163-timer
- mediatek,mt8173-timer
- mediatek,mt8516-timer
- const: mediatek,mt6577-timer
--
2.56.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 4/6] dt-bindings: serial: mediatek,uart: Add MT8163
2026-11-05 14:28 [PATCH v2 0/6] arm64: Initial support for MediaTek MT8163 SoC Ben Grisdale via B4 Relay
` (2 preceding siblings ...)
2026-11-05 14:28 ` [PATCH v2 3/6] dt-bindings: timer: mediatek,timer: " Ben Grisdale via B4 Relay
@ 2026-11-05 14:28 ` Ben Grisdale via B4 Relay
2026-11-05 14:31 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 5/6] arm64: dts: mediatek: Add basic support for MT8163 SoC Ben Grisdale via B4 Relay
2026-11-05 14:28 ` [PATCH v2 6/6] arm64: dts: mediatek: Add Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
5 siblings, 1 reply; 13+ messages in thread
From: Ben Grisdale via B4 Relay @ 2026-11-05 14:28 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Sean Wang, Thomas Gleixner,
Radu Rendec, Daniel Lezcano, Greg Kroah-Hartman, Jiri Slaby
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-serial, Ben Grisdale, Krzysztof Kozlowski
From: Ben Grisdale <bengris32@protonmail.ch>
Add a compatible string for the UART controllers on the MediaTek MT8163
SoC, which are compatible with the MT6577 UART.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
---
Documentation/devicetree/bindings/serial/mediatek,uart.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/serial/mediatek,uart.yaml b/Documentation/devicetree/bindings/serial/mediatek,uart.yaml
index 5bd8a8853ae0..11801b58f637 100644
--- a/Documentation/devicetree/bindings/serial/mediatek,uart.yaml
+++ b/Documentation/devicetree/bindings/serial/mediatek,uart.yaml
@@ -43,6 +43,7 @@ properties:
- mediatek,mt7988-uart
- mediatek,mt8127-uart
- mediatek,mt8135-uart
+ - mediatek,mt8163-uart
- mediatek,mt8173-uart
- mediatek,mt8183-uart
- mediatek,mt8186-uart
--
2.56.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 5/6] arm64: dts: mediatek: Add basic support for MT8163 SoC
2026-11-05 14:28 [PATCH v2 0/6] arm64: Initial support for MediaTek MT8163 SoC Ben Grisdale via B4 Relay
` (3 preceding siblings ...)
2026-11-05 14:28 ` [PATCH v2 4/6] dt-bindings: serial: mediatek,uart: " Ben Grisdale via B4 Relay
@ 2026-11-05 14:28 ` Ben Grisdale via B4 Relay
2026-11-05 14:43 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 6/6] arm64: dts: mediatek: Add Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
5 siblings, 1 reply; 13+ messages in thread
From: Ben Grisdale via B4 Relay @ 2026-11-05 14:28 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Sean Wang, Thomas Gleixner,
Radu Rendec, Daniel Lezcano, Greg Kroah-Hartman, Jiri Slaby
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-serial, Ben Grisdale
From: Ben Grisdale <bengris32@protonmail.ch>
Add a basic dtsi for the MediaTek MT8163 SoC, describing the CPUs and
caches, PSCI, interrupt controllers, timers, PMU, watchdog and UARTs.
Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
---
arch/arm64/boot/dts/mediatek/mt8163.dtsi | 243 +++++++++++++++++++++++++++++++
1 file changed, 243 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8163.dtsi b/arch/arm64/boot/dts/mediatek/mt8163.dtsi
new file mode 100644
index 000000000000..645f4e15587b
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt8163.dtsi
@@ -0,0 +1,243 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (c) 2026 Ben Grisdale <bengris32@protonmail.ch>
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+ compatible = "mediatek,mt8163";
+ interrupt-parent = <&sysirq>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ clk32k: clock-32768 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <32768>;
+ clock-output-names = "clk32k";
+ };
+
+ clk13m: clock-13000000 {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&clk26m>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ clock-output-names = "clk13m";
+ };
+
+ clk26m: clock-26000000 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <26000000>;
+ clock-output-names = "clk26m";
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu0: cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x0>;
+ enable-method = "psci";
+ i-cache-size = <32768>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <32768>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <128>;
+ next-level-cache = <&l2>;
+ };
+
+ cpu1: cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x1>;
+ enable-method = "psci";
+ i-cache-size = <32768>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <32768>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <128>;
+ next-level-cache = <&l2>;
+ };
+
+ cpu2: cpu@2 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x2>;
+ enable-method = "psci";
+ i-cache-size = <32768>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <32768>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <128>;
+ next-level-cache = <&l2>;
+ };
+
+ cpu3: cpu@3 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a53";
+ reg = <0x3>;
+ enable-method = "psci";
+ i-cache-size = <32768>;
+ i-cache-line-size = <64>;
+ i-cache-sets = <256>;
+ d-cache-size = <32768>;
+ d-cache-line-size = <64>;
+ d-cache-sets = <128>;
+ next-level-cache = <&l2>;
+ };
+
+ cpu-map {
+ cluster0 {
+ core0 {
+ cpu = <&cpu0>;
+ };
+
+ core1 {
+ cpu = <&cpu1>;
+ };
+
+ core2 {
+ cpu = <&cpu2>;
+ };
+
+ core3 {
+ cpu = <&cpu3>;
+ };
+ };
+ };
+
+ l2: l2-cache {
+ compatible = "cache";
+ cache-level = <2>;
+ cache-size = <524288>;
+ cache-line-size = <64>;
+ cache-sets = <512>;
+ cache-unified;
+ };
+ };
+
+ pmu {
+ compatible = "arm,cortex-a53-pmu";
+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_LOW>,
+ <GIC_SPI 9 IRQ_TYPE_LEVEL_LOW>,
+ <GIC_SPI 10 IRQ_TYPE_LEVEL_LOW>,
+ <GIC_SPI 11 IRQ_TYPE_LEVEL_LOW>;
+ interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+ };
+
+ psci {
+ compatible = "arm,psci-1.0";
+ method = "smc";
+ };
+
+ soc {
+ compatible = "simple-bus";
+ ranges;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ watchdog: watchdog@10007000 {
+ compatible = "mediatek,mt8163-wdt";
+ reg = <0 0x10007000 0 0x1000>;
+ interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_FALLING>;
+ #reset-cells = <1>;
+ };
+
+ timer: timer@10008000 {
+ compatible = "mediatek,mt8163-timer",
+ "mediatek,mt6577-timer";
+ reg = <0 0x10008000 0 0x1000>;
+ interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&clk13m>, <&clk32k>;
+ clock-names = "system-clk", "rtc-clk";
+ };
+
+ sysirq: interrupt-controller@10200620 {
+ compatible = "mediatek,mt8163-sysirq",
+ "mediatek,mt6577-sysirq";
+ reg = <0 0x10200620 0 0x20>;
+ #interrupt-cells = <3>;
+ interrupt-parent = <&gic>;
+ interrupt-controller;
+ };
+
+ gic: interrupt-controller@10221000 {
+ compatible = "arm,gic-400";
+ reg = <0 0x10221000 0 0x1000>,
+ <0 0x10222000 0 0x2000>,
+ <0 0x10224000 0 0x2000>,
+ <0 0x10226000 0 0x2000>;
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
+ IRQ_TYPE_LEVEL_HIGH)>;
+ };
+
+ uart0: serial@11002000 {
+ compatible = "mediatek,mt8163-uart",
+ "mediatek,mt6577-uart";
+ reg = <0 0x11002000 0 0x400>;
+ interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&clk26m>, <&clk26m>;
+ clock-names = "baud", "bus";
+
+ status = "disabled";
+ };
+
+ uart1: serial@11003000 {
+ compatible = "mediatek,mt8163-uart",
+ "mediatek,mt6577-uart";
+ reg = <0 0x11003000 0 0x400>;
+ interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&clk26m>, <&clk26m>;
+ clock-names = "baud", "bus";
+
+ status = "disabled";
+ };
+
+ uart2: serial@11004000 {
+ compatible = "mediatek,mt8163-uart",
+ "mediatek,mt6577-uart";
+ reg = <0 0x11004000 0 0x400>;
+ interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&clk26m>, <&clk26m>;
+ clock-names = "baud", "bus";
+
+ status = "disabled";
+ };
+
+ uart3: serial@11005000 {
+ compatible = "mediatek,mt8163-uart",
+ "mediatek,mt6577-uart";
+ reg = <0 0x11005000 0 0x400>;
+ interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&clk26m>, <&clk26m>;
+ clock-names = "baud", "bus";
+
+ status = "disabled";
+ };
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_PPI 13
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 14
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 11
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 10
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+ arm,no-tick-in-suspend;
+ };
+};
--
2.56.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 6/6] arm64: dts: mediatek: Add Amazon Echo Dot (2016)
2026-11-05 14:28 [PATCH v2 0/6] arm64: Initial support for MediaTek MT8163 SoC Ben Grisdale via B4 Relay
` (4 preceding siblings ...)
2026-11-05 14:28 ` [PATCH v2 5/6] arm64: dts: mediatek: Add basic support for MT8163 SoC Ben Grisdale via B4 Relay
@ 2026-11-05 14:28 ` Ben Grisdale via B4 Relay
2026-11-05 14:38 ` sashiko-bot
5 siblings, 1 reply; 13+ messages in thread
From: Ben Grisdale via B4 Relay @ 2026-11-05 14:28 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Sean Wang, Thomas Gleixner,
Radu Rendec, Daniel Lezcano, Greg Kroah-Hartman, Jiri Slaby
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-mediatek,
linux-serial, Ben Grisdale
From: Ben Grisdale <bengris32@protonmail.ch>
Add a device tree for the Amazon Echo Dot (2nd generation, 2016),
codenamed "biscuit", which is based on the MediaTek MT8163 SoC.
This is enough to boot to a shell over UART0. The UART pins are assumed
to be configured by the bootloader, as there is no pinctrl support yet.
Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
---
arch/arm64/boot/dts/mediatek/Makefile | 1 +
.../boot/dts/mediatek/mt8163-amazon-biscuit.dts | 68 ++++++++++++++++++++++
2 files changed, 69 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
index a86fb313b1a9..adf02b9f234b 100644
--- a/arch/arm64/boot/dts/mediatek/Makefile
+++ b/arch/arm64/boot/dts/mediatek/Makefile
@@ -92,6 +92,7 @@ mt7988a-bananapi-bpi-r4-pro-8x-sd-cn18-dtbs := \
mt7988a-bananapi-bpi-r4-pro-cn13.dtbo \
mt7988a-bananapi-bpi-r4-pro-cn18.dtbo
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-sd-cn18.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8163-amazon-biscuit.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm-hana.dtb
diff --git a/arch/arm64/boot/dts/mediatek/mt8163-amazon-biscuit.dts b/arch/arm64/boot/dts/mediatek/mt8163-amazon-biscuit.dts
new file mode 100644
index 000000000000..5fb5d59e4ed2
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt8163-amazon-biscuit.dts
@@ -0,0 +1,68 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (c) 2026 Ben Grisdale <bengris32@protonmail.ch>
+ */
+
+/dts-v1/;
+#include "mt8163.dtsi"
+
+/ {
+ model = "Amazon Echo Dot (2016)";
+ compatible = "amazon,biscuit", "mediatek,mt8163";
+ chassis-type = "embedded";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:921600n8";
+ };
+
+ firmware {
+ optee {
+ compatible = "linaro,optee-tz";
+ method = "smc";
+ };
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0 0x40000000 0 0x20000000>;
+ };
+
+ reserved-memory {
+ ranges;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
+ secmon@43000000 {
+ reg = <0 0x43000000 0 0x30000>;
+ no-map;
+ };
+
+ /* 16 KiB reserved for SPM firmware */
+ spm-pcm@43030000 {
+ reg = <0 0x43030000 0 0x4000>;
+ no-map;
+ };
+
+ /*
+ * 6 MiB reserved for OP-TEE (BL32)
+ * +-----------------------+ 0x4380_0000
+ * | SHMEM 2MiB |
+ * +-----------------------+ 0x4360_0000
+ * | TZDRAM 4MiB |
+ * +-----------------------+ 0x4320_0000
+ */
+ optee@43200000 {
+ reg = <0 0x43200000 0 0x600000>;
+ no-map;
+ };
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
--
2.56.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2 2/6] dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Add MT8163
2026-11-05 14:28 ` [PATCH v2 2/6] dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Add MT8163 Ben Grisdale via B4 Relay
@ 2026-11-05 14:30 ` sashiko-bot
0 siblings, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-11-05 14:30 UTC (permalink / raw)
To: Ben Grisdale; +Cc: linux-serial
> From: Ben Grisdale <bengris32@protonmail.ch>
>
> Add a compatible string for the SYSIRQ interrupt polarity controller on
> the MediaTek MT8163 SoC, which is compatible with the MT6577 SYSIRQ.
>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-arm64-initial-support-for-mediatek-mt8163-soc-v2-0-e68d7d428f99@protonmail.ch?part=2
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 1/6] dt-bindings: arm: mediatek: Add MT8163 Amazon Echo Dot (2016)
2026-11-05 14:28 ` [PATCH v2 1/6] dt-bindings: arm: mediatek: Add MT8163 Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
@ 2026-11-05 14:31 ` sashiko-bot
0 siblings, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-11-05 14:31 UTC (permalink / raw)
To: Ben Grisdale; +Cc: linux-serial
> From: Ben Grisdale <bengris32@protonmail.ch>
>
> Add compatible strings for the MediaTek MT8163 SoC and the Amazon Echo
> Dot (2nd generation, 2016), codenamed "biscuit".
>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-arm64-initial-support-for-mediatek-mt8163-soc-v2-0-e68d7d428f99@protonmail.ch?part=1
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 4/6] dt-bindings: serial: mediatek,uart: Add MT8163
2026-11-05 14:28 ` [PATCH v2 4/6] dt-bindings: serial: mediatek,uart: " Ben Grisdale via B4 Relay
@ 2026-11-05 14:31 ` sashiko-bot
0 siblings, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-11-05 14:31 UTC (permalink / raw)
To: Ben Grisdale; +Cc: linux-serial
> From: Ben Grisdale <bengris32@protonmail.ch>
>
> Add a compatible string for the UART controllers on the MediaTek MT8163
> SoC, which are compatible with the MT6577 UART.
>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-arm64-initial-support-for-mediatek-mt8163-soc-v2-0-e68d7d428f99@protonmail.ch?part=4
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 3/6] dt-bindings: timer: mediatek,timer: Add MT8163
2026-11-05 14:28 ` [PATCH v2 3/6] dt-bindings: timer: mediatek,timer: " Ben Grisdale via B4 Relay
@ 2026-11-05 14:31 ` sashiko-bot
0 siblings, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-11-05 14:31 UTC (permalink / raw)
To: Ben Grisdale; +Cc: linux-serial
> From: Ben Grisdale <bengris32@protonmail.ch>
>
> Add a compatible string for the general purpose timer (GPT) on the
> MediaTek MT8163 SoC, which is compatible with the MT6577 timer.
>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> Signed-off-by: Ben Grisdale <bengris32@protonmail.ch>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-arm64-initial-support-for-mediatek-mt8163-soc-v2-0-e68d7d428f99@protonmail.ch?part=3
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 6/6] arm64: dts: mediatek: Add Amazon Echo Dot (2016)
2026-11-05 14:28 ` [PATCH v2 6/6] arm64: dts: mediatek: Add Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
@ 2026-11-05 14:38 ` sashiko-bot
0 siblings, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-11-05 14:38 UTC (permalink / raw)
To: Ben Grisdale; +Cc: devicetree, linux-serial, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] arm64: dts: mediatek: unmatched mediatek,mt8163-wdt compatible in mt8163.dtsi
--
commit 1dcf4259a2a7c0a8d0a32ef9d20a66f3c078542e
Author: Ben Grisdale <bengris32@protonmail.ch>
arm64: dts: mediatek: Add Amazon Echo Dot (2016)
This commit adds a device tree for the Amazon Echo Dot (2nd generation, 2016),
codenamed "biscuit", based on the MediaTek MT8163 SoC, and enables building
mt8163-amazon-biscuit.dtb.
> diff --git a/arch/arm64/boot/dts/mediatek/mt8163-amazon-biscuit.dts b/arch/arm64/boot/dts/mediatek/mt8163-amazon-biscuit.dts
> new file mode 100644
> index 0000000000000..5fb5d59e4ed25
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8163-amazon-biscuit.dts
> @@ -0,0 +1,68 @@
> +// SPDX-License-Identifier: GPL-2.0-only OR MIT
> +/*
> + * Copyright (c) 2026 Ben Grisdale <bengris32@protonmail.ch>
> + */
> +
> +/dts-v1/;
> +#include "mt8163.dtsi"
[Severity: Medium]
Building mt8163-amazon-biscuit.dtb includes arch/arm64/boot/dts/mediatek/mt8163.dtsi,
which defines watchdog@10007000 without a fallback compatible:
arch/arm64/boot/dts/mediatek/mt8163.dtsi:
watchdog: watchdog@10007000 {
compatible = "mediatek,mt8163-wdt";
reg = <0 0x10007000 0 0x1000>;
interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_FALLING>;
#reset-cells = <1>;
};
However, mediatek,mt8163-wdt is not documented in
Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml, nor is it
present in mtk_wdt_dt_ids[] in drivers/watchdog/mtk_wdt.c:
drivers/watchdog/mtk_wdt.c:
static const struct of_device_id mtk_wdt_dt_ids[] = {
{ .compatible = "mediatek,mt2712-wdt", .data = &mt2712_data },
{ .compatible = "mediatek,mt6589-wdt", .data = &mt6589_data },
...
Will this cause dtbs_check to fail on mt8163-amazon-biscuit.dtb and prevent
the MediaTek watchdog and TOPRGU reset controller driver from binding to
watchdog@10007000 at runtime? Should watchdog@10007000 in mt8163.dtsi include
a fallback compatible such as "mediatek,mt6589-wdt" (along with the binding
update), or should mediatek,mt8163-wdt be added to the binding and driver?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-arm64-initial-support-for-mediatek-mt8163-soc-v2-0-e68d7d428f99@protonmail.ch?part=6
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: mediatek: Add basic support for MT8163 SoC
2026-11-05 14:28 ` [PATCH v2 5/6] arm64: dts: mediatek: Add basic support for MT8163 SoC Ben Grisdale via B4 Relay
@ 2026-11-05 14:43 ` sashiko-bot
0 siblings, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-11-05 14:43 UTC (permalink / raw)
To: Ben Grisdale; +Cc: devicetree, linux-serial, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] arm64: dts: mediatek: undocumented and unmatched mt8163-wdt compatible
- [Medium] arm64: dts: mediatek: mt8163: wrong IRQ trigger type on watchdog node
--
commit 67e669b8d381b252cd1f347ad5f9a9a92a7b5322
Author: Ben Grisdale <bengris32@protonmail.ch>
arm64: dts: mediatek: Add basic support for MT8163 SoC
This commit adds the base device tree include file for the MediaTek MT8163
SoC, defining the CPUs, caches, PSCI, interrupt controllers, timers, PMU,
watchdog, and UART nodes.
> diff --git a/arch/arm64/boot/dts/mediatek/mt8163.dtsi b/arch/arm64/boot/dts/mediatek/mt8163.dtsi
> new file mode 100644
> index 0000000000000..645f4e15587bf
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8163.dtsi
> @@ -0,0 +1,243 @@
[ ... ]
> + soc {
> + compatible = "simple-bus";
> + ranges;
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + watchdog: watchdog@10007000 {
> + compatible = "mediatek,mt8163-wdt";
[Severity: Medium]
Does the watchdog@10007000 node fail to bind and fail dtbs_check with only
"mediatek,mt8163-wdt" in its compatible property?
Unlike the timer, sysirq, and uart nodes, "mediatek,mt8163-wdt" is not
documented in Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml
and is not present in mtk_wdt_dt_ids[] in drivers/watchdog/mtk_wdt.c:
static const struct of_device_id mtk_wdt_dt_ids[] = {
{ .compatible = "mediatek,mt2712-wdt", .data = &mt2712_data },
{ .compatible = "mediatek,mt6589-wdt", .data = &mt6589_data },
...
{ .compatible = "mediatek,mt8195-wdt", .data = &mt8195_data },
{ /* sentinel */ }
};
Without a fallback compatible such as "mediatek,mt6589-wdt" (and a
corresponding binding entry) or a driver match entry, mtk_wdt_probe() will
not match this node, leaving the hardware watchdog, system restart handler,
and TOPRGU reset controller unavailable. Should this include a fallback
compatible and binding update?
> + reg = <0 0x10007000 0 0x1000>;
> + interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_FALLING>;
[Severity: Medium]
Should the interrupt trigger type on watchdog@10007000 be IRQ_TYPE_LEVEL_LOW
instead of IRQ_TYPE_EDGE_FALLING?
Because the parent interrupt controller is sysirq, mtk_sysirq_set_type() in
drivers/irqchip/irq-mtk-sysirq.c inverts the polarity and forwards
IRQ_TYPE_EDGE_FALLING to the GIC as IRQ_TYPE_EDGE_RISING:
if (type == IRQ_TYPE_LEVEL_LOW || type == IRQ_TYPE_EDGE_FALLING) {
if (type == IRQ_TYPE_LEVEL_LOW)
type = IRQ_TYPE_LEVEL_HIGH;
else
type = IRQ_TYPE_EDGE_RISING;
value |= (1 << offset);
}
However, the MediaTek TOPRGU watchdog bark interrupt is level-triggered (as
described in commit 311f6c4bba24 ("watchdog: mediatek: acknowledge pretimeout
interrupt") and Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml),
and mtk_wdt_deassert_irq() in drivers/watchdog/mtk_wdt.c acknowledges the
pretimeout interrupt by toggling WDT_MODE_IRQ_LEVEL_EN twice across a delay:
reg = ioread32(wdt_base + WDT_MODE);
reg ^= WDT_MODE_IRQ_LEVEL_EN;
iowrite32(reg | WDT_MODE_KEY, wdt_base + WDT_MODE);
udelay(WDT_IRQ_LEVEL_SYNC_US);
reg = ioread32(wdt_base + WDT_MODE);
reg ^= WDT_MODE_IRQ_LEVEL_EN;
iowrite32(reg | WDT_MODE_KEY, wdt_base + WDT_MODE);
With edge triggering configured, wouldn't toggling WDT_MODE_IRQ_LEVEL_EN in
mtk_wdt_deassert_irq() cause spurious re-triggering or missed pretimeout
interrupts?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-arm64-initial-support-for-mediatek-mt8163-soc-v2-0-e68d7d428f99@protonmail.ch?part=5
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-11-05 14:43 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-05 14:28 [PATCH v2 0/6] arm64: Initial support for MediaTek MT8163 SoC Ben Grisdale via B4 Relay
2026-11-05 14:28 ` [PATCH v2 1/6] dt-bindings: arm: mediatek: Add MT8163 Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
2026-11-05 14:31 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 2/6] dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Add MT8163 Ben Grisdale via B4 Relay
2026-11-05 14:30 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 3/6] dt-bindings: timer: mediatek,timer: " Ben Grisdale via B4 Relay
2026-11-05 14:31 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 4/6] dt-bindings: serial: mediatek,uart: " Ben Grisdale via B4 Relay
2026-11-05 14:31 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 5/6] arm64: dts: mediatek: Add basic support for MT8163 SoC Ben Grisdale via B4 Relay
2026-11-05 14:43 ` sashiko-bot
2026-11-05 14:28 ` [PATCH v2 6/6] arm64: dts: mediatek: Add Amazon Echo Dot (2016) Ben Grisdale via B4 Relay
2026-11-05 14:38 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox