rockchip: Add initial support for the Pinebook Pro laptop from Pine64.
Specification: - Rockchip RK3399 - 4GB Dual-Channel LPDDR4 - eMMC socket - mSD card slot - 128Mbit (16Mb) SPI Flash - AP6256 for 11AC WiFi + BT5 - 14 inch 1920*1080 eDP MiPi display - Camera - USB 3.0, 2.0 ports - Type-C port with alt-mode display (DP 1.2) and 15W charge - DC 5V/3A - optional PCIe slot for NVMe SSD drive Signed-off-by: Peter Robinson <pbrobinson@gmail.com> Tested-by: Vagrant Cascadian <vagrant@debian.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
		
							parent
							
								
									7390fb9999
								
							
						
					
					
						commit
						9fb8e24804
					
				|  | @ -0,0 +1,43 @@ | ||||||
|  | // SPDX-License-Identifier: GPL-2.0+ | ||||||
|  | /* | ||||||
|  |  * Copyright (C) 2019 Peter Robinson <pbrobinson at gmail.com> | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include "rk3399-u-boot.dtsi" | ||||||
|  | #include "rk3399-sdram-lpddr4-100.dtsi" | ||||||
|  | 
 | ||||||
|  | / { | ||||||
|  | 	aliases { | ||||||
|  | 		spi0 = &spi1; | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
|  | 	chosen { | ||||||
|  | 		u-boot,spl-boot-order = "same-as-spl", &sdhci, &sdmmc; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | &i2c0 { | ||||||
|  | 	u-boot,dm-pre-reloc; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | &rk808 { | ||||||
|  | 	u-boot,dm-pre-reloc; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | &sdhci { | ||||||
|  | 	max-frequency = <25000000>; | ||||||
|  | 	u-boot,dm-pre-reloc; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | &sdmmc { | ||||||
|  | 	max-frequency = <20000000>; | ||||||
|  | 	u-boot,dm-pre-reloc; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | &spiflash { | ||||||
|  | 	u-boot,dm-pre-reloc; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | &vdd_log { | ||||||
|  | 	regulator-init-microvolt = <950000>; | ||||||
|  | }; | ||||||
|  | @ -19,6 +19,13 @@ config TARGET_EVB_RK3399 | ||||||
| 	  with full function and physical connectors support like Type-C ports, | 	  with full function and physical connectors support like Type-C ports, | ||||||
| 	  USB.0 host ports, LVDS, JTAG, MAC, SD card, HDMI, USB-to-serial... | 	  USB.0 host ports, LVDS, JTAG, MAC, SD card, HDMI, USB-to-serial... | ||||||
| 
 | 
 | ||||||
|  | config TARGET_PINEBOOK_PRO_RK3399 | ||||||
|  | 	bool "Pinebook Pro" | ||||||
|  | 	help | ||||||
|  | 	  Pinebook Pro is a laptop based on the Rockchip rk3399 SoC | ||||||
|  | 	  with 4Gb RAM, onboard eMMC, USB-C, a USB3 and USB2 port, | ||||||
|  | 	  1920*1080 screen and all the usual laptop features. | ||||||
|  | 
 | ||||||
| config TARGET_PUMA_RK3399 | config TARGET_PUMA_RK3399 | ||||||
| 	bool "Theobroma Systems RK3399-Q7 (Puma)" | 	bool "Theobroma Systems RK3399-Q7 (Puma)" | ||||||
| 	help | 	help | ||||||
|  | @ -144,6 +151,7 @@ endif # BOOTCOUNT_LIMIT | ||||||
| 
 | 
 | ||||||
| source "board/firefly/roc-pc-rk3399/Kconfig" | source "board/firefly/roc-pc-rk3399/Kconfig" | ||||||
| source "board/google/gru/Kconfig" | source "board/google/gru/Kconfig" | ||||||
|  | source "board/pine64/pinebook-pro-rk3399/Kconfig" | ||||||
| source "board/pine64/rockpro64_rk3399/Kconfig" | source "board/pine64/rockpro64_rk3399/Kconfig" | ||||||
| source "board/rockchip/evb_rk3399/Kconfig" | source "board/rockchip/evb_rk3399/Kconfig" | ||||||
| source "board/theobroma-systems/puma_rk3399/Kconfig" | source "board/theobroma-systems/puma_rk3399/Kconfig" | ||||||
|  |  | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | if TARGET_PINEBOOK_PRO_RK3399 | ||||||
|  | 
 | ||||||
|  | config SYS_BOARD | ||||||
|  | 	default "pinebook-pro-rk3399" | ||||||
|  | 
 | ||||||
|  | config SYS_VENDOR | ||||||
|  | 	default "pine64" | ||||||
|  | 
 | ||||||
|  | config SYS_CONFIG_NAME | ||||||
|  | 	default "pinebook-pro-rk3399" | ||||||
|  | 
 | ||||||
|  | config BOARD_SPECIFIC_OPTIONS | ||||||
|  | 	def_bool y | ||||||
|  | 
 | ||||||
|  | endif | ||||||
|  | @ -0,0 +1,8 @@ | ||||||
|  | PINEBOOK_PRO | ||||||
|  | M:	Peter Robinson <pbrobinson@gmail.com> | ||||||
|  | S:	Maintained | ||||||
|  | F:	board/pine64/rk3399-pinebook-pro/ | ||||||
|  | F:	include/configs/rk3399-pinebook-pro.h | ||||||
|  | F:	arch/arm/dts/rk3399-pinebook-pro.dts | ||||||
|  | F:	arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi | ||||||
|  | F:	configs/pinebook-pro-rk3399_defconfig | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | obj-y	+= pinebook-pro-rk3399.o | ||||||
|  | @ -0,0 +1,75 @@ | ||||||
|  | // SPDX-License-Identifier: GPL-2.0+
 | ||||||
|  | /*
 | ||||||
|  |  * (C) Copyright 2016 Rockchip Electronics Co., Ltd | ||||||
|  |  * (C) Copyright 2020 Peter Robinson <pbrobinson at gmail.com> | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include <common.h> | ||||||
|  | #include <dm.h> | ||||||
|  | #include <syscon.h> | ||||||
|  | #include <asm/io.h> | ||||||
|  | #include <asm/arch-rockchip/clock.h> | ||||||
|  | #include <asm/arch-rockchip/grf_rk3399.h> | ||||||
|  | #include <asm/arch-rockchip/hardware.h> | ||||||
|  | #include <asm/arch-rockchip/misc.h> | ||||||
|  | #include <power/regulator.h> | ||||||
|  | 
 | ||||||
|  | #define GRF_IO_VSEL_BT565_SHIFT 0 | ||||||
|  | #define PMUGRF_CON0_VSEL_SHIFT 8 | ||||||
|  | 
 | ||||||
|  | #ifndef CONFIG_SPL_BUILD | ||||||
|  | int board_early_init_f(void) | ||||||
|  | { | ||||||
|  | 	struct udevice *regulator; | ||||||
|  | 	int ret; | ||||||
|  | 
 | ||||||
|  | 	ret = regulator_get_by_platname("vcc5v0_usb", ®ulator); | ||||||
|  | 	if (ret) { | ||||||
|  | 		pr_debug("%s vcc5v0_usb init fail! ret %d\n", __func__, ret); | ||||||
|  | 		goto out; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	ret = regulator_set_enable(regulator, true); | ||||||
|  | 	if (ret) | ||||||
|  | 		pr_debug("%s vcc5v0-host-en-gpio set fail! ret %d\n", __func__, ret); | ||||||
|  | 
 | ||||||
|  | out: | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #ifdef CONFIG_MISC_INIT_R | ||||||
|  | static void setup_iodomain(void) | ||||||
|  | { | ||||||
|  | 	struct rk3399_grf_regs *grf = | ||||||
|  | 	   syscon_get_first_range(ROCKCHIP_SYSCON_GRF); | ||||||
|  | 	struct rk3399_pmugrf_regs *pmugrf = | ||||||
|  | 	   syscon_get_first_range(ROCKCHIP_SYSCON_PMUGRF); | ||||||
|  | 
 | ||||||
|  | 	/* BT565 is in 1.8v domain */ | ||||||
|  | 	rk_setreg(&grf->io_vsel, 1 << GRF_IO_VSEL_BT565_SHIFT); | ||||||
|  | 
 | ||||||
|  | 	/* Set GPIO1 1.8v/3.0v source select to PMU1830_VOL */ | ||||||
|  | 	rk_setreg(&pmugrf->soc_con0, 1 << PMUGRF_CON0_VSEL_SHIFT); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int misc_init_r(void) | ||||||
|  | { | ||||||
|  | 	const u32 cpuid_offset = 0x7; | ||||||
|  | 	const u32 cpuid_length = 0x10; | ||||||
|  | 	u8 cpuid[cpuid_length]; | ||||||
|  | 	int ret; | ||||||
|  | 
 | ||||||
|  | 	setup_iodomain(); | ||||||
|  | 
 | ||||||
|  | 	ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid); | ||||||
|  | 	if (ret) | ||||||
|  | 		return ret; | ||||||
|  | 
 | ||||||
|  | 	ret = rockchip_cpuid_set(cpuid, cpuid_length); | ||||||
|  | 	if (ret) | ||||||
|  | 		return ret; | ||||||
|  | 
 | ||||||
|  | 	return ret; | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  | @ -0,0 +1,84 @@ | ||||||
|  | CONFIG_ARM=y | ||||||
|  | CONFIG_ARCH_ROCKCHIP=y | ||||||
|  | CONFIG_SYS_TEXT_BASE=0x00200000 | ||||||
|  | CONFIG_ENV_OFFSET=0x3F8000 | ||||||
|  | CONFIG_ROCKCHIP_RK3399=y | ||||||
|  | CONFIG_RAM_RK3399_LPDDR4=y | ||||||
|  | CONFIG_NR_DRAM_BANKS=1 | ||||||
|  | CONFIG_TARGET_PINEBOOK_PRO_RK3399=y | ||||||
|  | CONFIG_BAUDRATE=1500000 | ||||||
|  | CONFIG_DEBUG_UART=y | ||||||
|  | CONFIG_DEBUG_UART_SHIFT=2 | ||||||
|  | CONFIG_DEBUG_UART_BASE=0xFF1A0000 | ||||||
|  | CONFIG_DEBUG_UART_CLOCK=24000000 | ||||||
|  | CONFIG_SPL_SPI_SUPPORT=y | ||||||
|  | CONFIG_SPL_SPI_FLASH_SUPPORT=y | ||||||
|  | CONFIG_SPL_MTD_SUPPORT=y | ||||||
|  | CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-pinebook-pro.dtb" | ||||||
|  | CONFIG_MISC_INIT_R=y | ||||||
|  | CONFIG_DISPLAY_BOARDINFO_LATE=y | ||||||
|  | # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set | ||||||
|  | CONFIG_SPL_STACK_R=y | ||||||
|  | CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 | ||||||
|  | CONFIG_TPL=y | ||||||
|  | CONFIG_SPL_OF_CONTROL=y | ||||||
|  | CONFIG_DEFAULT_DEVICE_TREE="rk3399-pinebook-pro" | ||||||
|  | CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" | ||||||
|  | CONFIG_SYS_RELOC_GD_ENV_ADDR=y | ||||||
|  | CONFIG_CMD_BOOTZ=y | ||||||
|  | CONFIG_CMD_GPIO=y | ||||||
|  | CONFIG_CMD_GPT=y | ||||||
|  | CONFIG_CMD_I2C=y | ||||||
|  | CONFIG_CMD_MMC=y | ||||||
|  | CONFIG_CMD_MTDPARTS=y | ||||||
|  | CONFIG_CMD_PMIC=y | ||||||
|  | CONFIG_CMD_REGULATOR=y | ||||||
|  | # CONFIG_CMD_SETEXPR is not set | ||||||
|  | CONFIG_CMD_SF=y | ||||||
|  | CONFIG_CMD_TIME=y | ||||||
|  | CONFIG_CMD_USB=y | ||||||
|  | CONFIG_ROCKCHIP_GPIO=y | ||||||
|  | CONFIG_SYS_I2C_ROCKCHIP=y | ||||||
|  | CONFIG_BOOTDELAY=3 | ||||||
|  | CONFIG_LED=y | ||||||
|  | CONFIG_LED_GPIO=y | ||||||
|  | CONFIG_MISC=y | ||||||
|  | CONFIG_ROCKCHIP_EFUSE=y | ||||||
|  | CONFIG_MMC_DW=y | ||||||
|  | CONFIG_MMC_DW_ROCKCHIP=y | ||||||
|  | CONFIG_MMC_SDHCI=y | ||||||
|  | CONFIG_MMC_SDHCI_SDMA=y | ||||||
|  | CONFIG_MMC_SDHCI_ROCKCHIP=y | ||||||
|  | CONFIG_ROCKCHIP_SPI=y | ||||||
|  | CONFIG_SF_DEFAULT_SPEED=20000000 | ||||||
|  | CONFIG_SPI_FLASH=y | ||||||
|  | CONFIG_SPI_FLASH_GIGADEVICE=y | ||||||
|  | CONFIG_SPI_FLASH_WINBOND=y | ||||||
|  | CONFIG_DM_ETH=y | ||||||
|  | CONFIG_PMIC_RK8XX=y | ||||||
|  | CONFIG_DM_PMIC_FAN53555=y | ||||||
|  | CONFIG_REGULATOR_PWM=y | ||||||
|  | CONFIG_REGULATOR_RK8XX=y | ||||||
|  | CONFIG_PWM_ROCKCHIP=y | ||||||
|  | CONFIG_SYSRESET=y | ||||||
|  | CONFIG_USB=y | ||||||
|  | CONFIG_USB_XHCI_HCD=y | ||||||
|  | CONFIG_USB_XHCI_DWC3=y | ||||||
|  | # CONFIG_USB_XHCI_ROCKCHIP is not set | ||||||
|  | CONFIG_USB_EHCI_HCD=y | ||||||
|  | CONFIG_USB_EHCI_GENERIC=y | ||||||
|  | CONFIG_USB_DWC3=y | ||||||
|  | CONFIG_ROCKCHIP_USB2_PHY=y | ||||||
|  | CONFIG_USB_HOST_ETHER=y | ||||||
|  | CONFIG_USB_ETHER_ASIX=y | ||||||
|  | CONFIG_USB_ETHER_RTL8152=y | ||||||
|  | CONFIG_USB_KEYBOARD=y | ||||||
|  | CONFIG_USE_TINY_PRINTF=y | ||||||
|  | CONFIG_SPL_TINY_MEMSET=y | ||||||
|  | CONFIG_ERRNO_STR=y | ||||||
|  | CONFIG_DM_VIDEO=y | ||||||
|  | CONFIG_VIDEO_BPP16=y | ||||||
|  | CONFIG_VIDEO_BPP32=y | ||||||
|  | CONFIG_DISPLAY=y | ||||||
|  | CONFIG_VIDEO_ROCKCHIP=y | ||||||
|  | CONFIG_DISPLAY_ROCKCHIP_EDP=y | ||||||
|  | @ -0,0 +1,28 @@ | ||||||
|  | /* SPDX-License-Identifier: GPL-2.0+ */ | ||||||
|  | /*
 | ||||||
|  |  * Copyright (C) 2016 Rockchip Electronics Co., Ltd | ||||||
|  |  * Copyright (C) 2020 Peter Robinson <pbrobinson at gmail.com> | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #ifndef __PINEBOOK_PRO_RK3399_H | ||||||
|  | #define __PINEBOOK_PRO_RK3399_H | ||||||
|  | 
 | ||||||
|  | #define ROCKCHIP_DEVICE_SETTINGS \ | ||||||
|  | 		"stdin=serial,usbkbd\0" \ | ||||||
|  | 		"stdout=serial,vidconsole\0" \ | ||||||
|  | 		"stderr=serial,vidconsole\0" | ||||||
|  | 
 | ||||||
|  | #include <configs/rk3399_common.h> | ||||||
|  | 
 | ||||||
|  | #if defined(CONFIG_ENV_IS_IN_MMC) | ||||||
|  | #define CONFIG_SYS_MMC_ENV_DEV 0 | ||||||
|  | #elif defined(CONFIG_ENV_IS_IN_SPI_FLASH) | ||||||
|  | #define CONFIG_ENV_SECT_SIZE		(8 * 1024) | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #undef CONFIG_SYS_SPI_U_BOOT_OFFS | ||||||
|  | #define CONFIG_SYS_SPI_U_BOOT_OFFS	1024 * 512 | ||||||
|  | 
 | ||||||
|  | #define SDRAM_BANK_SIZE			(2UL << 30) | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
		Loading…
	
		Reference in New Issue