Re: [PATCH 2/2] riscv: dts: spacemit: Add K3 BS01DCMA support
From: Emil Renner Berthing
Date: Wed Nov 04 2026 - 07:22:10 EST
On Wed, 4 Nov 2026 at 07:24, Troy Mitchell
<troy.mitchell@xxxxxxxxxxxxxxxxxx> wrote:
>
> K3 BS01DCMA is a board equipped with a SpacemiT K3 SoC, 16 GiB of LPDDR5
> memory, a P1 PMIC, an EEPROM and QSPI NOR flash.
>
> Add initial support for the serial console, EEPROM, PMIC and QSPI NOR
> flash.
Hi Troy,
Thanks for the patch!
I just had a talk with Dong from Spacemit. He tells me the BS01DCMA is
the name of a module similar to the com260, only it has a different
form factor and each module consists of 2 separate K3 nodes. Similar
to how the com260 module can be used in a small carrier board
(spacemit,k3-com260-ifx) and in a 10-node server
(spacemit,k3-com260-tq), I'd expect to see a
common arch/riscv/boot/dts/spacemit/k3-bs01dcma.dtsi describing the
module itself, and then an
arch/riscv/boot/dts/spacemit/k3-bs01dcma-<something>.dts that
describes the extra peripherals that can be accessed when the module
is plugged into the server.
Unfortunately Dong didn't yet give me the name of the server using the
BS01DCMA modules that they showcased in Shenzhen.
/Emil
> Signed-off-by: Troy Mitchell <troy.mitchell@xxxxxxxxxxxxxxxxxx>
> ---
> arch/riscv/boot/dts/spacemit/Makefile | 1 +
> arch/riscv/boot/dts/spacemit/k3-bs01dcma.dts | 266 +++++++++++++++++++++++++++
> 2 files changed, 267 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
> index 851b701e5da4..09d17fef995d 100644
> --- a/arch/riscv/boot/dts/spacemit/Makefile
> +++ b/arch/riscv/boot/dts/spacemit/Makefile
> @@ -5,6 +5,7 @@ dtb-$(CONFIG_ARCH_SPACEMIT) += k1-milkv-jupiter.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-musepi-pro.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-r2s.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
> +dtb-$(CONFIG_ARCH_SPACEMIT) += k3-bs01dcma.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k3-com260-ifx.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k3-deepcomputing-fml13v05.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k3-pico-itx.dtb
> diff --git a/arch/riscv/boot/dts/spacemit/k3-bs01dcma.dts b/arch/riscv/boot/dts/spacemit/k3-bs01dcma.dts
> new file mode 100644
> index 000000000000..0c3b4ccd105c
> --- /dev/null
> +++ b/arch/riscv/boot/dts/spacemit/k3-bs01dcma.dts
> @@ -0,0 +1,266 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (c) 2026 SpacemiT (Hangzhou) Technology Co. Ltd
> + */
> +
> +#include "k3.dtsi"
> +#include "k3-pinctrl.dtsi"
> +
> +/ {
> + model = "SpacemiT K3 BS01DCMA";
> + compatible = "spacemit,k3-bs01dcma", "spacemit,k3";
> +
> + aliases {
> + serial0 = &uart0;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + memory@100000000 {
> + device_type = "memory";
> + reg = <0x1 0x00000000 0x4 0x00000000>;
> + };
> +
> + reg_5v_sys: regulator-5v-sys {
> + compatible = "regulator-fixed";
> + regulator-name = "P5V0_SYS";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + };
> +};
> +
> +&i2c2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c2_1_cfg>;
> + status = "okay";
> +
> + eeprom@50 {
> + compatible = "atmel,24c02";
> + reg = <0x50>;
> + pagesize = <8>;
> + read-only;
> + size = <256>;
> + status = "okay";
> +
> + nvmem-layout {
> + compatible = "onie,tlv-layout";
> +
> + mac-address {
> + #nvmem-cell-cells = <1>;
> + };
> +
> + num-macs {
> + };
> +
> + product-name {
> + };
> +
> + serial-number {
> + };
> + };
> + };
> +};
> +
> +&i2c8 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c8_cfg>;
> + status = "okay";
> +
> + pmic@41 {
> + compatible = "spacemit,p1";
> + reg = <0x41>;
> + interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
> + vin1-supply = <®_5v_sys>;
> + vin2-supply = <®_5v_sys>;
> + vin3-supply = <®_5v_sys>;
> + vin4-supply = <®_5v_sys>;
> + vin5-supply = <®_5v_sys>;
> + vin6-supply = <®_5v_sys>;
> + aldoin-supply = <®_5v_sys>;
> + dldoin1-supply = <&buck4>;
> + dldoin2-supply = <&buck4>;
> +
> + regulators {
> + buck1: buck1 {
> + regulator-min-microvolt = <1050000>;
> + regulator-max-microvolt = <1050000>;
> + regulator-ramp-delay = <5000>;
> + regulator-always-on;
> + };
> +
> + buck2: buck2 {
> + regulator-min-microvolt = <1050000>;
> + regulator-max-microvolt = <1050000>;
> + regulator-ramp-delay = <5000>;
> + regulator-always-on;
> + };
> +
> + buck3: buck3 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <800000>;
> + regulator-ramp-delay = <5000>;
> + regulator-always-on;
> + };
> +
> + buck4: buck4 {
> + regulator-min-microvolt = <2100000>;
> + regulator-max-microvolt = <2100000>;
> + regulator-ramp-delay = <5000>;
> + regulator-always-on;
> + };
> +
> + buck5: buck5 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-ramp-delay = <5000>;
> + regulator-always-on;
> + };
> +
> + buck6: buck6 {
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <500000>;
> + regulator-ramp-delay = <5000>;
> + regulator-always-on;
> + };
> +
> + aldo1: aldo1 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + aldo2: aldo2 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + aldo3: aldo3 {
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <3400000>;
> + };
> +
> + aldo4: aldo4 {
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + dldo1: dldo1 {
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + dldo2: dldo2 {
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <900000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + dldo3: dldo3 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + dldo4: dldo4 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + dldo5: dldo5 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + dldo6: dldo6 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + dldo7: dldo7 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> + };
> + };
> +};
> +
> +&qspi {
> + pinctrl-names = "default";
> + pinctrl-0 = <&qspi_cfg>;
> + status = "okay";
> +
> + flash@0 {
> + compatible = "jedec,spi-nor";
> + reg = <0>;
> + spi-max-frequency = <26500000>;
> + spi-rx-bus-width = <4>;
> + spi-tx-bus-width = <4>;
> + m25p,fast-read;
> +
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + bootinfo@0 {
> + reg = <0x0 0x20000>;
> + };
> +
> + fsbl@20000 {
> + reg = <0x20000 0x80000>;
> + };
> +
> + env@a0000 {
> + reg = <0xa0000 0x10000>;
> + };
> +
> + esos@b0000 {
> + reg = <0xb0000 0x100000>;
> + };
> +
> + opensbi@1b0000 {
> + reg = <0x1b0000 0x60000>;
> + };
> +
> + uboot@210000 {
> + reg = <0x210000 0x5f0000>;
> + };
> + };
> + };
> +};
> +
> +&qspi_cfg {
> + qspi-pins {
> + power-source = <1800>;
> + };
> +
> + qspi-cs0-pins {
> + power-source = <1800>;
> + };
> +};
> +
> +&uart0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart0_0_cfg>;
> + status = "okay";
> +};
>
> --
> 2.56.0
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-riscv