Skip to content

Commit

Permalink
uboot: rockchip: add nanopi r6c
Browse files Browse the repository at this point in the history
Signed-off-by: Marty Jones <[email protected]>
  • Loading branch information
mj22226 committed May 1, 2023
1 parent 46d9c13 commit e1dbcdb
Show file tree
Hide file tree
Showing 9 changed files with 371 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \
dtb-$(CONFIG_ROCKCHIP_RK3588) += \
rk3588-edgeble-neu6a-io.dtb \
rk3588-evb1-v10.dtb \
rk3588-nanopi-r6c.dtb \
rk3588-rock-5b.dtb

dtb-$(CONFIG_ROCKCHIP_RV1108) += \
Expand Down
178 changes: 178 additions & 0 deletions arch/arm/dts/rk3588-nanopi-r6c-u-boot.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)

#include "rk3588-u-boot.dtsi"
#include <dt-bindings/pinctrl/rockchip.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>

/ {
aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
};

chosen {
u-boot,spl-boot-order = "same-as-spl", &sdmmc, &sdhci;
};

vcc5v0_host: vcc5v0-host-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc5v0_host";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&vcc5v0_host_en>;
vin-supply = <&vcc5v0_sys>;
};
};

&combphy0_ps {
status = "okay";
};

&emmc_bus8 {
bootph-all;
};

&emmc_clk {
bootph-all;
};

&emmc_cmd {
bootph-all;
};

&emmc_data_strobe {
bootph-all;
};

&emmc_rstnout {
bootph-all;
};

&fspim2_pins {
bootph-all;
};

&pcie2x1l2 {
pinctrl-names = "default";
pinctrl-0 = <&pcie2x1l2_pins &pcie_reset_h>;
reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
status = "okay";
};

&pinctrl {
bootph-all;

pcie {
pcie_reset_h: pcie-reset-h {
rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
};

pcie2x1l2_pins: pcie2x1l2-pins {
rockchip,pins = <3 RK_PC7 4 &pcfg_pull_none>,
<3 RK_PD0 4 &pcfg_pull_none>;
};
};

usb {
vcc5v0_host_en: vcc5v0-host-en {
rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};

&pcfg_pull_none {
bootph-all;
};

&pcfg_pull_up_drv_level_2 {
bootph-all;
};

&pcfg_pull_up {
bootph-all;
};

&sdmmc {
bus-width = <4>;
status = "okay";
};

&sdmmc_bus4 {
bootph-all;
};

&sdmmc_clk {
bootph-all;
};

&sdmmc_cmd {
bootph-all;
};

&sdmmc_det {
bootph-all;
};

&sdhci {
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
pinctrl-names = "default";
pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_data_strobe &emmc_rstnout>;
};

&usb_host0_ehci {
companion = <&usb_host0_ohci>;
phys = <&u2phy2_host>;
phy-names = "usb2-phy";
status = "okay";
};

&usb_host0_ohci {
phys = <&u2phy2_host>;
phy-names = "usb2-phy";
status = "okay";
};

&usb2phy2_grf {
status = "okay";
};

&u2phy2 {
status = "okay";
};

&u2phy2_host {
phy-supply = <&vcc5v0_host>;
status = "okay";
};

&usb_host1_ehci {
companion = <&usb_host1_ohci>;
phys = <&u2phy3_host>;
phy-names = "usb2-phy";
status = "okay";
};

&usb_host1_ohci {
phys = <&u2phy3_host>;
phy-names = "usb2-phy";
status = "okay";
};

&usb2phy3_grf {
status = "okay";
};

&u2phy3 {
status = "okay";
};

&u2phy3_host {
phy-supply = <&vcc5v0_host>;
status = "okay";
};
45 changes: 45 additions & 0 deletions arch/arm/dts/rk3588-nanopi-r6c.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)

/dts-v1/;

#include "rk3588.dtsi"

/ {
model = "FriendlyElec NanoPi R6C";
compatible = "friendlyelec,nanopi-r6c", "rockchip,rk3588";

aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
serial2 = &uart2;
};

chosen {
stdout-path = "serial2:1500000n8";
};

vcc5v0_sys: vcc5v0-sys-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc5v0_sys";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
};

&sdhci {
bus-width = <8>;
no-sdio;
no-sd;
non-removable;
max-frequency = <200000000>;
mmc-hs400-1_8v;
mmc-hs400-enhanced-strobe;
status = "okay";
};

&uart2 {
pinctrl-0 = <&uart2m0_xfer>;
status = "okay";
};
7 changes: 7 additions & 0 deletions arch/arm/mach-rockchip/rk3588/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ config TARGET_RK3588_NEU6
IO board and Neu6a needs to mount on top of this IO board in order to
create complete Edgeble Neural Compute Module 6(Neu6) IO platform.

config TARGET_NANOPI_R6C_RK3588
bool "NanoPi R6C board"
select BOARD_LATE_INIT
help
FriendlyElec NANOPI-R6C is a Rockchip RK3588 based SBC (Single Board Computer)

config TARGET_ROCK5B_RK3588
bool "Radxa ROCK5B RK3588 board"
select BOARD_LATE_INIT
Expand Down Expand Up @@ -58,6 +64,7 @@ config SYS_MALLOC_F_LEN

source board/edgeble/neural-compute-module-6/Kconfig
source board/rockchip/evb_rk3588/Kconfig
source board/friendlyelec/nanopi-r6c-rk3588/Kconfig
source board/radxa/rock5b-rk3588/Kconfig

endif
15 changes: 15 additions & 0 deletions board/friendlyelec/nanopi-r6c-rk3588/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
if TARGET_NANOPI_R6C_RK3588

config SYS_BOARD
default "nanopi-r6c-rk3588"

config SYS_VENDOR
default "friendlyelec"

config SYS_CONFIG_NAME
default "nanopi-r6c-rk3588"

config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y

endif
4 changes: 4 additions & 0 deletions board/friendlyelec/nanopi-r6c-rk3588/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# SPDX-License-Identifier: GPL-2.0+
#

obj-y += nanopi-r6c-rk3588.o
4 changes: 4 additions & 0 deletions board/friendlyelec/nanopi-r6c-rk3588/nanopi-r6c-rk3588.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// SPDX-License-Identifier: GPL-2.0+
/*
*
*/
102 changes: 102 additions & 0 deletions configs/nanopi-r6c-rk3588_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
CONFIG_ARM=y
CONFIG_SKIP_LOWLEVEL_INIT=y
CONFIG_SYS_HAS_NONCACHED_MEMORY=y
CONFIG_COUNTER_FREQUENCY=24000000
CONFIG_ARCH_ROCKCHIP=y
CONFIG_TEXT_BASE=0x00a00000
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
CONFIG_DEFAULT_DEVICE_TREE="rk3588-nanopi-r6c"
CONFIG_DM_RESET=y
CONFIG_ROCKCHIP_RK3588=y
CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
CONFIG_SPL_MMC=y
CONFIG_ROCKCHIP_SPI_IMAGE=y
CONFIG_SPL_SERIAL=y
CONFIG_SPL_STACK_R_ADDR=0x600000
CONFIG_TARGET_NANOPI_R6C_RK3588=y
CONFIG_SPL_STACK=0x400000
CONFIG_DEBUG_UART_BASE=0xFEB50000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI=y
CONFIG_SYS_LOAD_ADDR=0xc00800
CONFIG_DEBUG_UART=y
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_SPL_LOAD_FIT=y
CONFIG_DEFAULT_FDT_FILE="rockchip/rk3588-nanopi-r6c.dtb"
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_DISPLAY_BOARDINFO_LATE=y
CONFIG_SPL_MAX_SIZE=0x20000
CONFIG_SPL_PAD_TO=0x7f8000
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
CONFIG_SPL_BSS_START_ADDR=0x4000000
CONFIG_SPL_BSS_MAX_SIZE=0x4000
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
CONFIG_SPL_STACK_R=y
CONFIG_SPL_SPI_LOAD=y
CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
CONFIG_SPL_ATF=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y
CONFIG_CMD_PCI=y
CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_REGULATOR=y
# CONFIG_SPL_DOS_PARTITION is not set
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_LIVE=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_SPL_REGMAP=y
CONFIG_SPL_SYSCON=y
CONFIG_SPL_CLK=y
CONFIG_ROCKCHIP_GPIO=y
CONFIG_SYS_I2C_ROCKCHIP=y
CONFIG_MISC=y
CONFIG_SUPPORT_EMMC_RPMB=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
# CONFIG_SPL_MMC_SDHCI_SDMA is not set
CONFIG_MMC_SDHCI_ROCKCHIP=y
CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RTL8169=y
CONFIG_GMAC_ROCKCHIP=y
CONFIG_PCI=y
CONFIG_PCIE_DW_ROCKCHIP=y
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
CONFIG_SPL_PINCTRL=y
CONFIG_REGULATOR_PWM=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_SPL_RAM=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_ROCKCHIP_SFC=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_GENERIC=y
CONFIG_USB_HOST_ETHER=y
CONFIG_USB_ETHER_ASIX=y
CONFIG_USB_ETHER_ASIX88179=y
CONFIG_USB_ETHER_LAN75XX=y
CONFIG_USB_ETHER_LAN78XX=y
CONFIG_USB_ETHER_MCS7830=y
CONFIG_USB_ETHER_RTL8152=y
CONFIG_USB_ETHER_SMSC95XX=y
# CONFIG_BINMAN_FDT is not set
CONFIG_ERRNO_STR=y
15 changes: 15 additions & 0 deletions include/configs/nanopi-r6c-rk3588.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (c) 2023
*/

#ifndef __NANOPI_R6C_RK3588_H
#define __NANOPI_R6C_RK3588_H

#define ROCKCHIP_DEVICE_SETTINGS \
"stdout=serial,vidconsole\0" \
"stderr=serial,vidconsole\0"

#include <configs/rk3588_common.h>

#endif /* __NANOPI_R6C_RK3588_H */

0 comments on commit e1dbcdb

Please sign in to comment.