* [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* 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
* [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 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