* [PATCH 1/4] dt-bindings: riscv: thead: add Milk-V Meles
2026-09-29 10:22 [PATCH 0/4] riscv: dts: thead: Add Milk-V Meles support Han Gao
@ 2026-09-29 10:22 ` Han Gao
2026-09-29 22:15 ` Drew Fustini
2026-09-30 11:51 ` Krzysztof Kozlowski
2026-09-29 10:22 ` [PATCH 2/4] riscv: dts: " Han Gao
` (2 subsequent siblings)
3 siblings, 2 replies; 10+ messages in thread
From: Han Gao @ 2026-09-29 10:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Drew Fustini, Guo Ren, Fu Wei
Cc: Han Gao, devicetree, linux-riscv, linux-kernel, Han Gao
Document the Milk-V Meles board compatible with the TH1520 fallback.
Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
---
Documentation/devicetree/bindings/riscv/thead.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/riscv/thead.yaml b/Documentation/devicetree/bindings/riscv/thead.yaml
index 301912dcd290e60f816d380152591106de9415b4..5361021b8dcc9897803a5915665c6bb83309fe53 100644
--- a/Documentation/devicetree/bindings/riscv/thead.yaml
+++ b/Documentation/devicetree/bindings/riscv/thead.yaml
@@ -21,6 +21,10 @@ properties:
items:
- const: beagle,beaglev-ahead
- const: thead,th1520
+ - description: Milk-V Meles single board computer
+ items:
+ - const: milkv,meles
+ - const: thead,th1520
- description: Sipeed Lichee Pi 4A board for the Sipeed Lichee Module 4A
items:
- enum:
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/4] dt-bindings: riscv: thead: add Milk-V Meles
2026-09-29 10:22 ` [PATCH 1/4] dt-bindings: riscv: thead: add Milk-V Meles Han Gao
@ 2026-09-29 22:15 ` Drew Fustini
2026-09-30 11:51 ` Krzysztof Kozlowski
1 sibling, 0 replies; 10+ messages in thread
From: Drew Fustini @ 2026-09-29 22:15 UTC (permalink / raw)
To: Han Gao
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Guo Ren, Fu Wei, Han Gao, devicetree, linux-riscv, linux-kernel
On Tue, Sep 29, 2026 at 06:22:45PM +0800, Han Gao wrote:
> Document the Milk-V Meles board compatible with the TH1520 fallback.
>
> Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
> ---
> Documentation/devicetree/bindings/riscv/thead.yaml | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/riscv/thead.yaml b/Documentation/devicetree/bindings/riscv/thead.yaml
> index 301912dcd290e60f816d380152591106de9415b4..5361021b8dcc9897803a5915665c6bb83309fe53 100644
> --- a/Documentation/devicetree/bindings/riscv/thead.yaml
> +++ b/Documentation/devicetree/bindings/riscv/thead.yaml
> @@ -21,6 +21,10 @@ properties:
> items:
> - const: beagle,beaglev-ahead
> - const: thead,th1520
> + - description: Milk-V Meles single board computer
> + items:
> + - const: milkv,meles
> + - const: thead,th1520
> - description: Sipeed Lichee Pi 4A board for the Sipeed Lichee Module 4A
> items:
> - enum:
>
> --
> 2.47.3
>
Reviewed-by: Drew Fustini <fustini@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/4] dt-bindings: riscv: thead: add Milk-V Meles
2026-09-29 10:22 ` [PATCH 1/4] dt-bindings: riscv: thead: add Milk-V Meles Han Gao
2026-09-29 22:15 ` Drew Fustini
@ 2026-09-30 11:51 ` Krzysztof Kozlowski
1 sibling, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-30 11:51 UTC (permalink / raw)
To: Han Gao
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Drew Fustini, Guo Ren, Fu Wei, Han Gao, devicetree, linux-riscv,
linux-kernel
On Tue, Sep 29, 2026 at 06:22:45PM +0800, Han Gao wrote:
> Document the Milk-V Meles board compatible with the TH1520 fallback.
>
> Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
> ---
> Documentation/devicetree/bindings/riscv/thead.yaml | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/riscv/thead.yaml b/Documentation/devicetree/bindings/riscv/thead.yaml
> index 301912dcd290e60f816d380152591106de9415b4..5361021b8dcc9897803a5915665c6bb83309fe53 100644
> --- a/Documentation/devicetree/bindings/riscv/thead.yaml
> +++ b/Documentation/devicetree/bindings/riscv/thead.yaml
> @@ -21,6 +21,10 @@ properties:
> items:
> - const: beagle,beaglev-ahead
> - const: thead,th1520
> + - description: Milk-V Meles single board computer
> + items:
> + - const: milkv,meles
Why isn't this enum with the previous entry?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/4] riscv: dts: thead: add Milk-V Meles
2026-09-29 10:22 [PATCH 0/4] riscv: dts: thead: Add Milk-V Meles support Han Gao
2026-09-29 10:22 ` [PATCH 1/4] dt-bindings: riscv: thead: add Milk-V Meles Han Gao
@ 2026-09-29 10:22 ` Han Gao
2026-09-29 22:32 ` Drew Fustini
2026-09-29 10:22 ` [PATCH 3/4] riscv: dts: thead: enable AP6256 Wi-Fi on " Han Gao
2026-09-29 10:22 ` [PATCH 4/4] riscv: dts: thead: enable HDMI " Han Gao
3 siblings, 1 reply; 10+ messages in thread
From: Han Gao @ 2026-09-29 10:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Drew Fustini, Guo Ren, Fu Wei
Cc: Han Gao, devicetree, linux-riscv, linux-kernel, Han Gao
Add the Milk-V Meles board with UART0, eMMC, SD, Ethernet and the PWM2
fan. Describe the board pin assignments and the PHY on the GMAC0 MDIO
bus. Give GPIO banks aliases and name the exposed 40-pin header lines.
The eMMC I/O supply is fixed at 1.8 V. Enable DDR52 at that voltage and
retain the 52 MHz board limit. Describe 8 GiB as the default memory
size; firmware updates it to match the detected RAM capacity.
Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
---
arch/riscv/boot/dts/thead/Makefile | 1 +
arch/riscv/boot/dts/thead/th1520-milkv-meles.dts | 227 +++++++++++++++++++++++
2 files changed, 228 insertions(+)
diff --git a/arch/riscv/boot/dts/thead/Makefile b/arch/riscv/boot/dts/thead/Makefile
index b55a17127c2bc06cbfb06d5f7c92dc7296e98437..25f7fe068368c97df2490bedc3eae70276a2e442 100644
--- a/arch/riscv/boot/dts/thead/Makefile
+++ b/arch/riscv/boot/dts/thead/Makefile
@@ -1,2 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_THEAD) += th1520-lichee-pi-4a.dtb th1520-beaglev-ahead.dtb
+dtb-$(CONFIG_ARCH_THEAD) += th1520-milkv-meles.dtb
diff --git a/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
new file mode 100644
index 0000000000000000000000000000000000000000..3714047190789bfccd8ff6810342d7ff865e74e4
--- /dev/null
+++ b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
@@ -0,0 +1,227 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021-2022 Alibaba Group Holding Limited.
+ * Copyright (C) 2026 Han Gao <gaohan@iscas.ac.cn>
+ */
+
+/dts-v1/;
+
+#include "th1520.dtsi"
+
+/ {
+ model = "Milk-V Meles";
+ compatible = "milkv,meles", "thead,th1520";
+
+ aliases {
+ ethernet0 = &gmac0;
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ gpio2 = &gpio2;
+ gpio3 = &gpio3;
+ gpio4 = &gpio4;
+ gpio5 = &aogpio;
+ mmc0 = &emmc;
+ mmc1 = &sdio0;
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x0 0x2 0x0>;
+ };
+
+ fan: pwm-fan {
+ compatible = "pwm-fan";
+ pinctrl-names = "default";
+ pinctrl-0 = <&fan_pins>;
+ pwms = <&pwm 2 10000000 0>;
+ cooling-levels = <0 64 192 255>;
+ #cooling-cells = <2>;
+ };
+};
+
+/* Names follow the 40-pin header signal labels. */
+&aogpio {
+ gpio-line-names = "", "", "", "", "", "", "", "AOGPIO_7",
+ "AOGPIO_8", "", "AOGPIO_10", "AOGPIO_11";
+};
+
+&emmc {
+ bus-width = <8>;
+ max-frequency = <52000000>;
+ cap-mmc-highspeed;
+ mmc-ddr-1_8v;
+ non-removable;
+ no-sdio;
+ no-sd;
+
+ status = "okay";
+};
+
+&gmac0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac0_pins>, <&mdio0_pins>;
+ phy-handle = <&phy0>;
+ phy-mode = "rgmii-id";
+
+ status = "okay";
+};
+
+&gpio0 {
+ gpio-line-names = "", "", "", "", "", "", "", "", "GPIO0_8",
+ "GPIO0_9", "GPIO0_10", "GPIO0_11", "", "", "",
+ "", "GPIO0_16", "GPIO0_17";
+};
+
+&gpio2 {
+ gpio-line-names = "GPIO2_0", "GPIO2_1", "", "", "", "", "", "",
+ "", "", "", "GPIO2_11", "GPIO2_12", "",
+ "GPIO2_14", "GPIO2_15", "GPIO2_16", "GPIO2_17",
+ "", "", "", "", "GPIO2_22", "GPIO2_23",
+ "GPIO2_24", "GPIO2_25", "", "", "", "", "",
+ "GPIO2_31";
+};
+
+&gpio3 {
+ gpio-line-names = "GPIO3_0", "GPIO3_1", "GPIO3_2", "GPIO3_3";
+};
+
+&mdio0 {
+ phy0: ethernet-phy@1 {
+ reg = <1>;
+ };
+};
+
+&osc {
+ clock-frequency = <24000000>;
+};
+
+&osc_32k {
+ clock-frequency = <32768>;
+};
+
+&padctrl0_apsys {
+ fan_pins: fan-0 {
+ pwm2-pins {
+ pins = "QSPI0_CSN1";
+ function = "pwm";
+ bias-disable;
+ drive-strength = <25>;
+ input-disable;
+ input-schmitt-disable;
+ slew-rate = <0>;
+ };
+ };
+
+ gmac0_pins: gmac0-0 {
+ tx-pins {
+ pins = "GMAC0_TX_CLK",
+ "GMAC0_TXEN",
+ "GMAC0_TXD0",
+ "GMAC0_TXD1",
+ "GMAC0_TXD2",
+ "GMAC0_TXD3";
+ function = "gmac0";
+ bias-disable;
+ drive-strength = <25>;
+ input-disable;
+ input-schmitt-disable;
+ slew-rate = <0>;
+ };
+
+ rx-pins {
+ pins = "GMAC0_RX_CLK",
+ "GMAC0_RXDV",
+ "GMAC0_RXD0",
+ "GMAC0_RXD1",
+ "GMAC0_RXD2",
+ "GMAC0_RXD3";
+ function = "gmac0";
+ bias-disable;
+ drive-strength = <1>;
+ input-enable;
+ input-schmitt-disable;
+ slew-rate = <0>;
+ };
+ };
+
+ mdio0_pins: mdio0-0 {
+ mdc-pins {
+ pins = "GMAC0_MDC";
+ function = "gmac0";
+ bias-disable;
+ drive-strength = <13>;
+ input-disable;
+ input-schmitt-disable;
+ slew-rate = <0>;
+ };
+
+ mdio-pins {
+ pins = "GMAC0_MDIO";
+ function = "gmac0";
+ bias-disable;
+ drive-strength = <13>;
+ input-enable;
+ input-schmitt-enable;
+ slew-rate = <0>;
+ };
+ };
+
+ sdio0_pins: sdio0-0 {
+ detn-pins {
+ pins = "SDIO0_DETN";
+ function = "sdio";
+ bias-disable; /* external pull-up */
+ drive-strength = <1>;
+ input-enable;
+ input-schmitt-enable;
+ slew-rate = <0>;
+ };
+ };
+
+ uart0_pins: uart0-0 {
+ tx-pins {
+ pins = "UART0_TXD";
+ function = "uart";
+ bias-disable;
+ drive-strength = <3>;
+ input-disable;
+ input-schmitt-disable;
+ slew-rate = <0>;
+ };
+
+ rx-pins {
+ pins = "UART0_RXD";
+ function = "uart";
+ bias-disable;
+ drive-strength = <1>;
+ input-enable;
+ input-schmitt-enable;
+ slew-rate = <0>;
+ };
+ };
+};
+
+&sdio0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdio0_pins>;
+ bus-width = <4>;
+ max-frequency = <50000000>;
+ cap-sd-highspeed;
+ no-1-8-v;
+ disable-wp;
+ no-sdio;
+
+ status = "okay";
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins>;
+
+ status = "okay";
+};
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 2/4] riscv: dts: thead: add Milk-V Meles
2026-09-29 10:22 ` [PATCH 2/4] riscv: dts: " Han Gao
@ 2026-09-29 22:32 ` Drew Fustini
0 siblings, 0 replies; 10+ messages in thread
From: Drew Fustini @ 2026-09-29 22:32 UTC (permalink / raw)
To: Han Gao
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Guo Ren, Fu Wei, Han Gao, devicetree, linux-riscv, linux-kernel
On Tue, Sep 29, 2026 at 06:22:46PM +0800, Han Gao wrote:
> Add the Milk-V Meles board with UART0, eMMC, SD, Ethernet and the PWM2
> fan. Describe the board pin assignments and the PHY on the GMAC0 MDIO
> bus. Give GPIO banks aliases and name the exposed 40-pin header lines.
>
> The eMMC I/O supply is fixed at 1.8 V. Enable DDR52 at that voltage and
> retain the 52 MHz board limit. Describe 8 GiB as the default memory
> size; firmware updates it to match the detected RAM capacity.
>
> Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
> ---
> arch/riscv/boot/dts/thead/Makefile | 1 +
> arch/riscv/boot/dts/thead/th1520-milkv-meles.dts | 227 +++++++++++++++++++++++
> 2 files changed, 228 insertions(+)
Reviewed-by: Drew Fustini <fustini@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/4] riscv: dts: thead: enable AP6256 Wi-Fi on Milk-V Meles
2026-09-29 10:22 [PATCH 0/4] riscv: dts: thead: Add Milk-V Meles support Han Gao
2026-09-29 10:22 ` [PATCH 1/4] dt-bindings: riscv: thead: add Milk-V Meles Han Gao
2026-09-29 10:22 ` [PATCH 2/4] riscv: dts: " Han Gao
@ 2026-09-29 10:22 ` Han Gao
2026-09-29 22:38 ` Drew Fustini
2026-09-29 10:22 ` [PATCH 4/4] riscv: dts: thead: enable HDMI " Han Gao
3 siblings, 1 reply; 10+ messages in thread
From: Han Gao @ 2026-09-29 10:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Drew Fustini, Guo Ren, Fu Wei
Cc: Han Gao, devicetree, linux-riscv, linux-kernel, Han Gao
Connect AP6256 to SDIO1 with its fixed supplies and PMIC LPO clock.
Use GPIO0_20 for WL_REG_ON and GPIO0_21 for the host-wake interrupt.
Keep GPIO1_24 low to select the external antenna by default.
Use the existing BCM43456 binding and the 198 MHz board limit.
Keep module power during suspend and assign mmc2 to SDIO1.
Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
---
arch/riscv/boot/dts/thead/th1520-milkv-meles.dts | 93 ++++++++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
index 3714047190789bfccd8ff6810342d7ff865e74e4..92b44cb90f57f4830efd29145744c005afa73119 100644
--- a/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
+++ b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
@@ -7,6 +7,7 @@
/dts-v1/;
#include "th1520.dtsi"
+#include <dt-bindings/gpio/gpio.h>
/ {
model = "Milk-V Meles";
@@ -22,6 +23,7 @@ aliases {
gpio5 = &aogpio;
mmc0 = &emmc;
mmc1 = &sdio0;
+ mmc2 = &sdio1;
serial0 = &uart0;
};
@@ -29,6 +31,13 @@ chosen {
stdout-path = "serial0:115200n8";
};
+ wifi_32k: clock-wifi-32k {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <32768>;
+ /* The module LPO input is supplied by PMIC_32K_OUT. */
+ };
+
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x2 0x0>;
@@ -42,6 +51,30 @@ fan: pwm-fan {
cooling-levels = <0 64 192 255>;
#cooling-cells = <2>;
};
+
+ wifi_vbat: regulator-wifi-vbat {
+ compatible = "regulator-fixed";
+ regulator-name = "WIFI_3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ wifi_vddio: regulator-wifi-vddio {
+ compatible = "regulator-fixed";
+ regulator-name = "WIFI_VDDIO";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ wifi_pwrseq: wifi-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_enable_pins>;
+ reset-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
+ post-power-on-delay-ms = <50>;
+ };
};
/* Names follow the 40-pin header signal labels. */
@@ -77,6 +110,16 @@ &gpio0 {
"", "GPIO0_16", "GPIO0_17";
};
+&gpio1 {
+ /* GPIO1_24 low selects the external antenna through U39. */
+ wifi-antenna-select-hog {
+ gpio-hog;
+ gpios = <24 GPIO_ACTIVE_HIGH>;
+ output-low;
+ line-name = "wifi-external-antenna";
+ };
+};
+
&gpio2 {
gpio-line-names = "GPIO2_0", "GPIO2_1", "", "", "", "", "", "",
"", "", "", "GPIO2_11", "GPIO2_12", "",
@@ -206,6 +249,26 @@ rx-pins {
};
};
+&padctrl1_apsys {
+ wifi_enable_pins: wifi-enable-0 {
+ gpio-pins {
+ pins = "GPIO0_20";
+ bias-disable;
+ drive-strength = <7>;
+ input-disable;
+ };
+ };
+
+ wifi_host_wake_pins: wifi-host-wake-0 {
+ gpio-pins {
+ pins = "GPIO0_21";
+ bias-disable;
+ input-enable;
+ input-schmitt-enable;
+ };
+ };
+};
+
&sdio0 {
pinctrl-names = "default";
pinctrl-0 = <&sdio0_pins>;
@@ -219,6 +282,36 @@ &sdio0 {
status = "okay";
};
+&sdio1 {
+ bus-width = <4>;
+ max-frequency = <198000000>;
+ cap-sd-highspeed;
+ cap-sdio-irq;
+ non-removable;
+ no-sd;
+ no-mmc;
+ keep-power-in-suspend;
+ vmmc-supply = <&wifi_vbat>;
+ vqmmc-supply = <&wifi_vddio>;
+ mmc-pwrseq = <&wifi_pwrseq>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "okay";
+
+ wifi@1 {
+ compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
+ reg = <1>;
+ clocks = <&wifi_32k>;
+ clock-names = "lpo";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_host_wake_pins>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "host-wake";
+ };
+};
+
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 3/4] riscv: dts: thead: enable AP6256 Wi-Fi on Milk-V Meles
2026-09-29 10:22 ` [PATCH 3/4] riscv: dts: thead: enable AP6256 Wi-Fi on " Han Gao
@ 2026-09-29 22:38 ` Drew Fustini
0 siblings, 0 replies; 10+ messages in thread
From: Drew Fustini @ 2026-09-29 22:38 UTC (permalink / raw)
To: Han Gao
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Guo Ren, Fu Wei, Han Gao, devicetree, linux-riscv, linux-kernel
On Tue, Sep 29, 2026 at 06:22:47PM +0800, Han Gao wrote:
> Connect AP6256 to SDIO1 with its fixed supplies and PMIC LPO clock.
> Use GPIO0_20 for WL_REG_ON and GPIO0_21 for the host-wake interrupt.
> Keep GPIO1_24 low to select the external antenna by default.
>
> Use the existing BCM43456 binding and the 198 MHz board limit.
> Keep module power during suspend and assign mmc2 to SDIO1.
>
> Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
> ---
> arch/riscv/boot/dts/thead/th1520-milkv-meles.dts | 93 ++++++++++++++++++++++++
> 1 file changed, 93 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
> index 3714047190789bfccd8ff6810342d7ff865e74e4..92b44cb90f57f4830efd29145744c005afa73119 100644
> --- a/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
> +++ b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
[..]
> @@ -206,6 +249,26 @@ rx-pins {
> };
> };
>
> +&padctrl1_apsys {
> + wifi_enable_pins: wifi-enable-0 {
> + gpio-pins {
> + pins = "GPIO0_20";
> + bias-disable;
> + drive-strength = <7>;
> + input-disable;
> + };
> + };
> +
> + wifi_host_wake_pins: wifi-host-wake-0 {
> + gpio-pins {
> + pins = "GPIO0_21";
This node needs function = "gpio". It is interrupt-only so nothing
selects the GPIO mux. I can fix this up when applying to save a v2.
Reviewed-by: Drew Fustini <fustini@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 4/4] riscv: dts: thead: enable HDMI on Milk-V Meles
2026-09-29 10:22 [PATCH 0/4] riscv: dts: thead: Add Milk-V Meles support Han Gao
` (2 preceding siblings ...)
2026-09-29 10:22 ` [PATCH 3/4] riscv: dts: thead: enable AP6256 Wi-Fi on " Han Gao
@ 2026-09-29 10:22 ` Han Gao
2026-09-29 22:39 ` Drew Fustini
3 siblings, 1 reply; 10+ messages in thread
From: Han Gao @ 2026-09-29 10:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Drew Fustini, Guo Ren, Fu Wei
Cc: Han Gao, devicetree, linux-riscv, linux-kernel, Han Gao
Enable the DC8200 display controller and DW-HDMI transmitter. Connect
the transmitter to the board Type-A HDMI connector with reciprocal graph
endpoints.
Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
---
arch/riscv/boot/dts/thead/th1520-milkv-meles.dts | 25 ++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
index 92b44cb90f57f4830efd29145744c005afa73119..47b1ce4316468ff94b161cbf56e634040fd03306 100644
--- a/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
+++ b/arch/riscv/boot/dts/thead/th1520-milkv-meles.dts
@@ -38,6 +38,17 @@ wifi_32k: clock-wifi-32k {
/* The module LPO input is supplied by PMIC_32K_OUT. */
};
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con_in: endpoint {
+ remote-endpoint = <&hdmi_out_con>;
+ };
+ };
+ };
+
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x2 0x0>;
@@ -83,6 +94,10 @@ &aogpio {
"AOGPIO_8", "", "AOGPIO_10", "AOGPIO_11";
};
+&dpu {
+ status = "okay";
+};
+
&emmc {
bus-width = <8>;
max-frequency = <52000000>;
@@ -133,6 +148,16 @@ &gpio3 {
gpio-line-names = "GPIO3_0", "GPIO3_1", "GPIO3_2", "GPIO3_3";
};
+&hdmi {
+ status = "okay";
+};
+
+&hdmi_out_port {
+ hdmi_out_con: endpoint {
+ remote-endpoint = <&hdmi_con_in>;
+ };
+};
+
&mdio0 {
phy0: ethernet-phy@1 {
reg = <1>;
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 4/4] riscv: dts: thead: enable HDMI on Milk-V Meles
2026-09-29 10:22 ` [PATCH 4/4] riscv: dts: thead: enable HDMI " Han Gao
@ 2026-09-29 22:39 ` Drew Fustini
0 siblings, 0 replies; 10+ messages in thread
From: Drew Fustini @ 2026-09-29 22:39 UTC (permalink / raw)
To: Han Gao
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Jisheng Zhang,
Guo Ren, Fu Wei, Han Gao, devicetree, linux-riscv, linux-kernel
On Tue, Sep 29, 2026 at 06:22:48PM +0800, Han Gao wrote:
> Enable the DC8200 display controller and DW-HDMI transmitter. Connect
> the transmitter to the board Type-A HDMI connector with reciprocal graph
> endpoints.
>
> Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
> ---
> arch/riscv/boot/dts/thead/th1520-milkv-meles.dts | 25 ++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
Reviewed-by: Drew Fustini <fustini@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread