RISC-V Devicetrees for v6.11
T-Head: Last change from me before this starts going via Drew's tree is the addition of the SBI PMU events node for the th1520. StarFive: A dts for the Pin64 Star64, another board with a jh7110 SoC. This board is almost identical to the existing Milk-v Mars and VisionFive 2 boards that are already support - just with a different PHY configuration and only one of the two PCIe ports exposed. Additionally, the Mars and VisionFive 2 get their PCie configuration added. Microchip: A dts for the BeagleV Fire. PCIe is disabled on it for now, as some binding and driver changes are required. Signed-off-by: Conor Dooley <conor.dooley@microchip.com> -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCZorVOAAKCRB4tDGHoIJi 0j35AQDgZyo3BkwRVpEqGo4GXNWvOPPfiEAuQ+m8hlnDG8PteQD+LOkcfjK/Y2Bk vj6vhJYGy/9yODRXaI756szEf6VGDg8= =Tefh -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmaL/p0ACgkQYKtH/8kJ UicuDQ/9EQiTkV7dluXIl1/imUBIR1cxqH7nLDjy4A7aC5woNBIPKJA0yDI9DAGn 1hDcQG9zqLNmtpPtfXnlIFMmHoA2DF3UNH+34/RjHkPoweg2J+t+k0SdYL+DRbJi cdLNChYScauZAzOllMLR82Z4k8bBNYAUheF/yMnRL6m928slx1bxYMp7u080VhVA eN3RbLlsvyeifl/wyhH+U7WgQvvJ5WtVfq3bEGjUo26izGTIqh6FBiguBcj0yGvH 5tOT6NKtXfuZQPivo6hDGaedgz6FDjfGBGSk48Cg6arcktHNAeyUNwjIMv19w+si FW8LZiNXFB8l3nVO/CoqjEcwO5Z2dyeJvp7CQSOcJYm/3XoQSnH38nm0Qmf6+NWY pJ3wG0CIbPgSAt2bbumtYW/WRRtrBUEU0de5aZzXGH/iK3aF0bdkQAKj9DOmnc1h 3dhYkxSXPMbtuS6Zf9zvlchiRyN+CnVhAzqQlf4ibQ6NgfHS9c/ZyKsbRbHGRJGm Q5XH/9XgSEp4hCr8/U0e3ZPnuBe1IBfAW2BTVLoKKmWpq/VLqiHvxxrlF9B8ufoU /j0tEGqNSC+aUCFvZtn9FMb+KPaQCqj/qRRuFaLlA2zfrv7PTOl9w6sEa6x3+PoL u/AIvwsZW1ptuN5Ou72gybxOL/zIEd9urchfAZfDQ+6DoXENgTw= =tdm/ -----END PGP SIGNATURE----- Merge tag 'riscv-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt RISC-V Devicetrees for v6.11 T-Head: Last change from me before this starts going via Drew's tree is the addition of the SBI PMU events node for the th1520. StarFive: A dts for the Pin64 Star64, another board with a jh7110 SoC. This board is almost identical to the existing Milk-v Mars and VisionFive 2 boards that are already support - just with a different PHY configuration and only one of the two PCIe ports exposed. Additionally, the Mars and VisionFive 2 get their PCie configuration added. Microchip: A dts for the BeagleV Fire. PCIe is disabled on it for now, as some binding and driver changes are required. Signed-off-by: Conor Dooley <conor.dooley@microchip.com> * tag 'riscv-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux: riscv: dts: starfive: add PCIe dts configuration for JH7110 riscv: dts: microchip: add an initial devicetree for the BeagleV Fire dt-bindings: riscv: microchip: document beaglev-fire riscv: dts: starfive: Update flash partition layout riscv: dts: thead: th1520: Add PMU event node riscv: dts: starfive: add Star64 board devicetree dt-bindings: riscv: starfive: add Star64 board compatible dt-bindings: riscv: Add T-HEAD C908 compatible Link: https://lore.kernel.org/r/20240707-nuttiness-lustfully-4aaf03c991b2@spud Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
31f6b5a651
@ -47,6 +47,7 @@ properties:
|
||||
- sifive,u74
|
||||
- sifive,u74-mc
|
||||
- thead,c906
|
||||
- thead,c908
|
||||
- thead,c910
|
||||
- thead,c920
|
||||
- const: riscv
|
||||
|
@ -29,6 +29,7 @@ properties:
|
||||
- enum:
|
||||
- aldec,tysom-m-mpfs250t-rev2
|
||||
- aries,m100pfsevp
|
||||
- beagle,beaglev-fire
|
||||
- microchip,mpfs-sev-kit
|
||||
- sundance,polarberry
|
||||
- const: microchip,mpfs
|
||||
|
@ -27,6 +27,7 @@ properties:
|
||||
- items:
|
||||
- enum:
|
||||
- milkv,mars
|
||||
- pine64,star64
|
||||
- starfive,visionfive-2-v1.2a
|
||||
- starfive,visionfive-2-v1.3b
|
||||
- const: starfive,jh7110
|
||||
|
@ -1,4 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-beaglev-fire.dtb
|
||||
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-icicle-kit.dtb
|
||||
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-m100pfsevp.dtb
|
||||
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-polarberry.dtb
|
||||
|
82
arch/riscv/boot/dts/microchip/mpfs-beaglev-fire-fabric.dtsi
Normal file
82
arch/riscv/boot/dts/microchip/mpfs-beaglev-fire-fabric.dtsi
Normal file
@ -0,0 +1,82 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
|
||||
/ {
|
||||
fabric_clk3: fabric-clk3 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <50000000>;
|
||||
};
|
||||
|
||||
fabric_clk1: fabric-clk1 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <125000000>;
|
||||
};
|
||||
|
||||
fabric-bus@40000000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x40000000 0x0 0x40000000 0x0 0x20000000>, /* FIC3-FAB */
|
||||
<0x0 0x60000000 0x0 0x60000000 0x0 0x20000000>, /* FIC0, LO */
|
||||
<0x0 0xe0000000 0x0 0xe0000000 0x0 0x20000000>, /* FIC1, LO */
|
||||
<0x20 0x0 0x20 0x0 0x10 0x0>, /* FIC0,HI */
|
||||
<0x30 0x0 0x30 0x0 0x10 0x0>; /* FIC1,HI */
|
||||
|
||||
cape_gpios_p8: gpio@41100000 {
|
||||
compatible = "microchip,coregpio-rtl-v3";
|
||||
reg = <0x0 0x41100000 0x0 0x1000>;
|
||||
clocks = <&fabric_clk3>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <16>;
|
||||
gpio-line-names = "P8_PIN31", "P8_PIN32", "P8_PIN33", "P8_PIN34",
|
||||
"P8_PIN35", "P8_PIN36", "P8_PIN37", "P8_PIN38",
|
||||
"P8_PIN39", "P8_PIN40", "P8_PIN41", "P8_PIN42",
|
||||
"P8_PIN43", "P8_PIN44", "P8_PIN45", "P8_PIN46";
|
||||
};
|
||||
|
||||
cape_gpios_p9: gpio@41200000 {
|
||||
compatible = "microchip,coregpio-rtl-v3";
|
||||
reg = <0x0 0x41200000 0x0 0x1000>;
|
||||
clocks = <&fabric_clk3>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <20>;
|
||||
gpio-line-names = "P9_PIN11", "P9_PIN12", "P9_PIN13", "P9_PIN14",
|
||||
"P9_PIN15", "P9_PIN16", "P9_PIN17", "P9_PIN18",
|
||||
"P9_PIN21", "P9_PIN22", "P9_PIN23", "P9_PIN24",
|
||||
"P9_PIN25", "P9_PIN26", "P9_PIN27", "P9_PIN28",
|
||||
"P9_PIN29", "P9_PIN31", "P9_PIN41", "P9_PIN42";
|
||||
};
|
||||
|
||||
hsi_gpios: gpio@44000000 {
|
||||
compatible = "microchip,coregpio-rtl-v3";
|
||||
reg = <0x0 0x44000000 0x0 0x1000>;
|
||||
clocks = <&fabric_clk3>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <20>;
|
||||
gpio-line-names = "B0_HSIO70N", "B0_HSIO71N", "B0_HSIO83N",
|
||||
"B0_HSIO73N_C2P_CLKN", "B0_HSIO70P", "B0_HSIO71P",
|
||||
"B0_HSIO83P", "B0_HSIO73N_C2P_CLKP", "XCVR1_RX_VALID",
|
||||
"XCVR1_LOCK", "XCVR1_ERROR", "XCVR2_RX_VALID",
|
||||
"XCVR2_LOCK", "XCVR2_ERROR", "XCVR3_RX_VALID",
|
||||
"XCVR3_LOCK", "XCVR3_ERROR", "XCVR_0B_REF_CLK_PLL_LOCK",
|
||||
"XCVR_0C_REF_CLK_PLL_LOCK", "B0_HSIO81N";
|
||||
};
|
||||
};
|
||||
|
||||
refclk_ccc: cccrefclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&ccc_nw {
|
||||
clocks = <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>,
|
||||
<&refclk_ccc>, <&refclk_ccc>;
|
||||
clock-names = "pll0_ref0", "pll0_ref1", "pll1_ref0", "pll1_ref1",
|
||||
"dll0_ref", "dll1_ref";
|
||||
status = "okay";
|
||||
};
|
223
arch/riscv/boot/dts/microchip/mpfs-beaglev-fire.dts
Normal file
223
arch/riscv/boot/dts/microchip/mpfs-beaglev-fire.dts
Normal file
@ -0,0 +1,223 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/* Copyright (c) 2020-2021 Microchip Technology Inc */
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include "mpfs.dtsi"
|
||||
#include "mpfs-beaglev-fire-fabric.dtsi"
|
||||
|
||||
/* Clock frequency (in Hz) of MTIMER */
|
||||
#define MTIMER_FREQ 1000000
|
||||
|
||||
/ {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
model = "BeagleBoard BeagleV-Fire";
|
||||
compatible = "beagle,beaglev-fire", "microchip,mpfs";
|
||||
|
||||
aliases {
|
||||
serial0 = &mmuart0;
|
||||
serial1 = &mmuart1;
|
||||
serial2 = &mmuart2;
|
||||
serial3 = &mmuart3;
|
||||
serial4 = &mmuart4;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
cpus {
|
||||
timebase-frequency = <MTIMER_FREQ>;
|
||||
};
|
||||
|
||||
ddrc_cache_lo: memory@80000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x0 0x40000000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
hss: hss-buffer@103fc00000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x10 0x3fc00000 0x0 0x400000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
imx219_clk: camera-clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
|
||||
imx219_vana: fixedregulator-0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "imx219_vana";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
};
|
||||
|
||||
imx219_vdig: fixedregulator-1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "imx219_vdig";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
imx219_vddl: fixedregulator-2 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "imx219_vddl";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&gpio2 {
|
||||
interrupts = <53>, <53>, <53>, <53>,
|
||||
<53>, <53>, <53>, <53>,
|
||||
<53>, <53>, <53>, <53>,
|
||||
<53>, <53>, <53>, <53>,
|
||||
<53>, <53>, <53>, <53>,
|
||||
<53>, <53>, <53>, <53>,
|
||||
<53>, <53>, <53>, <53>,
|
||||
<53>, <53>, <53>, <53>;
|
||||
ngpios=<32>;
|
||||
gpio-line-names = "P8_PIN3_USER_LED_0", "P8_PIN4_USER_LED_1", "P8_PIN5_USER_LED_2",
|
||||
"P8_PIN6_USER_LED_3", "P8_PIN7_USER_LED_4", "P8_PIN8_USER_LED_5",
|
||||
"P8_PIN9_USER_LED_6", "P8_PIN10_USER_LED_7", "P8_PIN11_USER_LED_8",
|
||||
"P8_PIN12_USER_LED_9", "P8_PIN13_USER_LED_10", "P8_PIN14_USER_LED_11",
|
||||
"P8_PIN15", "P8_PIN16", "P8_PIN17", "P8_PIN18", "P8_PIN19", "P8_PIN20",
|
||||
"P8_PIN21", "P8_PIN22", "P8_PIN23", "P8_PIN24", "P8_PIN25", "P8_PIN26",
|
||||
"P8_PIN27", "P8_PIN28", "P8_PIN29", "P8_PIN30", "M2_W_DISABLE1",
|
||||
"M2_W_DISABLE2", "VIO_ENABLE", "SD_DET";
|
||||
status = "okay";
|
||||
|
||||
vio-enable-hog {
|
||||
gpio-hog;
|
||||
gpios = <30 30>;
|
||||
output-high;
|
||||
line-name = "VIO_ENABLE";
|
||||
};
|
||||
|
||||
sd-det-hog {
|
||||
gpio-hog;
|
||||
gpios = <31 31>;
|
||||
input;
|
||||
line-name = "SD_DET";
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
|
||||
eeprom: eeprom@50 {
|
||||
compatible = "atmel,24c32";
|
||||
reg = <0x50>;
|
||||
};
|
||||
|
||||
imx219: sensor@10 {
|
||||
compatible = "sony,imx219";
|
||||
reg = <0x10>;
|
||||
clocks = <&imx219_clk>;
|
||||
VANA-supply = <&imx219_vana>; /* 2.8v */
|
||||
VDIG-supply = <&imx219_vdig>; /* 1.8v */
|
||||
VDDL-supply = <&imx219_vddl>; /* 1.2v */
|
||||
|
||||
port {
|
||||
imx219_0: endpoint {
|
||||
data-lanes = <1 2>;
|
||||
clock-noncontinuous;
|
||||
link-frequencies = /bits/ 64 <456000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mac0 {
|
||||
status = "okay";
|
||||
phy-mode = "sgmii";
|
||||
phy-handle = <&phy0>;
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&mbox {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc {
|
||||
bus-width = <4>;
|
||||
disable-wp;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr50;
|
||||
sd-uhs-sdr104;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmuart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmuart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&refclk {
|
||||
clock-frequency = <125000000>;
|
||||
};
|
||||
|
||||
&refclk_ccc {
|
||||
clock-frequency = <50000000>;
|
||||
};
|
||||
|
||||
&rtc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&syscontroller {
|
||||
microchip,bitstream-flash = <&sys_ctrl_flash>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&syscontroller_qspi {
|
||||
status = "okay";
|
||||
|
||||
sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
|
||||
compatible = "jedec,spi-nor";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
spi-max-frequency = <20000000>;
|
||||
spi-rx-bus-width = <1>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
dr_mode = "otg";
|
||||
};
|
@ -9,5 +9,6 @@ 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-pine64-star64.dtb
|
||||
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.2a.dtb
|
||||
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.3b.dtb
|
||||
|
@ -294,6 +294,20 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
perst-gpios = <&sysgpio 26 GPIO_ACTIVE_LOW>;
|
||||
phys = <&pciephy0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie0_pins>;
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
perst-gpios = <&sysgpio 28 GPIO_ACTIVE_LOW>;
|
||||
phys = <&pciephy1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie1_pins>;
|
||||
};
|
||||
|
||||
&pwmdac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwmdac_pins>;
|
||||
@ -321,16 +335,13 @@
|
||||
#size-cells = <1>;
|
||||
|
||||
spl@0 {
|
||||
reg = <0x0 0x80000>;
|
||||
reg = <0x0 0xf0000>;
|
||||
};
|
||||
uboot-env@f0000 {
|
||||
reg = <0xf0000 0x10000>;
|
||||
};
|
||||
uboot@100000 {
|
||||
reg = <0x100000 0x400000>;
|
||||
};
|
||||
reserved-data@600000 {
|
||||
reg = <0x600000 0xa00000>;
|
||||
reg = <0x100000 0xf00000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -476,6 +487,54 @@
|
||||
};
|
||||
};
|
||||
|
||||
pcie0_pins: pcie0-0 {
|
||||
clkreq-pins {
|
||||
pinmux = <GPIOMUX(27, GPOUT_LOW,
|
||||
GPOEN_DISABLE,
|
||||
GPI_NONE)>;
|
||||
bias-pull-down;
|
||||
drive-strength = <2>;
|
||||
input-enable;
|
||||
input-schmitt-disable;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
|
||||
wake-pins {
|
||||
pinmux = <GPIOMUX(32, GPOUT_LOW,
|
||||
GPOEN_DISABLE,
|
||||
GPI_NONE)>;
|
||||
bias-pull-up;
|
||||
drive-strength = <2>;
|
||||
input-enable;
|
||||
input-schmitt-disable;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
pcie1_pins: pcie1-0 {
|
||||
clkreq-pins {
|
||||
pinmux = <GPIOMUX(29, GPOUT_LOW,
|
||||
GPOEN_DISABLE,
|
||||
GPI_NONE)>;
|
||||
bias-pull-down;
|
||||
drive-strength = <2>;
|
||||
input-enable;
|
||||
input-schmitt-disable;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
|
||||
wake-pins {
|
||||
pinmux = <GPIOMUX(21, GPOUT_LOW,
|
||||
GPOEN_DISABLE,
|
||||
GPI_NONE)>;
|
||||
bias-pull-up;
|
||||
drive-strength = <2>;
|
||||
input-enable;
|
||||
input-schmitt-disable;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
pwmdac_pins: pwmdac-0 {
|
||||
pwmdac-pins {
|
||||
pinmux = <GPIOMUX(33, GPOUT_SYS_PWMDAC_LEFT,
|
||||
|
@ -17,6 +17,13 @@
|
||||
assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&phy0 {
|
||||
motorcomm,tx-clk-adj-enabled;
|
||||
|
65
arch/riscv/boot/dts/starfive/jh7110-pine64-star64.dts
Normal file
65
arch/riscv/boot/dts/starfive/jh7110-pine64-star64.dts
Normal file
@ -0,0 +1,65 @@
|
||||
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
||||
/*
|
||||
* Copyright (C) 2024 Henry Bell <dmoo_dv@protonmail.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "jh7110-common.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Pine64 Star64";
|
||||
compatible = "pine64,star64", "starfive,jh7110";
|
||||
aliases {
|
||||
ethernet1 = &gmac1;
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
starfive,tx-use-rgmii-clk;
|
||||
assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>;
|
||||
assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
phy-handle = <&phy1>;
|
||||
phy-mode = "rgmii-id";
|
||||
starfive,tx-use-rgmii-clk;
|
||||
assigned-clocks = <&syscrg JH7110_SYSCLK_GMAC1_TX>;
|
||||
assigned-clock-parents = <&syscrg JH7110_SYSCLK_GMAC1_RMII_RTX>;
|
||||
status = "okay";
|
||||
|
||||
mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "snps,dwmac-mdio";
|
||||
|
||||
phy1: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&phy0 {
|
||||
rx-internal-delay-ps = <1900>;
|
||||
tx-internal-delay-ps = <1500>;
|
||||
motorcomm,rx-clk-drv-microamp = <2910>;
|
||||
motorcomm,rx-data-drv-microamp = <2910>;
|
||||
motorcomm,tx-clk-adj-enabled;
|
||||
motorcomm,tx-clk-10-inverted;
|
||||
motorcomm,tx-clk-100-inverted;
|
||||
motorcomm,tx-clk-1000-inverted;
|
||||
};
|
||||
|
||||
&phy1 {
|
||||
rx-internal-delay-ps = <0>;
|
||||
tx-internal-delay-ps = <300>;
|
||||
motorcomm,rx-clk-drv-microamp = <2910>;
|
||||
motorcomm,rx-data-drv-microamp = <2910>;
|
||||
motorcomm,tx-clk-adj-enabled;
|
||||
motorcomm,tx-clk-10-inverted;
|
||||
motorcomm,tx-clk-100-inverted;
|
||||
};
|
@ -32,3 +32,11 @@
|
||||
&mmc0 {
|
||||
non-removable;
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -1214,5 +1214,91 @@
|
||||
#reset-cells = <1>;
|
||||
power-domains = <&pwrc JH7110_PD_VOUT>;
|
||||
};
|
||||
|
||||
pcie0: pcie@940000000 {
|
||||
compatible = "starfive,jh7110-pcie";
|
||||
reg = <0x9 0x40000000 0x0 0x1000000>,
|
||||
<0x0 0x2b000000 0x0 0x100000>;
|
||||
reg-names = "cfg", "apb";
|
||||
linux,pci-domain = <0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
ranges = <0x82000000 0x0 0x30000000 0x0 0x30000000 0x0 0x08000000>,
|
||||
<0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
|
||||
interrupts = <56>;
|
||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||
interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>,
|
||||
<0x0 0x0 0x0 0x2 &pcie_intc0 0x2>,
|
||||
<0x0 0x0 0x0 0x3 &pcie_intc0 0x3>,
|
||||
<0x0 0x0 0x0 0x4 &pcie_intc0 0x4>;
|
||||
msi-controller;
|
||||
device_type = "pci";
|
||||
starfive,stg-syscon = <&stg_syscon>;
|
||||
bus-range = <0x0 0xff>;
|
||||
clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
|
||||
<&stgcrg JH7110_STGCLK_PCIE0_TL>,
|
||||
<&stgcrg JH7110_STGCLK_PCIE0_AXI_MST0>,
|
||||
<&stgcrg JH7110_STGCLK_PCIE0_APB>;
|
||||
clock-names = "noc", "tl", "axi_mst0", "apb";
|
||||
resets = <&stgcrg JH7110_STGRST_PCIE0_AXI_MST0>,
|
||||
<&stgcrg JH7110_STGRST_PCIE0_AXI_SLV0>,
|
||||
<&stgcrg JH7110_STGRST_PCIE0_AXI_SLV>,
|
||||
<&stgcrg JH7110_STGRST_PCIE0_BRG>,
|
||||
<&stgcrg JH7110_STGRST_PCIE0_CORE>,
|
||||
<&stgcrg JH7110_STGRST_PCIE0_APB>;
|
||||
reset-names = "mst0", "slv0", "slv", "brg",
|
||||
"core", "apb";
|
||||
status = "disabled";
|
||||
|
||||
pcie_intc0: interrupt-controller {
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
pcie1: pcie@9c0000000 {
|
||||
compatible = "starfive,jh7110-pcie";
|
||||
reg = <0x9 0xc0000000 0x0 0x1000000>,
|
||||
<0x0 0x2c000000 0x0 0x100000>;
|
||||
reg-names = "cfg", "apb";
|
||||
linux,pci-domain = <1>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
ranges = <0x82000000 0x0 0x38000000 0x0 0x38000000 0x0 0x08000000>,
|
||||
<0xc3000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>;
|
||||
interrupts = <57>;
|
||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||
interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc1 0x1>,
|
||||
<0x0 0x0 0x0 0x2 &pcie_intc1 0x2>,
|
||||
<0x0 0x0 0x0 0x3 &pcie_intc1 0x3>,
|
||||
<0x0 0x0 0x0 0x4 &pcie_intc1 0x4>;
|
||||
msi-controller;
|
||||
device_type = "pci";
|
||||
starfive,stg-syscon = <&stg_syscon>;
|
||||
bus-range = <0x0 0xff>;
|
||||
clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
|
||||
<&stgcrg JH7110_STGCLK_PCIE1_TL>,
|
||||
<&stgcrg JH7110_STGCLK_PCIE1_AXI_MST0>,
|
||||
<&stgcrg JH7110_STGCLK_PCIE1_APB>;
|
||||
clock-names = "noc", "tl", "axi_mst0", "apb";
|
||||
resets = <&stgcrg JH7110_STGRST_PCIE1_AXI_MST0>,
|
||||
<&stgcrg JH7110_STGRST_PCIE1_AXI_SLV0>,
|
||||
<&stgcrg JH7110_STGRST_PCIE1_AXI_SLV>,
|
||||
<&stgcrg JH7110_STGRST_PCIE1_BRG>,
|
||||
<&stgcrg JH7110_STGRST_PCIE1_CORE>,
|
||||
<&stgcrg JH7110_STGRST_PCIE1_APB>;
|
||||
reset-names = "mst0", "slv0", "slv", "brg",
|
||||
"core", "apb";
|
||||
status = "disabled";
|
||||
|
||||
pcie_intc1: interrupt-controller {
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -122,6 +122,87 @@
|
||||
};
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "riscv,pmu";
|
||||
riscv,event-to-mhpmcounters =
|
||||
<0x00003 0x00003 0x0007fff8>,
|
||||
<0x00004 0x00004 0x0007fff8>,
|
||||
<0x00005 0x00005 0x0007fff8>,
|
||||
<0x00006 0x00006 0x0007fff8>,
|
||||
<0x00007 0x00007 0x0007fff8>,
|
||||
<0x00008 0x00008 0x0007fff8>,
|
||||
<0x00009 0x00009 0x0007fff8>,
|
||||
<0x0000a 0x0000a 0x0007fff8>,
|
||||
<0x10000 0x10000 0x0007fff8>,
|
||||
<0x10001 0x10001 0x0007fff8>,
|
||||
<0x10002 0x10002 0x0007fff8>,
|
||||
<0x10003 0x10003 0x0007fff8>,
|
||||
<0x10010 0x10010 0x0007fff8>,
|
||||
<0x10011 0x10011 0x0007fff8>,
|
||||
<0x10012 0x10012 0x0007fff8>,
|
||||
<0x10013 0x10013 0x0007fff8>;
|
||||
riscv,event-to-mhpmevent =
|
||||
<0x00003 0x00000000 0x00000001>,
|
||||
<0x00004 0x00000000 0x00000002>,
|
||||
<0x00006 0x00000000 0x00000006>,
|
||||
<0x00005 0x00000000 0x00000007>,
|
||||
<0x00007 0x00000000 0x00000008>,
|
||||
<0x00008 0x00000000 0x00000009>,
|
||||
<0x00009 0x00000000 0x0000000a>,
|
||||
<0x0000a 0x00000000 0x0000000b>,
|
||||
<0x10000 0x00000000 0x0000000c>,
|
||||
<0x10001 0x00000000 0x0000000d>,
|
||||
<0x10002 0x00000000 0x0000000e>,
|
||||
<0x10003 0x00000000 0x0000000f>,
|
||||
<0x10010 0x00000000 0x00000010>,
|
||||
<0x10011 0x00000000 0x00000011>,
|
||||
<0x10012 0x00000000 0x00000012>,
|
||||
<0x10013 0x00000000 0x00000013>;
|
||||
riscv,raw-event-to-mhpmcounters =
|
||||
<0x00000000 0x00000001 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000002 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000003 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000004 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000005 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000006 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000007 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000008 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000009 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000000a 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000000b 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000000c 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000000d 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000000e 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000000f 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000010 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000011 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000012 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000013 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000014 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000015 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000016 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000017 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000018 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000019 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000001a 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000001b 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000001c 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000001d 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000001e 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000001f 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000020 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000021 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000022 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000023 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000024 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000025 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000026 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000027 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000028 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x00000029 0xffffffff 0xffffffff 0x0007fff8>,
|
||||
<0x00000000 0x0000002a 0xffffffff 0xffffffff 0x0007fff8>;
|
||||
};
|
||||
|
||||
osc: oscillator {
|
||||
compatible = "fixed-clock";
|
||||
clock-output-names = "osc_24m";
|
||||
|
Loading…
Reference in New Issue
Block a user