Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/riscv/sophgo.yaml#
$id: http://devicetree.org/schemas/soc/sophgo/sophgo.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sophgo SoC-based boards
Expand All @@ -26,6 +26,11 @@ properties:
- enum:
- sophgo,huashan-pi
- const: sophgo,cv1812h
- items:
- enum:
- milkv,duo-module-01-evb
- const: milkv,duo-module-01
- const: sophgo,sg2000
- items:
- enum:
- sipeed,licheerv-nano-b
Expand Down
6 changes: 6 additions & 0 deletions arch/arm64/Kconfig.platforms
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,12 @@ config ARCH_INTEL_SOCFPGA
Stratix 10 (ex. Altera), Stratix10 Software Virtual Platform,
Agilex and eASIC N5X.

config ARCH_SOPHGO
bool "Sophgo SoCs"
select ARCH_HAS_RESET_CONTROLLER
help
This enables support for Sophgo SoC platform hardware.

config ARCH_STM32
bool "STMicroelectronics STM32 SoC Family"
select GPIOLIB
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ subdir-y += realtek
subdir-y += renesas
subdir-y += rockchip
subdir-y += socionext
subdir-y += sophgo
subdir-y += sprd
subdir-y += st
subdir-y += synaptics
Expand Down
2 changes: 2 additions & 0 deletions arch/arm64/boot/dts/sophgo/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_SOPHGO) += sg2000-milkv-duo-module-01-evb.dtb
76 changes: 76 additions & 0 deletions arch/arm64/boot/dts/sophgo/sg2000-milkv-duo-module-01-evb.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)

/dts-v1/;

#include "sg2000-milkv-duo-module-01.dtsi"

/ {
model = "Milk-V Duo Module 01 Evaluation Board";
compatible = "milkv,duo-module-01-evb", "milkv,duo-module-01", "sophgo,sg2000";

chosen {
stdout-path = "serial0:115200n8";
};
};

&pinctrl {
sdhci0_cfg: sdhci0-cfg {
sdhci0-cd-pins {
pinmux = <PINMUX(PIN_SD0_CD, 0)>;
bias-pull-up;
drive-strength-microamp = <10800>;
power-source = <3300>;
};

sdhci0-clk-pins {
pinmux = <PINMUX(PIN_SD0_CLK, 0)>;
bias-pull-up;
drive-strength-microamp = <16100>;
power-source = <3300>;
};

sdhci0-cmd-pins {
pinmux = <PINMUX(PIN_SD0_CMD, 0)>;
bias-pull-up;
drive-strength-microamp = <10800>;
power-source = <3300>;
};

sdhci0-data-pins {
pinmux = <PINMUX(PIN_SD0_D0, 0)>,
<PINMUX(PIN_SD0_D1, 0)>,
<PINMUX(PIN_SD0_D2, 0)>,
<PINMUX(PIN_SD0_D3, 0)>;
bias-pull-up;
drive-strength-microamp = <10800>;
power-source = <3300>;
};
};

uart0_cfg: uart0-cfg {
uart0-pins {
pinmux = <PINMUX(PIN_UART0_TX, 0)>,
<PINMUX(PIN_UART0_RX, 0)>;
bias-pull-up;
drive-strength-microamp = <10800>;
power-source = <3300>;
};
};
};

&uart0 {
pinctrl-0 = <&uart0_cfg>;
pinctrl-names = "default";
status = "okay";
};

&sdhci0 {
bus-width = <4>;
no-1-8-v;
no-mmc;
no-sdio;
disable-wp;
pinctrl-0 = <&sdhci0_cfg>;
pinctrl-names = "default";
status = "okay";
};
40 changes: 40 additions & 0 deletions arch/arm64/boot/dts/sophgo/sg2000-milkv-duo-module-01.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)

#include <dt-bindings/pinctrl/pinctrl-sg2000.h>
#include "sg2000.dtsi"

/ {
model = "Milk-V Duo Module 01";
compatible = "milkv,duo-module-01", "sophgo,sg2000";

aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
serial4 = &uart4;
};
};

&osc {
clock-frequency = <25000000>;
};

&emmc {
bus-width = <4>;
no-1-8-v;
cap-mmc-hw-reset;
no-sd;
no-sdio;
non-removable;
status = "okay";
};

/* Wi-Fi */
&sdhci1 {
bus-width = <4>;
cap-sdio-irq;
no-mmc;
no-sd;
non-removable;
};
86 changes: 86 additions & 0 deletions arch/arm64/boot/dts/sophgo/sg2000.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)

#define SOC_PERIPHERAL_IRQ(nr) GIC_SPI (nr)

#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <riscv/sophgo/cv180x.dtsi>
#include <riscv/sophgo/cv181x.dtsi>

/ {
compatible = "sophgo,sg2000";
interrupt-parent = <&gic>;

cpus {
#address-cells = <1>;
#size-cells = <0>;

cpu@0 {
compatible = "arm,cortex-a53";
device_type = "cpu";
reg = <0>;
enable-method = "psci";
i-cache-size = <32768>;
d-cache-size = <32768>;
next-level-cache = <&l2>;
};

l2: l2-cache {
compatible = "cache";
cache-level = <2>;
cache-unified;
cache-size = <0x20000>;
};
};

memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x20000000>; /* 512MiB */
};

pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
};

psci {
compatible = "arm,psci-0.2";
method = "smc";
cpu_on = <0xc4000003>;
cpu_off = <0x84000002>;
};

soc {
gic: interrupt-controller@1f01000 {
compatible = "arm,cortex-a15-gic";
interrupt-controller;
#interrupt-cells = <3>;
reg = <0x01f01000 0x1000>,
<0x01f02000 0x2000>;
};

pinctrl: pinctrl@3001000 {
compatible = "sophgo,sg2000-pinctrl";
reg = <0x03001000 0x1000>,
<0x05027000 0x1000>;
reg-names = "sys", "rtc";
};

clk: clock-controller@3002000 {
compatible = "sophgo,sg2000-clk";
reg = <0x03002000 0x1000>;
clocks = <&osc>;
#clock-cells = <1>;
};
};

timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
always-on;
clock-frequency = <25000000>;
};
};
4 changes: 4 additions & 0 deletions arch/arm64/configs/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ CONFIG_ARCH_RENESAS=y
CONFIG_ARCH_ROCKCHIP=y
CONFIG_ARCH_SEATTLE=y
CONFIG_ARCH_INTEL_SOCFPGA=y
CONFIG_ARCH_SOPHGO=y
CONFIG_ARCH_STM32=y
CONFIG_ARCH_SYNQUACER=y
CONFIG_ARCH_TEGRA=y
Expand Down Expand Up @@ -654,6 +655,7 @@ CONFIG_PINCTRL_SM8450_LPASS_LPI=m
CONFIG_PINCTRL_SC8280XP_LPASS_LPI=m
CONFIG_PINCTRL_SM8550_LPASS_LPI=m
CONFIG_PINCTRL_SM8650_LPASS_LPI=m
CONFIG_PINCTRL_SOPHGO_SG2000=y
CONFIG_GPIO_ALTERA=m
CONFIG_GPIO_DAVINCI=y
CONFIG_GPIO_DWAPB=y
Expand Down Expand Up @@ -1430,6 +1432,7 @@ CONFIG_QCOM_HFPLL=y
CONFIG_CLK_GFM_LPASS_SM8250=m
CONFIG_CLK_RCAR_USB2_CLOCK_SEL=y
CONFIG_CLK_RENESAS_VBATTB=m
CONFIG_CLK_SOPHGO_CV1800=y
CONFIG_HWSPINLOCK=y
CONFIG_HWSPINLOCK_OMAP=m
CONFIG_HWSPINLOCK_QCOM=y
Expand Down Expand Up @@ -1530,6 +1533,7 @@ CONFIG_QCOM_SPMI_VADC=m
CONFIG_QCOM_SPMI_ADC5=m
CONFIG_ROCKCHIP_SARADC=m
CONFIG_RZG2L_ADC=m
CONFIG_SOPHGO_CV1800B_ADC=m
CONFIG_TI_ADS1015=m
CONFIG_TI_AM335X_ADC=m
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
Expand Down
Loading