]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
riscv: dts: sophgo: add Sophgo SG2042_EVB_V1.X board device tree
authorHan Gao <rabenda.cn@gmail.com>
Sat, 5 Jul 2025 07:39:55 +0000 (15:39 +0800)
committerInochi Amaoto <inochiama@gmail.com>
Wed, 23 Jul 2025 01:55:16 +0000 (09:55 +0800)
Sophgo SG2042_EVB_V1.X [1] is a prototype development board based on SG2042

Currently supports serial port, sdcard/emmc, pwm, fan speed control.

Link: https://github.com/sophgo/sophgo-hardware/tree/master/SG2042/SG2042-x8-EVB
Signed-off-by: Han Gao <rabenda.cn@gmail.com>
Reviewed-by: Nutty Liu <liujingqi@lanxincomputing.com>
Reviewed-by: Chen Wang <unicorn_wang@outlook.com>
Link: https://lore.kernel.org/r/27091134ce1f8a6541a349afc324d6f7402ea606.1751700954.git.rabenda.cn@gmail.com
Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
Signed-off-by: Chen Wang <wangchen20@iscas.ac.cn>
arch/riscv/boot/dts/sophgo/Makefile
arch/riscv/boot/dts/sophgo/sg2042-evb-v1.dts [new file with mode: 0644]

index 85966306801eeca0a04a2c37721f8da7c6624539..6c9b29681cad7390df4f92fb3f63dd8ab1909d9b 100644 (file)
@@ -3,4 +3,5 @@ dtb-$(CONFIG_ARCH_SOPHGO) += cv1800b-milkv-duo.dtb
 dtb-$(CONFIG_ARCH_SOPHGO) += cv1812h-huashan-pi.dtb
 dtb-$(CONFIG_ARCH_SOPHGO) += sg2002-licheerv-nano-b.dtb
 dtb-$(CONFIG_ARCH_SOPHGO) += sg2042-milkv-pioneer.dtb
+dtb-$(CONFIG_ARCH_SOPHGO) += sg2042-evb-v1.dtb
 dtb-$(CONFIG_ARCH_SOPHGO) += sg2044-sophgo-srd3-10.dtb
diff --git a/arch/riscv/boot/dts/sophgo/sg2042-evb-v1.dts b/arch/riscv/boot/dts/sophgo/sg2042-evb-v1.dts
new file mode 100644 (file)
index 0000000..3320bc1
--- /dev/null
@@ -0,0 +1,245 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2025 Sophgo Technology Inc. All rights reserved.
+ */
+
+#include "sg2042.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Sophgo SG2042 EVB V1.X";
+       compatible = "sophgo,sg2042-evb-v1", "sophgo,sg2042";
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       gpio-power {
+               compatible = "gpio-keys";
+
+               key-power {
+                       label = "Power Key";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&port0a 22 GPIO_ACTIVE_HIGH>;
+                       linux,input-type = <EV_KEY>;
+                       debounce-interval = <100>;
+               };
+       };
+
+       pwmfan: pwm-fan {
+               compatible = "pwm-fan";
+               cooling-levels = <103 128 179 230 255>;
+               pwms = <&pwm 0 40000 0>;
+               #cooling-cells = <2>;
+       };
+
+       thermal-zones {
+               soc-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&mcu 0>;
+
+                       trips {
+                               soc_active1: soc-active1 {
+                                       temperature = <30000>;
+                                       hysteresis = <8000>;
+                                       type = "active";
+                               };
+
+                               soc_active2: soc-active2 {
+                                       temperature = <58000>;
+                                       hysteresis = <12000>;
+                                       type = "active";
+                               };
+
+                               soc_active3: soc-active3 {
+                                       temperature = <70000>;
+                                       hysteresis = <10000>;
+                                       type = "active";
+                               };
+
+                               soc_hot: soc-hot {
+                                       temperature = <80000>;
+                                       hysteresis = <5000>;
+                                       type = "hot";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&soc_active1>;
+                                       cooling-device = <&pwmfan 0 1>;
+                               };
+
+                               map1 {
+                                       trip = <&soc_active2>;
+                                       cooling-device = <&pwmfan 1 2>;
+                               };
+
+                               map2 {
+                                       trip = <&soc_active3>;
+                                       cooling-device = <&pwmfan 2 3>;
+                               };
+
+                               map3 {
+                                       trip = <&soc_hot>;
+                                       cooling-device = <&pwmfan 3 4>;
+                               };
+                       };
+               };
+
+               board-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&mcu 1>;
+
+                       trips {
+                               board_active: board-active {
+                                       temperature = <75000>;
+                                       hysteresis = <8000>;
+                                       type = "active";
+                               };
+                       };
+
+                       cooling-maps {
+                               map4 {
+                                       trip = <&board_active>;
+                                       cooling-device = <&pwmfan 3 4>;
+                               };
+                       };
+               };
+       };
+};
+
+&cgi_main {
+       clock-frequency = <25000000>;
+};
+
+&cgi_dpll0 {
+       clock-frequency = <25000000>;
+};
+
+&cgi_dpll1 {
+       clock-frequency = <25000000>;
+};
+
+&emmc {
+       pinctrl-0 = <&emmc_cfg>;
+       pinctrl-names = "default";
+       bus-width = <4>;
+       no-sdio;
+       no-sd;
+       non-removable;
+       wp-inverted;
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-0 = <&i2c1_cfg>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       mcu: syscon@17 {
+               compatible = "sophgo,sg2042-hwmon-mcu";
+               reg = <0x17>;
+               #thermal-sensor-cells = <1>;
+       };
+};
+
+&gmac0 {
+       phy-handle = <&phy0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       mdio {
+               phy0: phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       reset-gpios = <&port0a 27 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <100000>;
+                       reset-deassert-us = <100000>;
+               };
+       };
+};
+
+&pinctrl {
+       emmc_cfg: sdhci-emmc-cfg {
+               sdhci-emmc-wp-pins {
+                       pinmux = <PINMUX(PIN_EMMC_WP, 0)>;
+                       bias-disable;
+                       drive-strength-microamp = <26800>;
+                       input-schmitt-disable;
+               };
+
+               sdhci-emmc-cd-pins {
+                       pinmux = <PINMUX(PIN_EMMC_CD, 0)>;
+                       bias-pull-up;
+                       drive-strength-microamp = <26800>;
+                       input-schmitt-enable;
+               };
+
+               sdhci-emmc-rst-pwr-pins {
+                       pinmux = <PINMUX(PIN_EMMC_RST, 0)>,
+                                <PINMUX(PIN_EMMC_PWR_EN, 0)>;
+                       bias-disable;
+                       drive-strength-microamp = <26800>;
+                       input-schmitt-disable;
+               };
+       };
+
+       i2c1_cfg: i2c1-cfg {
+               i2c1-pins {
+                       pinmux = <PINMUX(PIN_IIC1_SDA, 0)>,
+                                <PINMUX(PIN_IIC1_SCL, 0)>;
+                       bias-pull-up;
+                       drive-strength-microamp = <26800>;
+                       input-schmitt-enable;
+               };
+       };
+
+       sd_cfg: sdhci-sd-cfg {
+               sdhci-sd-cd-wp-pins {
+                       pinmux = <PINMUX(PIN_SDIO_CD, 0)>,
+                                <PINMUX(PIN_SDIO_WP, 0)>;
+                       bias-pull-up;
+                       drive-strength-microamp = <26800>;
+                       input-schmitt-enable;
+               };
+
+               sdhci-sd-rst-pwr-pins {
+                       pinmux = <PINMUX(PIN_SDIO_RST, 0)>,
+                                <PINMUX(PIN_SDIO_PWR_EN, 0)>;
+                       bias-disable;
+                       drive-strength-microamp = <26800>;
+                       input-schmitt-disable;
+               };
+       };
+
+       uart0_cfg: uart0-cfg {
+               uart0-rx-pins {
+                       pinmux = <PINMUX(PIN_UART0_TX, 0)>,
+                                <PINMUX(PIN_UART0_RX, 0)>;
+                       bias-pull-up;
+                       drive-strength-microamp = <26800>;
+                       input-schmitt-enable;
+               };
+       };
+};
+
+&sd {
+       pinctrl-0 = <&sd_cfg>;
+       pinctrl-names = "default";
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+       wp-inverted;
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-0 = <&uart0_cfg>;
+       pinctrl-names = "default";
+       status = "okay";
+};