Skip to content

Commit

Permalink
rockchip: add support for Ariaboard Photonicat
Browse files Browse the repository at this point in the history
This commit add basic support for Photonicat Board.

Flash into lede:
  Run first: dd if=openwrt-xxx.img of=/dev/mmcblk0
  Then brush the img file to sdcard and insert it,
  the system will boot from above.

Note:
  Since rockchip does not release any code to power up their
  device, disabled emmc for now until we can remove rkbin.
  • Loading branch information
aiamadeus committed Jan 24, 2023
1 parent 0dc779b commit 9fe455c
Show file tree
Hide file tree
Showing 11 changed files with 1,674 additions and 0 deletions.
12 changes: 12 additions & 0 deletions package/boot/uboot-rockchip/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,17 @@ define U-Boot/opc-h68k-rk3568
DDR:=rk3568_ddr_1560MHz_v1.13.bin
endef

define U-Boot/photonicat-rk3568
BUILD_SUBTARGET:=armv8
NAME:=Ariaboard Photonicat
BUILD_DEVICES:= \
ariaboard_photonicat
DEPENDS:=+PACKAGE_u-boot-photonicat-rk3568:arm-trusted-firmware-rk3568
PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor
ATF:=rk3568_bl31_v1.28.elf
DDR:=rk3568_ddr_1560MHz_v1.13.bin
endef

define U-Boot/radxa-e25-rk3568
BUILD_SUBTARGET:=armv8
NAME:=Radxa E25
Expand Down Expand Up @@ -230,6 +241,7 @@ endef
UBOOT_TARGETS := \
mrkaio-m68s-rk3568 \
opc-h68k-rk3568 \
photonicat-rk3568 \
radxa-e25-rk3568 \
rock-3a-rk3568 \
r66s-rk3568 \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -175,6 +175,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3399) += \
rk3568-opc-h68k.dtb \
rk3568-mrkaio-m68s.dtb \
rk3568-nanopi-r5s.dtb \
+ rk3568-photonicat.dtb \
rk3566-quartz64-a.dtb \
rk3568-rock-3a.dtb \
rk3568-rock-pi-e25.dtb
--- /dev/null
+++ b/arch/arm/dts/rk3568-photonicat-u-boot.dtsi
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include "rk3568-u-boot.dtsi"
+
+/ {
+ chosen {
+ stdout-path = &uart2;
+ u-boot,spl-boot-order = "same-as-spl", &sdmmc0, &sdhci;
+ };
+};
+
+&gpio0 {
+ u-boot,dm-spl;
+};
+
+&pinctrl {
+ u-boot,dm-spl;
+};
+
+&sdmmc0 {
+ bus-width = <4>;
+ u-boot,spl-fifo-mode;
+};
+
+&uart2 {
+ u-boot,dm-spl;
+ clock-frequency = <24000000>;
+ status = "okay";
+};
+
+&vcc3v3_sd {
+ u-boot,dm-spl;
+};
--- /dev/null
+++ b/arch/arm/dts/rk3568-photonicat.dts
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3568.dtsi"
+
+/ {
+ model = "Ariaboard Photonicat";
+ compatible = "ariaboard,photonicat", "rockchip,rk3568";
+
+ chosen: chosen {
+ stdout-path = "serial2:1500000n8";
+ };
+
+ vcc3v3_sd: vcc3v3_sd {
+ compatible = "regulator-fixed";
+ gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc_sd_h>;
+ regulator-boot-on;
+ regulator-name = "vcc3v3_sd";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ };
+};
+
+&pinctrl {
+ vcc_sd {
+ vcc_sd_h: vcc-sd-h {
+ rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+};
+
+&sdhci {
+ bus-width = <8>;
+ max-frequency = <200000000>;
+ non-removable;
+ status = "okay";
+};
+
+&sdmmc0 {
+ max-frequency = <52000000>;
+ status = "okay";
+};
+
+&sdmmc1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
--- /dev/null
+++ b/configs/photonicat-rk3568_defconfig
@@ -0,0 +1,101 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_SYS_TEXT_BASE=0x00a00000
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_DEFAULT_DEVICE_TREE="rk3568-photonicat"
+CONFIG_ROCKCHIP_RK3568=y
+CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y
+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+CONFIG_SPL_GPIO=y
+CONFIG_SPL_MMC=y
+CONFIG_SPL_SERIAL=y
+CONFIG_SPL_STACK_R_ADDR=0x600000
+CONFIG_TARGET_EVB_RK3568=y
+CONFIG_DEBUG_UART_BASE=0xFE660000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_DEBUG_UART=y
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_API=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_OF_SYSTEM_SETUP=y
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-photonicat.dtb"
+# CONFIG_SYS_DEVICE_NULLDEV is not set
+CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS=2
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_SEPARATE_BSS=y
+CONFIG_SPL_ADC=y
+CONFIG_SPL_ATF=y
+CONFIG_SPL_BOARD_INIT=y
+CONFIG_CMD_ADC=y
+CONFIG_CMD_BIND=y
+CONFIG_CMD_CLK=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_PMIC=y
+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_DM_WARN=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SPL_SYSCON=y
+CONFIG_SPL_CLK=y
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_ROCKCHIP_GPIO_V2=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_MISC=y
+CONFIG_MMC_IO_VOLTAGE=y
+CONFIG_SPL_MMC_IO_VOLTAGE=y
+CONFIG_MMC_HS200_SUPPORT=y
+CONFIG_SPL_MMC_HS200_SUPPORT=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_DM_ETH=y
+CONFIG_ETH_DESIGNWARE=y
+CONFIG_GMAC_ROCKCHIP=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_DM_PMIC=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_SPL_PMIC_RK8XX=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_SPL_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_SPL_RAM=y
+CONFIG_DM_RESET=y
+CONFIG_BAUDRATE=1500000
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_GENERIC=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_ROCKCHIP_USB2_PHY=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_LAN75XX=y
+CONFIG_USB_ETHER_LAN78XX=y
+CONFIG_USB_ETHER_SMSC95XX=y
+CONFIG_ERRNO_STR=y
48 changes: 48 additions & 0 deletions package/lean/pcat-manager/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=pcat-manager
PKG_VERSION:=1.0.16
PKG_RELEASE:=2

PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2022-11-17
PKG_SOURCE_URL:=https://github.com/photonicat/rockchip_rk3568_pcat_manager
PKG_SOURCE_VERSION:=b35d84e1636bbed8751d15f4b73c911912652435
PKG_MIRROR_HASH:=f06ef0011ed28bb7c42c308f83b89c1f4b586950bdaf5c562a4b5708789e6746

PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=LICENSE

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/meson.mk

define Package/pcat-manager
SECTION:=utils
CATEGORY:=Utilities
TITLE:=photonicat watchdog
URL:=https://photonicat.com
DEPENDS:=+glib2 +libgpiod +libjson-c +libusb-1.0
endef

define Package/pcat-manager/description
Photonicat Manager is a system service for
power management and modem controlling.
endef

define Package/pcat-manager/install
$(INSTALL_DIR) $(1)/etc/
$(INSTALL_CONF) ./files/pcat-manager.conf $(1)/etc
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/pcat-manager.init $(1)/etc/init.d/pcat-manager
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) \
$(PKG_INSTALL_DIR)/usr/bin/pcat-manager \
$(1)/usr/bin/pcat-manager
endef

$(eval $(call BuildPackage,pcat-manager))
28 changes: 28 additions & 0 deletions package/lean/pcat-manager/files/pcat-manager.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[Hardware]
GPIOModemPowerChip=gpiochip4
GPIOModemPowerLine=18
GPIOModemPowerActiveLow=0
GPIOModemRFKillChip=gpiochip4
GPIOModemRFKillLine=20
GPIOModemRFKillActiveLow=1
GPIOModemResetChip=gpiochip0
GPIOModemResetLine=8
GPIOModemResetActiveLow=0

[PowerManager]
SerialDevice=/dev/ttyS0
SerialBaud=115200
AutoShutdownVoltageGeneral=0
AutoShutdownVoltageLTE=0
AutoShutdownVoltage5G=3600
LEDHighVoltage=0
LEDMediumVoltage=0
LEDLowVoltage=0
LEDWorkLowVoltage=0
StartupVoltage=0
ChargerLimitVoltage=0
ChargerFastVoltage=0
BatteryFullThreshold=4100
BatteryDischargeTableNormal=4100;4040;3980;3920;3870;3820;3790;3770;3740;3680;3450
BatteryDischargeTable5G=4100;4040;3980;3920;3870;3820;3790;3770;3740;3680;3600
BatteryChargeTable=4100;4060;4020;3980;3940;3900;3860;3820;3780;3740;3700
24 changes: 24 additions & 0 deletions package/lean/pcat-manager/files/pcat-manager.init
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh /etc/rc.common

START=45
STOP=89

start() {
service_start /usr/bin/pcat-manager -D
}

stop() {
service_stop /usr/bin/pcat-manager
}

restart() {
killall -USR1 pcat-manager
stop
start
}

shutdown() {
touch /tmp/pcat-manager-shutdown.tmp
stop
rfkill block wwan 2>/dev/null || true
}
Loading

0 comments on commit 9fe455c

Please sign in to comment.