From: Troy Mitchell <troy.mitchell@linux.spacemit.com>
Add initial device tree support for the MusePi Pro board [1].
The board is using the SpacemiT K1/M1 SoC.
The device tree is adapted from the SpacemiT vendor tree [2].
This minimal device tree enables booting into a serial console with UART
output and a blinking LED.
Link:
https://developer.spacemit.com/documentation?token=YJtdwnvvViPVcmkoPDpcvwfVnrh&type=pdf [1]
https://gitee.com/bianbu-linux/linux-6.6/blob/k1-bl-v2.2.y/arch/riscv/boot/dts/spacemit/k1-x_MUSE-Pi-Pro.dts [2]
Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
---
arch/riscv/boot/dts/spacemit/Makefile | 1 +
arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 40 ++++++++++++++++++++++++++
2 files changed, 41 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
index 152832644870624d8fd77684ef33addb42b0baf3..76b98096e2a46c3192651d6d66af7742f740c635 100644
--- a/arch/riscv/boot/dts/spacemit/Makefile
+++ b/arch/riscv/boot/dts/spacemit/Makefile
@@ -2,3 +2,4 @@
dtb-$(CONFIG_ARCH_SPACEMIT) += k1-bananapi-f3.dtb
dtb-$(CONFIG_ARCH_SPACEMIT) += k1-milkv-jupiter.dtb
dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
+dtb-$(CONFIG_ARCH_SPACEMIT) += k1-musepi-pro.dtb
diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
new file mode 100644
index 0000000000000000000000000000000000000000..3791186ce47b88887eab4321dcd7035668e7f02d
--- /dev/null
+++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ * Copyright (C) 2025 Troy Mitchell <troy.mitchell@linux.spacemit.com>
+ */
+
+/dts-v1/;
+
+#include "k1.dtsi"
+#include "k1-pinctrl.dtsi"
+
+/ {
+ model = "MusePi Pro";
+ compatible = "spacemit,musepi-pro", "spacemit,k1";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led1 {
+ label = "sys-led";
+ gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "heartbeat";
+ default-state = "on";
+ };
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_2_cfg>;
+ status = "okay";
+};
--
2.51.0
Hi Troy,
On 12:16 Sun 28 Sep , Troy Mitchell wrote:
> From: Troy Mitchell <troy.mitchell@linux.spacemit.com>
>
> Add initial device tree support for the MusePi Pro board [1].
> The board is using the SpacemiT K1/M1 SoC.
>
> The device tree is adapted from the SpacemiT vendor tree [2].
>
> This minimal device tree enables booting into a serial console with UART
> output and a blinking LED.
>
> Link:
> https://developer.spacemit.com/documentation?token=YJtdwnvvViPVcmkoPDpcvwfVnrh&type=pdf [1]
> https://gitee.com/bianbu-linux/linux-6.6/blob/k1-bl-v2.2.y/arch/riscv/boot/dts/spacemit/k1-x_MUSE-Pi-Pro.dts [2]
>
same as patch 1
> Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
> ---
> arch/riscv/boot/dts/spacemit/Makefile | 1 +
> arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 40 ++++++++++++++++++++++++++
> 2 files changed, 41 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
> index 152832644870624d8fd77684ef33addb42b0baf3..76b98096e2a46c3192651d6d66af7742f740c635 100644
> --- a/arch/riscv/boot/dts/spacemit/Makefile
> +++ b/arch/riscv/boot/dts/spacemit/Makefile
> @@ -2,3 +2,4 @@
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-bananapi-f3.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-milkv-jupiter.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
> +dtb-$(CONFIG_ARCH_SPACEMIT) += k1-musepi-pro.dtb
please sort
> diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> new file mode 100644
> index 0000000000000000000000000000000000000000..3791186ce47b88887eab4321dcd7035668e7f02d
> --- /dev/null
> +++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> @@ -0,0 +1,40 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
> + * Copyright (C) 2025 Troy Mitchell <troy.mitchell@linux.spacemit.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "k1.dtsi"
> +#include "k1-pinctrl.dtsi"
> +
> +/ {
> + model = "MusePi Pro";
this is a little bit short, how about make it "SpacemiT MusePi Pro"?
> + compatible = "spacemit,musepi-pro", "spacemit,k1";
> +
> + aliases {
> + serial0 = &uart0;
> + };
> +
> + chosen {
> + stdout-path = "serial0";
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + led1 {
> + label = "sys-led";
> + gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "heartbeat";
> + default-state = "on";
> + };
> + };
> +};
> +
> +&uart0 {
..
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart0_2_cfg>;
swap these two lines, for similar reason, see my comment here
https://lore.kernel.org/all/20250918133209-GYB1273705@gentoo.org/
> + status = "okay";
> +};
>
> --
> 2.51.0
>
while you are here, I'd suggest to push as many features as possible
instead of this minimal DT, which say - PMU, emmc, ethernet should be ready..
(ethernet is in next, should show up at v6.18-rc1)
--
Yixun Lan (dlan)
On Sun, Sep 28, 2025 at 04:00:03PM +0800, Yixun Lan wrote:
> Hi Troy,
>
> On 12:16 Sun 28 Sep , Troy Mitchell wrote:
> > From: Troy Mitchell <troy.mitchell@linux.spacemit.com>
> >
> > Add initial device tree support for the MusePi Pro board [1].
> > The board is using the SpacemiT K1/M1 SoC.
> >
> > The device tree is adapted from the SpacemiT vendor tree [2].
> >
> > This minimal device tree enables booting into a serial console with UART
> > output and a blinking LED.
> >
> > Link:
> > https://developer.spacemit.com/documentation?token=YJtdwnvvViPVcmkoPDpcvwfVnrh&type=pdf [1]
> > https://gitee.com/bianbu-linux/linux-6.6/blob/k1-bl-v2.2.y/arch/riscv/boot/dts/spacemit/k1-x_MUSE-Pi-Pro.dts [2]
> >
> same as patch 1
> > Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
> > ---
> > arch/riscv/boot/dts/spacemit/Makefile | 1 +
> > arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 40 ++++++++++++++++++++++++++
> > 2 files changed, 41 insertions(+)
> >
> > diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
> > index 152832644870624d8fd77684ef33addb42b0baf3..76b98096e2a46c3192651d6d66af7742f740c635 100644
> > --- a/arch/riscv/boot/dts/spacemit/Makefile
> > +++ b/arch/riscv/boot/dts/spacemit/Makefile
> > @@ -2,3 +2,4 @@
> > dtb-$(CONFIG_ARCH_SPACEMIT) += k1-bananapi-f3.dtb
> > dtb-$(CONFIG_ARCH_SPACEMIT) += k1-milkv-jupiter.dtb
> > dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
> > +dtb-$(CONFIG_ARCH_SPACEMIT) += k1-musepi-pro.dtb
> please sort
Oh my gosh..
That's my mistake. I will fix it in the next version.
>
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..3791186ce47b88887eab4321dcd7035668e7f02d
> > --- /dev/null
> > +++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> > @@ -0,0 +1,40 @@
> > +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> > +/*
> > + * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
> > + * Copyright (C) 2025 Troy Mitchell <troy.mitchell@linux.spacemit.com>
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "k1.dtsi"
> > +#include "k1-pinctrl.dtsi"
> > +
> > +/ {
> > + model = "MusePi Pro";
> this is a little bit short, how about make it "SpacemiT MusePi Pro"?
Sounds good to me.
>
> > + compatible = "spacemit,musepi-pro", "spacemit,k1";
> > +
> > + aliases {
> > + serial0 = &uart0;
> > + };
> > +
> > + chosen {
> > + stdout-path = "serial0";
> > + };
> > +
> > + leds {
> > + compatible = "gpio-leds";
> > +
> > + led1 {
> > + label = "sys-led";
> > + gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
> > + linux,default-trigger = "heartbeat";
> > + default-state = "on";
> > + };
> > + };
> > +};
> > +
> > +&uart0 {
> ..
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&uart0_2_cfg>;
> swap these two lines, for similar reason, see my comment here
> https://lore.kernel.org/all/20250918133209-GYB1273705@gentoo.org/
Thanks for this link.
>
> > + status = "okay";
> > +};
> >
> > --
> > 2.51.0
> >
>
> while you are here, I'd suggest to push as many features as possible
> instead of this minimal DT, which say - PMU, emmc, ethernet should be ready..
> (ethernet is in next, should show up at v6.18-rc1)
Good idea.
I think I should split these into multiple commits, right?
Like, PDMA and EMAC should definitely be two separate commits.
- Troy
>
> --
> Yixun Lan (dlan)
>
Hi Troy, On 16:05 Sun 28 Sep , Troy Mitchell wrote: > On Sun, Sep 28, 2025 at 04:00:03PM +0800, Yixun Lan wrote: > > Hi Troy, > > > > On 12:16 Sun 28 Sep , Troy Mitchell wrote: > > > From: Troy Mitchell <troy.mitchell@linux.spacemit.com> > > > > > > Add initial device tree support for the MusePi Pro board [1]. > > > The board is using the SpacemiT K1/M1 SoC. > > > > > > The device tree is adapted from the SpacemiT vendor tree [2]. > > > > > > This minimal device tree enables booting into a serial console with UART > > > output and a blinking LED. > > > > > > Link: > > > https://developer.spacemit.com/documentation?token=YJtdwnvvViPVcmkoPDpcvwfVnrh&type=pdf [1] > > > https://gitee.com/bianbu-linux/linux-6.6/blob/k1-bl-v2.2.y/arch/riscv/boot/dts/spacemit/k1-x_MUSE-Pi-Pro.dts [2] > > > > > same as patch 1 > > > Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com> > > > --- ..[snip] > > > > while you are here, I'd suggest to push as many features as possible > > instead of this minimal DT, which say - PMU, emmc, ethernet should be ready.. > > (ethernet is in next, should show up at v6.18-rc1) > Good idea. > I think I should split these into multiple commits, right? > Like, PDMA and EMAC should definitely be two separate commits. > IMO, not really necessary, but I wouldn't mind either.. -- Yixun Lan (dlan)
On Sun, Sep 28, 2025 at 04:50:10PM +0800, Yixun Lan wrote:
> Hi Troy,
>
> On 16:05 Sun 28 Sep , Troy Mitchell wrote:
> > On Sun, Sep 28, 2025 at 04:00:03PM +0800, Yixun Lan wrote:
> > > Hi Troy,
> > >
> > > On 12:16 Sun 28 Sep , Troy Mitchell wrote:
> > > > From: Troy Mitchell <troy.mitchell@linux.spacemit.com>
> > > >
> > > > Add initial device tree support for the MusePi Pro board [1].
> > > > The board is using the SpacemiT K1/M1 SoC.
> > > >
> > > > The device tree is adapted from the SpacemiT vendor tree [2].
> > > >
> > > > This minimal device tree enables booting into a serial console with UART
> > > > output and a blinking LED.
> > > >
> > > > Link:
> > > > https://developer.spacemit.com/documentation?token=YJtdwnvvViPVcmkoPDpcvwfVnrh&type=pdf [1]
> > > > https://gitee.com/bianbu-linux/linux-6.6/blob/k1-bl-v2.2.y/arch/riscv/boot/dts/spacemit/k1-x_MUSE-Pi-Pro.dts [2]
> > > >
> > > same as patch 1
> > > > Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
> > > > ---
> ..[snip]
> > >
> > > while you are here, I'd suggest to push as many features as possible
> > > instead of this minimal DT, which say - PMU, emmc, ethernet should be ready..
> > > (ethernet is in next, should show up at v6.18-rc1)
> > Good idea.
> > I think I should split these into multiple commits, right?
> > Like, PDMA and EMAC should definitely be two separate commits.
> >
> IMO, not really necessary, but I wouldn't mind either..
Thanks.
Then I will split them to keep clear.
- Troy
>
> --
> Yixun Lan (dlan)
>
On 9/27/25 21:16, Troy Mitchell wrote:
> From: Troy Mitchell <troy.mitchell@linux.spacemit.com>
>
> Add initial device tree support for the MusePi Pro board [1].
> The board is using the SpacemiT K1/M1 SoC.
>
> The device tree is adapted from the SpacemiT vendor tree [2].
>
> This minimal device tree enables booting into a serial console with UART
> output and a blinking LED.
>
> Link:
> https://developer.spacemit.com/documentation?token=YJtdwnvvViPVcmkoPDpcvwfVnrh&type=pdf [1]
> https://gitee.com/bianbu-linux/linux-6.6/blob/k1-bl-v2.2.y/arch/riscv/boot/dts/spacemit/k1-x_MUSE-Pi-Pro.dts [2]
>
> Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
> ---
> arch/riscv/boot/dts/spacemit/Makefile | 1 +
> arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 40 ++++++++++++++++++++++++++
> 2 files changed, 41 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
> index 152832644870624d8fd77684ef33addb42b0baf3..76b98096e2a46c3192651d6d66af7742f740c635 100644
> --- a/arch/riscv/boot/dts/spacemit/Makefile
> +++ b/arch/riscv/boot/dts/spacemit/Makefile
> @@ -2,3 +2,4 @@
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-bananapi-f3.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-milkv-jupiter.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
> +dtb-$(CONFIG_ARCH_SPACEMIT) += k1-musepi-pro.dtb
> diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> new file mode 100644
> index 0000000000000000000000000000000000000000..3791186ce47b88887eab4321dcd7035668e7f02d
> --- /dev/null
> +++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> @@ -0,0 +1,40 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
> + * Copyright (C) 2025 Troy Mitchell <troy.mitchell@linux.spacemit.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "k1.dtsi"
> +#include "k1-pinctrl.dtsi"
> +
> +/ {
> + model = "MusePi Pro";
> + compatible = "spacemit,musepi-pro", "spacemit,k1";
> +
> + aliases {
> + serial0 = &uart0;
> + };
> +
> + chosen {
> + stdout-path = "serial0";
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + led1 {
> + label = "sys-led";
> + gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "heartbeat";
> + default-state = "on";
Can you explain how you decided to sort this? I think the documentation
examples needs updating but it is unclear to me.
> + };
> + };
> +};
> +
> +&uart0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart0_2_cfg>;
> + status = "okay";
> +};
>
Best regards,
-E Shattow
On Sat, Sep 27, 2025 at 10:05:54PM -0700, E Shattow wrote:
> On 9/27/25 21:16, Troy Mitchell wrote:
> > From: Troy Mitchell <troy.mitchell@linux.spacemit.com>
> >
> > Add initial device tree support for the MusePi Pro board [1].
> > The board is using the SpacemiT K1/M1 SoC.
> >
> > The device tree is adapted from the SpacemiT vendor tree [2].
> >
> > This minimal device tree enables booting into a serial console with UART
> > output and a blinking LED.
> >
> > Link:
> > https://developer.spacemit.com/documentation?token=YJtdwnvvViPVcmkoPDpcvwfVnrh&type=pdf [1]
> > https://gitee.com/bianbu-linux/linux-6.6/blob/k1-bl-v2.2.y/arch/riscv/boot/dts/spacemit/k1-x_MUSE-Pi-Pro.dts [2]
> >
> > Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
> > ---
> > arch/riscv/boot/dts/spacemit/Makefile | 1 +
> > arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts | 40 ++++++++++++++++++++++++++
> > 2 files changed, 41 insertions(+)
> >
> > diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
> > index 152832644870624d8fd77684ef33addb42b0baf3..76b98096e2a46c3192651d6d66af7742f740c635 100644
> > --- a/arch/riscv/boot/dts/spacemit/Makefile
> > +++ b/arch/riscv/boot/dts/spacemit/Makefile
> > @@ -2,3 +2,4 @@
> > dtb-$(CONFIG_ARCH_SPACEMIT) += k1-bananapi-f3.dtb
> > dtb-$(CONFIG_ARCH_SPACEMIT) += k1-milkv-jupiter.dtb
> > dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
> > +dtb-$(CONFIG_ARCH_SPACEMIT) += k1-musepi-pro.dtb
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..3791186ce47b88887eab4321dcd7035668e7f02d
> > --- /dev/null
> > +++ b/arch/riscv/boot/dts/spacemit/k1-musepi-pro.dts
> > @@ -0,0 +1,40 @@
> > +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> > +/*
> > + * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
> > + * Copyright (C) 2025 Troy Mitchell <troy.mitchell@linux.spacemit.com>
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "k1.dtsi"
> > +#include "k1-pinctrl.dtsi"
> > +
> > +/ {
> > + model = "MusePi Pro";
> > + compatible = "spacemit,musepi-pro", "spacemit,k1";
> > +
> > + aliases {
> > + serial0 = &uart0;
> > + };
> > +
> > + chosen {
> > + stdout-path = "serial0";
> > + };
> > +
> > + leds {
> > + compatible = "gpio-leds";
> > +
>
> > + led1 {
> > + label = "sys-led";
> > + gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
> > + linux,default-trigger = "heartbeat";
> > + default-state = "on";
>
> Can you explain how you decided to sort this? I think the documentation
> examples needs updating but it is unclear to me.
This snippet comes from the BPI-F3 DTS.
I only verified the pins and polarity against the schematic.
- Troy
>
> > + };
> > + };
> > +};
> > +
> > +&uart0 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&uart0_2_cfg>;
> > + status = "okay";
> > +};
> >
>
> Best regards,
>
> -E Shattow
>
© 2016 - 2026 Red Hat, Inc.