123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- From 76bc84c399f11c7d6a37fe68cbd5f182e4c18369 Mon Sep 17 00:00:00 2001
- From: Emil Renner Berthing <[email protected]>
- Date: Sat, 1 Apr 2023 19:19:33 +0800
- Subject: [PATCH 023/122] riscv: dts: starfive: Add StarFive JH7110 VisionFive
- 2 board device tree
- Add a minimal device tree for StarFive JH7110 VisionFive 2 board
- which has version A and version B. Support booting and basic
- clock/reset/pinctrl/uart drivers.
- Tested-by: Tommaso Merciai <[email protected]>
- Reviewed-by: Conor Dooley <[email protected]>
- Acked-by: Conor Dooley <[email protected]>
- Signed-off-by: Emil Renner Berthing <[email protected]>
- Co-developed-by: Jianlong Huang <[email protected]>
- Signed-off-by: Jianlong Huang <[email protected]>
- Co-developed-by: Hal Feng <[email protected]>
- Signed-off-by: Hal Feng <[email protected]>
- Reviewed-by: Emil Renner Berthing <[email protected]>
- Signed-off-by: Conor Dooley <[email protected]>
- ---
- arch/riscv/boot/dts/starfive/Makefile | 6 +-
- .../jh7110-starfive-visionfive-2-v1.2a.dts | 13 ++
- .../jh7110-starfive-visionfive-2-v1.3b.dts | 13 ++
- .../jh7110-starfive-visionfive-2.dtsi | 215 ++++++++++++++++++
- 4 files changed, 246 insertions(+), 1 deletion(-)
- create mode 100644 arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2-v1.2a.dts
- create mode 100644 arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2-v1.3b.dts
- create mode 100644 arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi
- --- a/arch/riscv/boot/dts/starfive/Makefile
- +++ b/arch/riscv/boot/dts/starfive/Makefile
- @@ -1,2 +1,6 @@
- # SPDX-License-Identifier: GPL-2.0
- -dtb-$(CONFIG_SOC_STARFIVE) += jh7100-beaglev-starlight.dtb
- +dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-beaglev-starlight.dtb
- +dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-starfive-visionfive-v1.dtb
- +
- +dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.2a.dtb
- +dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.3b.dtb
- --- /dev/null
- +++ b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2-v1.2a.dts
- @@ -0,0 +1,13 @@
- +// SPDX-License-Identifier: GPL-2.0 OR MIT
- +/*
- + * Copyright (C) 2022 StarFive Technology Co., Ltd.
- + * Copyright (C) 2022 Emil Renner Berthing <[email protected]>
- + */
- +
- +/dts-v1/;
- +#include "jh7110-starfive-visionfive-2.dtsi"
- +
- +/ {
- + model = "StarFive VisionFive 2 v1.2A";
- + compatible = "starfive,visionfive-2-v1.2a", "starfive,jh7110";
- +};
- --- /dev/null
- +++ b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2-v1.3b.dts
- @@ -0,0 +1,13 @@
- +// SPDX-License-Identifier: GPL-2.0 OR MIT
- +/*
- + * Copyright (C) 2022 StarFive Technology Co., Ltd.
- + * Copyright (C) 2022 Emil Renner Berthing <[email protected]>
- + */
- +
- +/dts-v1/;
- +#include "jh7110-starfive-visionfive-2.dtsi"
- +
- +/ {
- + model = "StarFive VisionFive 2 v1.3B";
- + compatible = "starfive,visionfive-2-v1.3b", "starfive,jh7110";
- +};
- --- /dev/null
- +++ b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi
- @@ -0,0 +1,215 @@
- +// SPDX-License-Identifier: GPL-2.0 OR MIT
- +/*
- + * Copyright (C) 2022 StarFive Technology Co., Ltd.
- + * Copyright (C) 2022 Emil Renner Berthing <[email protected]>
- + */
- +
- +/dts-v1/;
- +#include "jh7110.dtsi"
- +#include "jh7110-pinfunc.h"
- +#include <dt-bindings/gpio/gpio.h>
- +
- +/ {
- + aliases {
- + i2c0 = &i2c0;
- + i2c2 = &i2c2;
- + i2c5 = &i2c5;
- + i2c6 = &i2c6;
- + serial0 = &uart0;
- + };
- +
- + chosen {
- + stdout-path = "serial0:115200n8";
- + };
- +
- + cpus {
- + timebase-frequency = <4000000>;
- + };
- +
- + memory@40000000 {
- + device_type = "memory";
- + reg = <0x0 0x40000000 0x1 0x0>;
- + };
- +
- + gpio-restart {
- + compatible = "gpio-restart";
- + gpios = <&sysgpio 35 GPIO_ACTIVE_HIGH>;
- + priority = <224>;
- + };
- +};
- +
- +&gmac0_rgmii_rxin {
- + clock-frequency = <125000000>;
- +};
- +
- +&gmac0_rmii_refin {
- + clock-frequency = <50000000>;
- +};
- +
- +&gmac1_rgmii_rxin {
- + clock-frequency = <125000000>;
- +};
- +
- +&gmac1_rmii_refin {
- + clock-frequency = <50000000>;
- +};
- +
- +&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>;
- +};
- +
- +&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";
- +};
- +
- +&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";
- +};
- +
- +&sysgpio {
- + i2c0_pins: i2c0-0 {
- + i2c-pins {
- + pinmux = <GPIOMUX(57, GPOUT_LOW,
- + GPOEN_SYS_I2C0_CLK,
- + GPI_SYS_I2C0_CLK)>,
- + <GPIOMUX(58, GPOUT_LOW,
- + GPOEN_SYS_I2C0_DATA,
- + GPI_SYS_I2C0_DATA)>;
- + bias-disable; /* external pull-up */
- + input-enable;
- + input-schmitt-enable;
- + };
- + };
- +
- + i2c2_pins: i2c2-0 {
- + i2c-pins {
- + pinmux = <GPIOMUX(3, GPOUT_LOW,
- + GPOEN_SYS_I2C2_CLK,
- + GPI_SYS_I2C2_CLK)>,
- + <GPIOMUX(2, GPOUT_LOW,
- + GPOEN_SYS_I2C2_DATA,
- + GPI_SYS_I2C2_DATA)>;
- + bias-disable; /* external pull-up */
- + input-enable;
- + input-schmitt-enable;
- + };
- + };
- +
- + i2c5_pins: i2c5-0 {
- + i2c-pins {
- + pinmux = <GPIOMUX(19, GPOUT_LOW,
- + GPOEN_SYS_I2C5_CLK,
- + GPI_SYS_I2C5_CLK)>,
- + <GPIOMUX(20, GPOUT_LOW,
- + GPOEN_SYS_I2C5_DATA,
- + GPI_SYS_I2C5_DATA)>;
- + bias-disable; /* external pull-up */
- + input-enable;
- + input-schmitt-enable;
- + };
- + };
- +
- + i2c6_pins: i2c6-0 {
- + i2c-pins {
- + pinmux = <GPIOMUX(16, GPOUT_LOW,
- + GPOEN_SYS_I2C6_CLK,
- + GPI_SYS_I2C6_CLK)>,
- + <GPIOMUX(17, GPOUT_LOW,
- + GPOEN_SYS_I2C6_DATA,
- + GPI_SYS_I2C6_DATA)>;
- + bias-disable; /* external pull-up */
- + input-enable;
- + input-schmitt-enable;
- + };
- + };
- +
- + uart0_pins: uart0-0 {
- + tx-pins {
- + pinmux = <GPIOMUX(5, GPOUT_SYS_UART0_TX,
- + GPOEN_ENABLE,
- + GPI_NONE)>;
- + bias-disable;
- + drive-strength = <12>;
- + input-disable;
- + input-schmitt-disable;
- + slew-rate = <0>;
- + };
- +
- + rx-pins {
- + pinmux = <GPIOMUX(6, GPOUT_LOW,
- + GPOEN_DISABLE,
- + GPI_SYS_UART0_RX)>;
- + bias-disable; /* external pull-up */
- + drive-strength = <2>;
- + input-enable;
- + input-schmitt-enable;
- + slew-rate = <0>;
- + };
- + };
- +};
- +
- +&uart0 {
- + pinctrl-names = "default";
- + pinctrl-0 = <&uart0_pins>;
- + status = "okay";
- +};
|