[PATCH v2 2/2] riscv: dts: canaan: Add initial dshanpi board DT files
Rob Herring
robh at kernel.org
Tue Jan 6 10:27:54 PST 2026
On Sun, Jan 04, 2026 at 03:09:11PM +0800, Jiayu Du wrote:
> Add board devicetree for 100ask K230 dashanpi, and also the SoM
> device utilized by the board. UART0 is enabled as the default
> console.
>
> Signed-off-by: Jiayu Du <jiayu.riscv at isrc.iscas.ac.cn>
> ---
> arch/riscv/boot/dts/canaan/Makefile | 1 +
> .../boot/dts/canaan/k230-canmv-dshanpi.dts | 82 +++++++++++++++++++
> .../dts/canaan/k230-canmv-module-dshanpi.dtsi | 30 +++++++
> 3 files changed, 113 insertions(+)
> create mode 100644 arch/riscv/boot/dts/canaan/k230-canmv-dshanpi.dts
> create mode 100644 arch/riscv/boot/dts/canaan/k230-canmv-module-dshanpi.dtsi
>
> diff --git a/arch/riscv/boot/dts/canaan/Makefile b/arch/riscv/boot/dts/canaan/Makefile
> index 7d54ea5c6f3d..89cb64bde440 100644
> --- a/arch/riscv/boot/dts/canaan/Makefile
> +++ b/arch/riscv/boot/dts/canaan/Makefile
> @@ -2,6 +2,7 @@
> dtb-$(CONFIG_ARCH_CANAAN) += canaan_kd233.dtb
> dtb-$(CONFIG_ARCH_CANAAN) += k210_generic.dtb
> dtb-$(CONFIG_ARCH_CANAAN) += k230-canmv.dtb
> +dtb-$(CONFIG_ARCH_CANAAN) += k230-canmv-dshanpi.dtb
> dtb-$(CONFIG_ARCH_CANAAN) += k230-evb.dtb
> dtb-$(CONFIG_ARCH_CANAAN) += sipeed_maix_bit.dtb
> dtb-$(CONFIG_ARCH_CANAAN) += sipeed_maix_dock.dtb
> diff --git a/arch/riscv/boot/dts/canaan/k230-canmv-dshanpi.dts b/arch/riscv/boot/dts/canaan/k230-canmv-dshanpi.dts
> new file mode 100644
> index 000000000000..4f95b534ee87
> --- /dev/null
> +++ b/arch/riscv/boot/dts/canaan/k230-canmv-dshanpi.dts
> @@ -0,0 +1,82 @@
> +// SPDX-License-Identifier: GPL-2.0 OR MIT
> +/*
> + * Copyright (C) 2025 Jiayu Du <jiayu.riscv at isrc.iscas.ac.cn>
> + */
> +
> +/dts-v1/;
> +
> +#include "k230-canmv-module-dshanpi.dtsi"
> +
> +/ {
> + model = "100ask CanMV-K230-dshanpi";
> + compatible = "100ask,canmv-k230-dshanpi",
> + "100ask,canmv-k230-module-dshanpi",
> + "canaan,kendryte-k230";
> +
> + aliases {
> + serial0 = &uart0;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + vdd_5v: regulator-vdd-5v {
> + compatible = "regulator-fixed";
> + regulator-name = "vdd_5v";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + vdd_3v3: regulator-vdd-3v3 {
> + compatible = "regulator-fixed";
> + regulator-name = "vdd_3v3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + regulator-boot-on;
> + vin-supply = <&vdd_5v>;
> + };
> +
> + vdd_1v8: regulator-vdd-1v8 {
> + compatible = "regulator-fixed";
> + regulator-name = "vdd_1v8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + regulator-boot-on;
> + vin-supply = <&vdd_5v>;
> + };
> +};
> +
> +&pinctrl {
> + uart0_pins: uart0-pins {
> + uart0-txd-cfg {
> + pinmux = <K230_PINMUX(38, 1)>;
> + slew-rate = <0>;
> + drive-strength = <7>;
> + power-source = <K230_MSC_1V8>;
> + output-enable;
> + bias-disable;
> + input-schmitt-enable;
> + };
> +
> + uart0-rxd-cfg {
> + pinmux = <K230_PINMUX(39, 1)>;
> + slew-rate = <0>;
> + drive-strength = <7>;
> + power-source = <K230_MSC_1V8>;
> + input-enable;
> + bias-disable;
> + input-schmitt-enable;
> + };
> + };
> +};
> +
> +&uart0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart0_pins>;
> + status = "okay";
> +};
> diff --git a/arch/riscv/boot/dts/canaan/k230-canmv-module-dshanpi.dtsi b/arch/riscv/boot/dts/canaan/k230-canmv-module-dshanpi.dtsi
> new file mode 100644
> index 000000000000..ed0abc68f321
> --- /dev/null
> +++ b/arch/riscv/boot/dts/canaan/k230-canmv-module-dshanpi.dtsi
> @@ -0,0 +1,30 @@
> +// SPDX-License-Identifier: GPL-2.0 OR MIT
> +/*
> + * Copyright (C) 2025 Jiayu Du <jiayu.riscv at isrc.iscas.ac.cn>
> + */
> +
> +/dts-v1/;
> +
> +#include "k230.dtsi"
> +
> +/ {
> + model = "100ask CanMV-K230-Module-dshanpi";
> + compatible = "100ask,canmv-k230-module-dshanpi",
> + "canaan,kendryte-k230";
These get overwritten, but aren't really valid on their own. Drop.
> +
> + ddr: memory at 0 {
> + device_type = "memory";
> + reg = <0x0 0x0 0x0 0x40000000>;
> + };
> +
> + timerx_pulse_in: clock-50m {
clock-50000000
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <50000000>;
> + };
> +};
> +
> +&sysclk {
> + clocks = <&osc24m>, <&timerx_pulse_in>;
> + clock-names = "osc24m", "timer-pulse-in";
> +};
> --
> 2.52.0
>
More information about the linux-riscv
mailing list