From ec2b8f9a3c179e2da7722413c2216bc8556a5364 Mon Sep 17 00:00:00 2001 From: Zoltan HERPAI Date: Fri, 15 Mar 2024 14:05:55 +0100 Subject: [PATCH] starfive: add MilkV Mars support The Milkv Mars is a development board based on the Starfive JH7110 SoC. The board features: - JH7110 SoC - 1/2/4/8 GiB LPDDR4 DRAM - AXP15060 PMIC - 40 pin GPIO header - 3x USB 3.0 host port - 1x USB 2.0 host port - 1x M.2 E-Key - 1x eMMC slot - 1x MicroSD slot - 1x QSPI Flash - 1x 1Gbps Ethernet port - 1x HDMI port - 1x 2-lane DSI and 1x 4-lane DSI - 1x 2-lane CSI Installation: Standard SD-card installation via dd-ing the generated image to an SD-card of at least 256Mb. Signed-off-by: Zoltan HERPAI --- .../jh7110-visionfive2-mars-common.dtsi | 617 ++++++++++++++++++ target/linux/starfive/image/Makefile | 8 + .../patches-6.1/1100-prepare-milkv-mars.patch | 295 +++++++++ 3 files changed, 920 insertions(+) create mode 100644 target/linux/starfive/files-6.1/arch/riscv/boot/dts/starfive/jh7110-visionfive2-mars-common.dtsi create mode 100644 target/linux/starfive/patches-6.1/1100-prepare-milkv-mars.patch diff --git a/target/linux/starfive/files-6.1/arch/riscv/boot/dts/starfive/jh7110-visionfive2-mars-common.dtsi b/target/linux/starfive/files-6.1/arch/riscv/boot/dts/starfive/jh7110-visionfive2-mars-common.dtsi new file mode 100644 index 0000000000..72f527a9e7 --- /dev/null +++ b/target/linux/starfive/files-6.1/arch/riscv/boot/dts/starfive/jh7110-visionfive2-mars-common.dtsi @@ -0,0 +1,617 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2022 StarFive Technology Co., Ltd. + * Copyright (C) 2022 Emil Renner Berthing + */ + +/dts-v1/; +#include "jh7110.dtsi" +#include "jh7110-pinfunc.h" +#include + +/ { + aliases { + ethernet0 = &gmac0; + i2c0 = &i2c0; + i2c2 = &i2c2; + i2c5 = &i2c5; + i2c6 = &i2c6; + mmc0 = &mmc0; + mmc1 = &mmc1; + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory@40000000 { + device_type = "memory"; + reg = <0x0 0x40000000 0x1 0x0>; + }; + + gpio-restart { + compatible = "gpio-restart"; + gpios = <&sysgpio 35 GPIO_ACTIVE_HIGH>; + priority = <224>; + }; + + pwmdac_codec: audio-codec { + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0>; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "StarFive-PWMDAC-Sound-Card"; + #address-cells = <1>; + #size-cells = <0>; + + simple-audio-card,dai-link@0 { + reg = <0>; + format = "left_j"; + bitclock-master = <&sndcpu0>; + frame-master = <&sndcpu0>; + + sndcpu0: cpu { + sound-dai = <&pwmdac>; + }; + + codec { + sound-dai = <&pwmdac_codec>; + }; + }; + }; +}; + +&cpus { + timebase-frequency = <4000000>; +}; + +&dvp_clk { + clock-frequency = <74250000>; +}; + +&gmac0_rgmii_rxin { + clock-frequency = <125000000>; +}; + +&gmac0_rmii_refin { + clock-frequency = <50000000>; +}; + +&hdmitx0_pixelclk { + clock-frequency = <297000000>; +}; + +&i2srx_bclk_ext { + clock-frequency = <12288000>; +}; + +&i2srx_lrck_ext { + clock-frequency = <192000>; +}; + +&i2stx_bclk_ext { + clock-frequency = <12288000>; +}; + +&i2stx_lrck_ext { + clock-frequency = <192000>; +}; + +&mclk_ext { + clock-frequency = <12288000>; +}; + +&osc { + clock-frequency = <24000000>; +}; + +&rtc_osc { + clock-frequency = <32768>; +}; + +&tdm_ext { + clock-frequency = <49152000>; +}; + +&gmac0 { + phy-handle = <&phy0>; + phy-mode = "rgmii-id"; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + compatible = "snps,dwmac-mdio"; + + phy0: ethernet-phy@0 { + reg = <0>; + }; + }; +}; + +&i2c0 { + clock-frequency = <100000>; + i2c-sda-hold-time-ns = <300>; + i2c-sda-falling-time-ns = <510>; + i2c-scl-falling-time-ns = <510>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + status = "okay"; +}; + +&i2c2 { + clock-frequency = <100000>; + i2c-sda-hold-time-ns = <300>; + i2c-sda-falling-time-ns = <510>; + i2c-scl-falling-time-ns = <510>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c2_pins>; + status = "okay"; +}; + +&i2c5 { + clock-frequency = <100000>; + i2c-sda-hold-time-ns = <300>; + i2c-sda-falling-time-ns = <510>; + i2c-scl-falling-time-ns = <510>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c5_pins>; + status = "okay"; + + axp15060: pmic@36 { + compatible = "x-powers,axp15060"; + reg = <0x36>; + interrupts = <0>; + interrupt-controller; + #interrupt-cells = <1>; + + regulators { + vcc_3v3: dcdc1 { + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc_3v3"; + }; + + vdd_cpu: dcdc2 { + regulator-always-on; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1540000>; + regulator-name = "vdd-cpu"; + }; + + emmc_vdd: aldo4 { + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "emmc_vdd"; + }; + }; + }; +}; + +&i2c6 { + clock-frequency = <100000>; + i2c-sda-hold-time-ns = <300>; + i2c-sda-falling-time-ns = <510>; + i2c-scl-falling-time-ns = <510>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c6_pins>; + status = "okay"; +}; + +&i2srx { + pinctrl-names = "default"; + pinctrl-0 = <&i2srx_pins>; + status = "okay"; +}; + +&i2stx0 { + pinctrl-names = "default"; + pinctrl-0 = <&mclk_ext_pins>; + status = "okay"; +}; + +&i2stx1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2stx1_pins>; + status = "okay"; +}; + +&mmc0 { + max-frequency = <100000000>; + assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>; + assigned-clock-rates = <50000000>; + bus-width = <8>; + cap-mmc-highspeed; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + cap-mmc-hw-reset; + post-power-on-delay-ms = <200>; + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins>; + vmmc-supply = <&vcc_3v3>; + vqmmc-supply = <&emmc_vdd>; + status = "okay"; +}; + +&mmc1 { + max-frequency = <100000000>; + assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>; + assigned-clock-rates = <50000000>; + bus-width = <4>; + no-sdio; + no-mmc; + cap-sd-highspeed; + post-power-on-delay-ms = <200>; + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins>; + status = "okay"; +}; + +&pwmdac { + pinctrl-names = "default"; + pinctrl-0 = <&pwmdac_pins>; + status = "okay"; +}; + +&qspi { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + nor_flash: flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + cdns,read-delay = <5>; + spi-max-frequency = <12000000>; + cdns,tshsl-ns = <1>; + cdns,tsd2d-ns = <1>; + cdns,tchsh-ns = <1>; + cdns,tslch-ns = <1>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + spl@0 { + reg = <0x0 0x80000>; + }; + uboot-env@f0000 { + reg = <0xf0000 0x10000>; + }; + uboot@100000 { + reg = <0x100000 0x400000>; + }; + reserved-data@600000 { + reg = <0x600000 0xa00000>; + }; + }; + }; +}; + +&spi0 { + pinctrl-names = "default"; + pinctrl-0 = <&spi0_pins>; + status = "okay"; + + spi_dev0: spi@0 { + compatible = "rohm,dh2228fv"; + reg = <0>; + spi-max-frequency = <10000000>; + }; +}; + +&sysgpio { + i2c0_pins: i2c0-0 { + i2c-pins { + pinmux = , + ; + bias-disable; /* external pull-up */ + input-enable; + input-schmitt-enable; + }; + }; + + i2c2_pins: i2c2-0 { + i2c-pins { + pinmux = , + ; + bias-disable; /* external pull-up */ + input-enable; + input-schmitt-enable; + }; + }; + + i2c5_pins: i2c5-0 { + i2c-pins { + pinmux = , + ; + bias-disable; /* external pull-up */ + input-enable; + input-schmitt-enable; + }; + }; + + i2c6_pins: i2c6-0 { + i2c-pins { + pinmux = , + ; + bias-disable; /* external pull-up */ + input-enable; + input-schmitt-enable; + }; + }; + + i2srx_pins: i2srx-0 { + clk-sd-pins { + pinmux = , + , + , + , + ; + input-enable; + }; + }; + + i2stx1_pins: i2stx1-0 { + sd-pins { + pinmux = ; + bias-disable; + input-disable; + }; + }; + + mclk_ext_pins: mclk-ext-0 { + mclk-ext-pins { + pinmux = ; + input-enable; + }; + }; + + mmc0_pins: mmc0-0 { + rst-pins { + pinmux = ; + bias-pull-up; + drive-strength = <12>; + input-disable; + input-schmitt-disable; + slew-rate = <0>; + }; + + mmc-pins { + pinmux = , + , + , + , + , + , + , + , + , + ; + bias-pull-up; + drive-strength = <12>; + input-enable; + }; + }; + + mmc1_pins: mmc1-0 { + clk-pins { + pinmux = ; + bias-pull-up; + drive-strength = <12>; + input-disable; + input-schmitt-disable; + slew-rate = <0>; + }; + + mmc-pins { + pinmux = , + , + , + , + ; + bias-pull-up; + drive-strength = <12>; + input-enable; + input-schmitt-enable; + slew-rate = <0>; + }; + }; + + pwmdac_pins: pwmdac-0 { + pwmdac-pins { + pinmux = , + ; + bias-disable; + drive-strength = <2>; + input-disable; + input-schmitt-disable; + slew-rate = <0>; + }; + }; + + spi0_pins: spi0-0 { + mosi-pins { + pinmux = ; + bias-disable; + input-disable; + input-schmitt-disable; + }; + + miso-pins { + pinmux = ; + bias-pull-up; + input-enable; + input-schmitt-enable; + }; + + sck-pins { + pinmux = ; + bias-disable; + input-disable; + input-schmitt-disable; + }; + + ss-pins { + pinmux = ; + bias-disable; + input-disable; + input-schmitt-disable; + }; + }; + + tdm_pins: tdm-0 { + tx-pins { + pinmux = ; + bias-pull-up; + drive-strength = <2>; + input-disable; + input-schmitt-disable; + slew-rate = <0>; + }; + + rx-pins { + pinmux = ; + input-enable; + }; + + sync-pins { + pinmux = ; + input-enable; + }; + + pcmclk-pins { + pinmux = ; + input-enable; + }; + }; + + uart0_pins: uart0-0 { + tx-pins { + pinmux = ; + bias-disable; + drive-strength = <12>; + input-disable; + input-schmitt-disable; + slew-rate = <0>; + }; + + rx-pins { + pinmux = ; + bias-disable; /* external pull-up */ + drive-strength = <2>; + input-enable; + input-schmitt-enable; + slew-rate = <0>; + }; + }; +}; + +&tdm { + pinctrl-names = "default"; + pinctrl-0 = <&tdm_pins>; + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins>; + status = "okay"; +}; + +&usb0 { + dr_mode = "peripheral"; + status = "okay"; +}; + +&U74_1 { + cpu-supply = <&vdd_cpu>; +}; + +&U74_2 { + cpu-supply = <&vdd_cpu>; +}; + +&U74_3 { + cpu-supply = <&vdd_cpu>; +}; + +&U74_4 { + cpu-supply = <&vdd_cpu>; +}; diff --git a/target/linux/starfive/image/Makefile b/target/linux/starfive/image/Makefile index 51bc9c3cc6..304bcea2fa 100644 --- a/target/linux/starfive/image/Makefile +++ b/target/linux/starfive/image/Makefile @@ -48,6 +48,14 @@ define Device/JH7100 IMAGE/sdcard.img.gz := boot-scr-jh7100 | riscv-sdcard | append-metadata | gzip endef +define Device/marsv + DEVICE_VENDOR := MilkV + DEVICE_MODEL := Mars + DEVICE_DTS := starfive/jh7110-milkv-mars + DEVICE_PACKAGES := kmod-eeprom-at24 kmod-pcie-starfive kmod-usb3 kmod-usb-cdns3-starfive +endef +TARGET_DEVICES += marsv + define Device/visionfive2-v1.2a DEVICE_VENDOR := StarFive DEVICE_MODEL := VisionFive2 v1.2a diff --git a/target/linux/starfive/patches-6.1/1100-prepare-milkv-mars.patch b/target/linux/starfive/patches-6.1/1100-prepare-milkv-mars.patch new file mode 100644 index 0000000000..8b67ea1a32 --- /dev/null +++ b/target/linux/starfive/patches-6.1/1100-prepare-milkv-mars.patch @@ -0,0 +1,295 @@ +From patchwork Wed Jan 31 13:25:55 2024 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Jisheng Zhang +X-Patchwork-Id: 13539465 +X-Patchwork-Delegate: mail@conchuod.ie +Return-Path: + +X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on + aws-us-west-2-korg-lkml-1.web.codeaurora.org +Received: from bombadil.infradead.org (bombadil.infradead.org + [198.137.202.133]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by smtp.lore.kernel.org (Postfix) with ESMTPS id 9A057C47DB3 + for ; Wed, 31 Jan 2024 13:39:02 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=bombadil.20210309; h=Sender: + Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: + List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: + Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: + Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: + List-Owner; bh=cY6El/CPJPDHncI9Xn9M0M/cJsq53qeMazMM3S8fSMY=; b=MsN69yH3adknAz + piJfuDseOpb0AMRQYo88pNGU2VSQYq0Pa9AFQ1Djn7FyOLu2n0erh/Dys9dsUdY41Tlpb44N8eD74 + bgnCy9htpjMrEgG3JEYMRckYkJEJWMkP0Wg7XBpy2HnBw1K4LYZruWRYS8VgrpZG5VFGtaVpRmZd3 + hjezKmadEP1vFdTATtw37DHlgamJC18Oq0TnoTkGIXE1/uknMQ1LDEG9A4deT44/m6+O8aECmyOYu + BfdOLJeeoKlaub72Dsd3xC+8TlRzrhecnGDnsA41bN3TtjavRXxmCAuRuuTzZzWTMvM3kkrWW2vvE + GmtHNMhkDebMdS/g+1ew==; +Received: from localhost ([::1] helo=bombadil.infradead.org) + by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) + id 1rVAnr-00000003eqd-3vnx; + Wed, 31 Jan 2024 13:38:59 +0000 +Received: from dfw.source.kernel.org ([139.178.84.217]) + by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) + id 1rVAnn-00000003eoc-2sIY + for linux-riscv@lists.infradead.org; + Wed, 31 Jan 2024 13:38:56 +0000 +Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) + by dfw.source.kernel.org (Postfix) with ESMTP id 3FF3861782; + Wed, 31 Jan 2024 13:38:55 +0000 (UTC) +Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0DE6BC433F1; + Wed, 31 Jan 2024 13:38:52 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; + s=k20201202; t=1706708335; + bh=cveEm9XYzqaufx9fWhL/pSd3M6JBh+uL9vWXxxLn510=; + h=From:To:Cc:Subject:Date:In-Reply-To:References:From; + b=MQO2HbYn8TlZaNSKK4VljVZMWR1KBBRWjUcgtw+kXim93UgjIQV2U+4gvoa/XJ+Go + /fwRSuVJ4QvbVjVuIWxWr4sMCzqZ1Nv+5HlYMAqF2Jwq6LIUrE7tX3cs9XofB0QFwa + kZBVldQZU2ZIao0vzTfcLZ6fbFleNYxKUaNg/d8z+MG5Eu4Dc7UZ3O02FPUCJtZ9ye + /6F/ohRadWj5PR+0LXtiibDE6INNH5LltmYu2Ww3fkYhd7M3PJL9VMIuIFpPLFSQBu + ixf8kRIZZksXqCwFLnbgV5lynjNRpZjJgDvtv1Ybw09Q9nX9DJJEgp/fFVEptl7VB+ + gci2Zl31Ecrcw== +From: Jisheng Zhang +To: Conor Dooley , + Rob Herring , + Krzysztof Kozlowski , + Paul Walmsley , + Palmer Dabbelt , + Albert Ou , + Emil Renner Berthing +Cc: linux-riscv@lists.infradead.org, + devicetree@vger.kernel.org, + linux-kernel@vger.kernel.org +Subject: [PATCH v3 1/6] riscv: dts: starfive: add 'cpus' label to jh7110 and + jh7100 soc dtsi +Date: Wed, 31 Jan 2024 21:25:55 +0800 +Message-ID: <20240131132600.4067-2-jszhang@kernel.org> +X-Mailer: git-send-email 2.43.0 +In-Reply-To: <20240131132600.4067-1-jszhang@kernel.org> +References: <20240131132600.4067-1-jszhang@kernel.org> +MIME-Version: 1.0 +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20240131_053855_811807_37F59038 +X-CRM114-Status: UNSURE ( 9.74 ) +X-CRM114-Notice: Please train this message. +X-BeenThere: linux-riscv@lists.infradead.org +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Sender: "linux-riscv" +Errors-To: + linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org + +Add the 'cpus' label so that we can reference it in board dts files. + +Signed-off-by: Jisheng Zhang +--- + arch/riscv/boot/dts/starfive/jh7100.dtsi | 2 +- + arch/riscv/boot/dts/starfive/jh7110.dtsi | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/riscv/boot/dts/starfive/jh7100.dtsi b/arch/riscv/boot/dts/starfive/jh7100.dtsi +index c216aaecac53..b2d36685db5b 100644 +--- a/arch/riscv/boot/dts/starfive/jh7100.dtsi ++++ b/arch/riscv/boot/dts/starfive/jh7100.dtsi +@@ -13,7 +13,7 @@ / { + #address-cells = <2>; + #size-cells = <2>; + +- cpus { ++ cpus: cpus { + #address-cells = <1>; + #size-cells = <0>; + +diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi +index 45213cdf50dc..5a6ff90685e5 100644 +--- a/arch/riscv/boot/dts/starfive/jh7110.dtsi ++++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi +@@ -15,7 +15,7 @@ / { + #address-cells = <2>; + #size-cells = <2>; + +- cpus { ++ cpus: cpus { + #address-cells = <1>; + #size-cells = <0>; + + +From patchwork Wed Jan 31 13:26:00 2024 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Jisheng Zhang +X-Patchwork-Id: 13539470 +X-Patchwork-Delegate: mail@conchuod.ie +Return-Path: + +X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on + aws-us-west-2-korg-lkml-1.web.codeaurora.org +Received: from bombadil.infradead.org (bombadil.infradead.org + [198.137.202.133]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by smtp.lore.kernel.org (Postfix) with ESMTPS id 042B3C47258 + for ; Wed, 31 Jan 2024 13:39:19 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=bombadil.20210309; h=Sender: + Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: + List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: + Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: + Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: + List-Owner; bh=Wq0nuXoEjkCYz4bFdZQHcqchV+bsjjTuhijbMoFuaIo=; b=2LJLnILiZJ6Mon + k5lcuK7vZUIx8YEIOZMBl/YarXXG5MjEPN62cmzWoG+xe/pDmkYw3A3vUfUXNLSIEMVuHHNdbpBAf + WWeIrj9EU9Lx/lHmVcYerShIDr+O5o2LgJVSAQrN9JB8LQtDfmUwpq1IzQ4FE6rppSRNU2lRRfkMU + m5aXfNLFx5JGvsaiCDGOtYc72eX+eQe8AwCVxvfPMCcWFdJrTp6i7H5KHmglOi9pYg0io67lfJ0hB + 06ocPKfjXVQLYO36wlaBPICQzl4fSQvGCbwe6x2/1Flom5LFqhVhAV5d6Xr1eifrDbFoq/LORs/ys + QGA+LRckwyvor2E5VtYg==; +Received: from localhost ([::1] helo=bombadil.infradead.org) + by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) + id 1rVAo8-00000003f3G-18GF; + Wed, 31 Jan 2024 13:39:16 +0000 +Received: from dfw.source.kernel.org ([139.178.84.217]) + by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) + id 1rVAo1-00000003exZ-0frQ + for linux-riscv@lists.infradead.org; + Wed, 31 Jan 2024 13:39:10 +0000 +Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) + by dfw.source.kernel.org (Postfix) with ESMTP id 837B161776; + Wed, 31 Jan 2024 13:39:08 +0000 (UTC) +Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52F90C43394; + Wed, 31 Jan 2024 13:39:06 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; + s=k20201202; t=1706708348; + bh=TEoBcq07sKA3KFqE6Y9J+f8ZeVl1OlpAdt/o3ypscuU=; + h=From:To:Cc:Subject:Date:In-Reply-To:References:From; + b=mWOWLa7WXNfP1YOMkESI+rwFi+vG5JrXK+27N1W7D82vzATNcbM+rd7sEvct75LdN + Z4h/5yWfBGzeXGEbSV9uNqHRubMWPDhrAorFYh7TDaKYqA64mOH9w89KxaCnu/QdVI + 4XorwyCRCdPOFX7vNbnzg5+gpo/0L3+lO0gyhtcG1gQS20BAhprkphv4y5m9fK9sqf + 5uD4BY2g38tJgACQ6aLU+Luhyt47+QryIJ0XAq6wnkQSXQiC9REo5utXbCZ48N5pFd + GnoAepkaw71YmsY/7S8lKn9rB8D0IUw/s3zFvUeJ4YvE0NxiLoQQ2es+n1HjkHeQIB + q3pjaSbgZRSSg== +From: Jisheng Zhang +To: Conor Dooley , + Rob Herring , + Krzysztof Kozlowski , + Paul Walmsley , + Palmer Dabbelt , + Albert Ou , + Emil Renner Berthing +Cc: linux-riscv@lists.infradead.org, + devicetree@vger.kernel.org, + linux-kernel@vger.kernel.org +Subject: [PATCH v3 6/6] riscv: dts: starfive: add Milkv Mars board device tree +Date: Wed, 31 Jan 2024 21:26:00 +0800 +Message-ID: <20240131132600.4067-7-jszhang@kernel.org> +X-Mailer: git-send-email 2.43.0 +In-Reply-To: <20240131132600.4067-1-jszhang@kernel.org> +References: <20240131132600.4067-1-jszhang@kernel.org> +MIME-Version: 1.0 +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20240131_053909_407057_B6ACB4CC +X-CRM114-Status: GOOD ( 12.51 ) +X-BeenThere: linux-riscv@lists.infradead.org +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Sender: "linux-riscv" +Errors-To: + linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org + +The Milkv Mars is a development board based on the Starfive JH7110 SoC. +The board features: + +- JH7110 SoC +- 1/2/4/8 GiB LPDDR4 DRAM +- AXP15060 PMIC +- 40 pin GPIO header +- 3x USB 3.0 host port +- 1x USB 2.0 host port +- 1x M.2 E-Key +- 1x eMMC slot +- 1x MicroSD slot +- 1x QSPI Flash +- 1x 1Gbps Ethernet port +- 1x HDMI port +- 1x 2-lane DSI and 1x 4-lane DSI +- 1x 2-lane CSI + +Add the devicetree file describing the currently supported features, +namely PMIC, UART, I2C, GPIO, SD card, QSPI Flash, eMMC and Ethernet. + +Signed-off-by: Jisheng Zhang +--- + arch/riscv/boot/dts/starfive/Makefile | 1 + + .../boot/dts/starfive/jh7110-milkv-mars.dts | 35 +++++++++++++++++++ + 2 files changed, 36 insertions(+) + create mode 100644 arch/riscv/boot/dts/starfive/jh7110-milkv-mars.dts + +diff --git a/arch/riscv/boot/dts/starfive/Makefile b/arch/riscv/boot/dts/starfive/Makefile +index 0141504c0f5c..2fa0cd7f31c3 100644 +--- a/arch/riscv/boot/dts/starfive/Makefile ++++ b/arch/riscv/boot/dts/starfive/Makefile +@@ -8,5 +8,6 @@ DTC_FLAGS_jh7110-starfive-visionfive-2-v1.3b := -@ + dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-beaglev-starlight.dtb + dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-starfive-visionfive-v1.dtb + ++dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-milkv-mars.dtb + dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.2a.dtb + dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.3b.dtb +diff --git a/arch/riscv/boot/dts/starfive/jh7110-milkv-mars.dts b/arch/riscv/boot/dts/starfive/jh7110-milkv-mars.dts +new file mode 100644 +index 000000000000..de600e799e7d +--- /dev/null ++++ b/arch/riscv/boot/dts/starfive/jh7110-milkv-mars.dts +@@ -0,0 +1,35 @@ ++// SPDX-License-Identifier: GPL-2.0 OR MIT ++/* ++ * Copyright (C) 2023 Jisheng Zhang ++ */ ++ ++/dts-v1/; ++#include "jh7110-visionfive2-mars-common.dtsi" ++ ++/ { ++ model = "Milk-V Mars"; ++ compatible = "milkv,mars", "starfive,jh7110"; ++}; ++ ++&gmac0 { ++ starfive,tx-use-rgmii-clk; ++ assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>; ++ assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>; ++}; ++ ++ ++&phy0 { ++ motorcomm,tx-clk-adj-enabled; ++ motorcomm,tx-clk-10-inverted; ++ motorcomm,tx-clk-100-inverted; ++ motorcomm,tx-clk-1000-inverted; ++ motorcomm,rx-clk-drv-microamp = <3970>; ++ motorcomm,rx-data-drv-microamp = <2910>; ++ rx-internal-delay-ps = <1500>; ++ tx-internal-delay-ps = <1500>; ++}; ++ ++&mmc1 { ++ disable-wp; ++ cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>; ++}; -- 2.30.2