* [PATCH 0/4] riscv: dts: thead: Add Milk-V Meles support
@ 2026-09-29 10:22 Han Gao
2026-09-29 10:22 ` [PATCH 1/4] dt-bindings: riscv: thead: add Milk-V Meles Han Gao
` (3 more replies)
0 siblings, 4 replies; 9+ 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
Milk-V Meles is a single-board computer powered by T-HEAD's TH1520
SoC with four C910 RISC-V cores. Add the board compatible and device
tree for the Milk-V Meles.
Enable UART0, eMMC, microSD, Gigabit Ethernet and the PWM fan, and
name the GPIO lines exposed on the 40-pin header. Add AP6256 Wi-Fi
support over SDIO and enable HDMI output through the DC8200 display
controller and DW-HDMI transmitter.
Board details:
https://milkv.io/docs/meles/overview
Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
---
Han Gao (4):
dt-bindings: riscv: thead: add Milk-V Meles
riscv: dts: thead: add Milk-V Meles
riscv: dts: thead: enable AP6256 Wi-Fi on Milk-V Meles
riscv: dts: thead: enable HDMI on Milk-V Meles
Documentation/devicetree/bindings/riscv/thead.yaml | 4 +
arch/riscv/boot/dts/thead/Makefile | 1 +
arch/riscv/boot/dts/thead/th1520-milkv-meles.dts | 345 +++++++++++++++++++++
3 files changed, 350 insertions(+)
---
base-commit: 72d3fcf802c45d00b300f25b848a93c3a2bd7c7e
change-id: 20260929-rv-meles-25d10148dc0c
Best regards,
--
Han Gao <gaohan@iscas.ac.cn>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [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-29 10:22 ` [PATCH 2/4] riscv: dts: " Han Gao
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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
0 siblings, 0 replies; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ messages in thread
end of thread, other threads:[~2026-09-29 22:39 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 22:15 ` Drew Fustini
2026-09-29 10:22 ` [PATCH 2/4] riscv: dts: " 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 22:38 ` Drew Fustini
2026-09-29 10:22 ` [PATCH 4/4] riscv: dts: thead: enable HDMI " Han Gao
2026-09-29 22:39 ` Drew Fustini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®