From 104e1a4aaad9a700ef9697d3fb571e8ffca0201b Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Sun, 16 Nov 2025 21:30:55 +0800 Subject: [PATCH 01/14] Aiot-rk3588a:Add shimeta-aiot-rk3588a board configuration --- config/boards/shimeta-aiot-rk3588a.conf | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 config/boards/shimeta-aiot-rk3588a.conf diff --git a/config/boards/shimeta-aiot-rk3588a.conf b/config/boards/shimeta-aiot-rk3588a.conf new file mode 100644 index 000000000000..76e39653e3cd --- /dev/null +++ b/config/boards/shimeta-aiot-rk3588a.conf @@ -0,0 +1,11 @@ +#Rockchip RK3588 SoC octa core 4-16GB SoC 2.5GBe PoE eMMC USB3 NvME +BOARD_NAME="Aiot rk3588" +BOARDFAMILY="rockchip-rk3588" +BOARD_MAINTAINER="" +BOOTCONFIG="rk3588_defconfig" +KERNEL_TARGET="current,edge,vendor" +KERNEL_TEST_TARGET="vendor" +FULL_DESKTOP="yes" +BOOT_LOGO="desktop" +BOOT_FDT_FILE="rockchip/rk3588-evb7-lp4-v10.dtb" +IMAGE_PARTITION_TABLE="gpt" From 8c4a56e9b45604c7586eb09ff81bc112424ee4ab Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Tue, 18 Nov 2025 22:03:27 +0800 Subject: [PATCH 02/14] Update Aiot-rk3588a board configuration with new boot settings --- config/boards/shimeta-aiot-rk3588a.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/config/boards/shimeta-aiot-rk3588a.conf b/config/boards/shimeta-aiot-rk3588a.conf index 76e39653e3cd..182f371f82f8 100644 --- a/config/boards/shimeta-aiot-rk3588a.conf +++ b/config/boards/shimeta-aiot-rk3588a.conf @@ -2,8 +2,9 @@ BOARD_NAME="Aiot rk3588" BOARDFAMILY="rockchip-rk3588" BOARD_MAINTAINER="" -BOOTCONFIG="rk3588_defconfig" -KERNEL_TARGET="current,edge,vendor" +BOOTCONFIG="imb3588_defconfig" +BOOT_SOC="rk3588" +KERNEL_TARGET="vendor" KERNEL_TEST_TARGET="vendor" FULL_DESKTOP="yes" BOOT_LOGO="desktop" From fec1f53a20f545280e9a63df97562966440d4c10 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Wed, 19 Nov 2025 22:00:34 +0800 Subject: [PATCH 03/14] Add aiot_rk3588a_defconfig for Aiot-rk3588a board uboot configuration --- config/boards/shimeta-aiot-rk3588a.conf | 4 +- .../defconfig/aiot_rk3588a_defconfig | 269 ++++++++++++++++++ 2 files changed, 271 insertions(+), 2 deletions(-) create mode 100644 patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig diff --git a/config/boards/shimeta-aiot-rk3588a.conf b/config/boards/shimeta-aiot-rk3588a.conf index 182f371f82f8..995ac0951065 100644 --- a/config/boards/shimeta-aiot-rk3588a.conf +++ b/config/boards/shimeta-aiot-rk3588a.conf @@ -1,8 +1,8 @@ #Rockchip RK3588 SoC octa core 4-16GB SoC 2.5GBe PoE eMMC USB3 NvME BOARD_NAME="Aiot rk3588" BOARDFAMILY="rockchip-rk3588" -BOARD_MAINTAINER="" -BOOTCONFIG="imb3588_defconfig" +BOARD_MAINTAINER="ghhccghk" +BOOTCONFIG="aiot_rk3588a_defconfig" BOOT_SOC="rk3588" KERNEL_TARGET="vendor" KERNEL_TEST_TARGET="vendor" diff --git a/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig b/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig new file mode 100644 index 000000000000..0d04ba5d5ae1 --- /dev/null +++ b/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig @@ -0,0 +1,269 @@ +CONFIG_ARM=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_SPL_GPIO_SUPPORT=y +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x80000 +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.sh" +CONFIG_ROCKCHIP_RK3588=y +CONFIG_ROCKCHIP_USB_BOOT=y +CONFIG_ROCKCHIP_FIT_IMAGE=y +CONFIG_ROCKCHIP_HWID_DTB=y +CONFIG_ROCKCHIP_VENDOR_PARTITION=y +CONFIG_USING_KERNEL_DTB_V2=y +CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y +CONFIG_ROCKCHIP_NEW_IDB=y +CONFIG_LOADER_INI="RK3588MINIALL.ini" +CONFIG_TRUST_INI="RK3588TRUST.ini" +CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y +CONFIG_TARGET_EVB_RK3588=y +CONFIG_SPL_LIBDISK_SUPPORT=y +CONFIG_SPL_SPI_FLASH_SUPPORT=y +CONFIG_SPL_SPI_SUPPORT=y +CONFIG_DEFAULT_DEVICE_TREE="rk3588-evb" +CONFIG_DEBUG_UART=y +CONFIG_LOCALVERSION="-armbian" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_FIT=y +CONFIG_FIT_IMAGE_POST_PROCESS=y +CONFIG_FIT_HW_CRYPTO=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y +CONFIG_SPL_FIT_HW_CRYPTO=y +# CONFIG_SPL_SYS_DCACHE_OFF is not set +CONFIG_BOOTDELAY=0 +CONFIG_SYS_CONSOLE_INFO_QUIET=y +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_ANDROID_BOOTLOADER=y +CONFIG_ANDROID_AVB=y +CONFIG_ANDROID_BOOT_IMAGE_HASH=y +CONFIG_SPL_BOARD_INIT=y +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set +# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set +CONFIG_SPL_SEPARATE_BSS=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=0x1 +CONFIG_SPL_MMC_WRITE=y +CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_ATF=y +CONFIG_FASTBOOT_BUF_ADDR=0xc00800 +CONFIG_FASTBOOT_BUF_SIZE=0x04000000 +CONFIG_FASTBOOT_FLASH=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_DTIMG=y +# CONFIG_CMD_ELF is not set +# CONFIG_CMD_IMI is not set +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_XIMG is not set +# CONFIG_CMD_LZMADEC is not set +# CONFIG_CMD_UNZIP is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_FPGA is not set +CONFIG_CMD_GPT=y +# CONFIG_CMD_LOADB is not set +# CONFIG_CMD_LOADS is not set +CONFIG_CMD_BOOT_ANDROID=y +CONFIG_CMD_MMC=y +CONFIG_CMD_PCI=y +CONFIG_CMD_SF=y +CONFIG_CMD_SPI=y +CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y +# CONFIG_CMD_ITEST is not set +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_TFTPPUT=y +CONFIG_CMD_TFTP_BOOTM=y +CONFIG_CMD_TFTP_FLASH=y +# CONFIG_CMD_MISC is not set +CONFIG_CMD_MTD_BLK=y +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_ISO_PARTITION is not set +CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64 +CONFIG_SPL_OF_CONTROL=y +CONFIG_SPL_DTB_MINIMUM=y +CONFIG_OF_LIVE=y +CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" +# CONFIG_NET_TFTP_VARS is not set +CONFIG_REGMAP=y +CONFIG_SPL_REGMAP=y +CONFIG_SYSCON=y +CONFIG_SPL_SYSCON=y +# CONFIG_SARADC_ROCKCHIP is not set +CONFIG_SARADC_ROCKCHIP_V2=y +CONFIG_CLK=y +CONFIG_SPL_CLK=y +CONFIG_CLK_SCMI=y +CONFIG_SPL_CLK_SCMI=y +CONFIG_DM_CRYPTO=y +CONFIG_SPL_DM_CRYPTO=y +CONFIG_ROCKCHIP_CRYPTO_V2=y +CONFIG_SPL_ROCKCHIP_CRYPTO_V2=y +CONFIG_DM_RNG=y +CONFIG_RNG_ROCKCHIP=y +CONFIG_SCMI_FIRMWARE=y +CONFIG_SPL_SCMI_FIRMWARE=y +CONFIG_ROCKCHIP_GPIO=y +CONFIG_ROCKCHIP_GPIO_V2=y +CONFIG_SYS_I2C_ROCKCHIP=y +CONFIG_DM_KEY=y +CONFIG_ADC_KEY=y +CONFIG_MISC=y +CONFIG_SPL_MISC=y +CONFIG_MISC_DECOMPRESS=y +CONFIG_SPL_MISC_DECOMPRESS=y +CONFIG_ROCKCHIP_OTP=y +CONFIG_ROCKCHIP_HW_DECOMPRESS=y +CONFIG_SPL_ROCKCHIP_HW_DECOMPRESS=y +CONFIG_SPL_ROCKCHIP_SECURE_OTP=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_MTD=y +CONFIG_MTD_BLK=y +CONFIG_MTD_DEVICE=y +CONFIG_NAND=y +CONFIG_MTD_SPI_NAND=y +CONFIG_SPI_FLASH=y +CONFIG_SF_DEFAULT_SPEED=80000000 +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_XMC=y +CONFIG_SPI_FLASH_XTX=y +CONFIG_SPI_FLASH_MTD=y +CONFIG_DM_ETH=y +CONFIG_DM_ETH_PHY=y +CONFIG_DWC_ETH_QOS=y +CONFIG_GMAC_ROCKCHIP=y +CONFIG_NVME=y +CONFIG_PCI=y +CONFIG_DM_PCI=y +CONFIG_DM_PCI_COMPAT=y +CONFIG_PCIE_DW_ROCKCHIP=y +CONFIG_PHY_ROCKCHIP_INNO_USB2=y +CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y +CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=y +CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=y +CONFIG_PINCTRL=y +CONFIG_SPL_PINCTRL=y +CONFIG_DM_PMIC=y +CONFIG_PMIC_SPI_RK8XX=y +CONFIG_REGULATOR_PWM=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_REGULATOR_RK860X=y +CONFIG_PWM_ROCKCHIP=y +CONFIG_RAM=y +CONFIG_SPL_RAM=y +CONFIG_TPL_RAM=y +CONFIG_ROCKCHIP_SDRAM_COMMON=y +CONFIG_ROCKCHIP_TPL_INIT_DRAM_TYPE=0 +CONFIG_DM_RESET=y +CONFIG_SPL_DM_RESET=y +CONFIG_SPL_RESET_ROCKCHIP=y +CONFIG_BAUDRATE=1500000 +CONFIG_DEBUG_UART_BASE=0xFEB50000 +CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_DEBUG_UART_SHIFT=2 +CONFIG_ROCKCHIP_SPI=y +CONFIG_ROCKCHIP_SFC=y +CONFIG_SYSRESET=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_DWC3=y +CONFIG_USB_XHCI_PCI=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_GADGET=y +CONFIG_USB_DWC3_GENERIC=y +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="Rockchip" +CONFIG_USB_GADGET_VENDOR_NUM=0x2207 +CONFIG_USB_GADGET_PRODUCT_NUM=0x350a +CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_DM_VIDEO=y +CONFIG_DISPLAY=y +CONFIG_DRM_ROCKCHIP=y +CONFIG_DRM_ROCKCHIP_DW_MIPI_DSI2=y +CONFIG_DRM_ROCKCHIP_ANALOGIX_DP=y +CONFIG_DRM_ROCKCHIP_SAMSUNG_MIPI_DCPHY=y +CONFIG_USE_TINY_PRINTF=y +CONFIG_LIB_RAND=y +CONFIG_SPL_TINY_MEMSET=y +CONFIG_RSA=y +CONFIG_SPL_RSA=y +CONFIG_RSA_N_SIZE=0x200 +CONFIG_RSA_E_SIZE=0x10 +CONFIG_RSA_C_SIZE=0x20 +CONFIG_LZ4=y +CONFIG_ERRNO_STR=y +# CONFIG_EFI_LOADER is not set +CONFIG_AVB_LIBAVB=y +CONFIG_AVB_LIBAVB_AB=y +CONFIG_AVB_LIBAVB_ATX=y +CONFIG_AVB_LIBAVB_USER=y +CONFIG_RK_AVB_LIBAVB_USER=y +CONFIG_VERSION_VARIABLE=y + +# +# Graphics support +# +CONFIG_DM_VIDEO=y +# CONFIG_SPL_DM_VIDEO is not set +CONFIG_BACKLIGHT_PWM=y +# CONFIG_BACKLIGHT_GPIO is not set +CONFIG_VIDEO_BPP8=y +CONFIG_VIDEO_BPP16=y +CONFIG_VIDEO_BPP32=y +CONFIG_CONSOLE_NORMAL=y +# CONFIG_CONSOLE_ROTATION is not set +# CONFIG_CONSOLE_TRUETYPE is not set +CONFIG_SYS_WHITE_ON_BLACK=y + +# +# TrueType Fonts +# +# CONFIG_VIDCONSOLE_AS_LCD is not set +# CONFIG_VIDEO_VESA is not set +# CONFIG_VIDEO_LCD_ANX9804 is not set +# CONFIG_VIDEO_LCD_SSD2828 is not set +# CONFIG_VIDEO_MVEBU is not set +CONFIG_I2C_EDID=y +CONFIG_DISPLAY=y +# CONFIG_ATMEL_HLCD is not set +CONFIG_VIDEO_ROCKCHIP=y +CONFIG_DRM_ROCKCHIP=y +CONFIG_DRM_MEM_RESERVED_SIZE_MBYTES=32 +CONFIG_DRM_DP_HELPER=y +# CONFIG_DRM_MAXIM_MAX96745 is not set +# CONFIG_DRM_MAXIM_MAX96755F is not set +# CONFIG_DRM_PANEL_ROHM_BU18RL82 is not set +# CONFIG_DRM_PANEL_MAXIM_MAX96752F is not set +CONFIG_DRM_ROCKCHIP_PANEL=y +CONFIG_DRM_ROCKCHIP_DW_HDMI=y +# CONFIG_DRM_ROCKCHIP_DW_HDMI_QP is not set +# CONFIG_DRM_ROCKCHIP_INNO_HDMI is not set +# CONFIG_ROCKCHIP_INNO_HDMI_PHY is not set +# CONFIG_DRM_ROCKCHIP_INNO_MIPI_PHY is not set +# CONFIG_DRM_ROCKCHIP_INNO_VIDEO_PHY is not set +# CONFIG_DRM_ROCKCHIP_INNO_VIDEO_COMBO_PHY is not set +CONFIG_DRM_MIPI_DSI=y +CONFIG_DRM_DSC=y +CONFIG_DRM_ROCKCHIP_ANALOGIX_DP=y +CONFIG_DRM_ROCKCHIP_SAMSUNG_MIPI_DCPHY=y +CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX_HDMI=y +CONFIG_DRM_ROCKCHIP_TVE=y +CONFIG_ROCKCHIP_CUBIC_LUT_SIZE=0 +CONFIG_VIDEO_BRIDGE=y +CONFIG_CONSOLE_SCROLL_LINES=1 From cb76c17e9af4538899dd6c48acd58a3b74155f7e Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Fri, 21 Nov 2025 21:47:02 +0800 Subject: [PATCH 04/14] Add device tree and update configuration for Aiot-rk3588a board --- config/boards/shimeta-aiot-rk3588a.conf | 3 +- .../defconfig/aiot_rk3588a_defconfig | 12 +------ .../dt/rk3588-aiot-rk3588a.dts | 31 +++++++++++++++++++ 3 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts diff --git a/config/boards/shimeta-aiot-rk3588a.conf b/config/boards/shimeta-aiot-rk3588a.conf index 995ac0951065..d27c8b8dbe22 100644 --- a/config/boards/shimeta-aiot-rk3588a.conf +++ b/config/boards/shimeta-aiot-rk3588a.conf @@ -1,4 +1,5 @@ -#Rockchip RK3588 SoC octa core 4-16GB SoC 2.5GBe PoE eMMC USB3 NvME +#Rockchip RK3588 SoC octa core 4-8GB SoC 1Gbe eMMC USB3 USB2 HDMI Type-c LVDS EDP EDPx MIPI MIPI_CAN RS485 RS232 Mic Headphones,4G/5G Module,SATA,HDMI in,Ir Speaker I2C TP,TF Card,FAN +#Note: Optional 2k EEPROM, PCIe switchable to M.2, speaker output (supports left/right channel output, max. dual 20W/4Ω or 10W/8Ω), eMMC supports 16–128GB. This development board has three versions: V1.1, V1.2, and V1.3. BOARD_NAME="Aiot rk3588" BOARDFAMILY="rockchip-rk3588" BOARD_MAINTAINER="ghhccghk" diff --git a/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig b/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig index 0d04ba5d5ae1..597f1f9988fc 100644 --- a/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig +++ b/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig @@ -22,7 +22,7 @@ CONFIG_TARGET_EVB_RK3588=y CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_SPI_FLASH_SUPPORT=y CONFIG_SPL_SPI_SUPPORT=y -CONFIG_DEFAULT_DEVICE_TREE="rk3588-evb" +CONFIG_DEFAULT_DEVICE_TREE="rk3588-aiot-rk3588a" CONFIG_DEBUG_UART=y CONFIG_LOCALVERSION="-armbian" # CONFIG_LOCALVERSION_AUTO is not set @@ -215,10 +215,6 @@ CONFIG_AVB_LIBAVB_ATX=y CONFIG_AVB_LIBAVB_USER=y CONFIG_RK_AVB_LIBAVB_USER=y CONFIG_VERSION_VARIABLE=y - -# -# Graphics support -# CONFIG_DM_VIDEO=y # CONFIG_SPL_DM_VIDEO is not set CONFIG_BACKLIGHT_PWM=y @@ -227,13 +223,7 @@ CONFIG_VIDEO_BPP8=y CONFIG_VIDEO_BPP16=y CONFIG_VIDEO_BPP32=y CONFIG_CONSOLE_NORMAL=y -# CONFIG_CONSOLE_ROTATION is not set -# CONFIG_CONSOLE_TRUETYPE is not set CONFIG_SYS_WHITE_ON_BLACK=y - -# -# TrueType Fonts -# # CONFIG_VIDCONSOLE_AS_LCD is not set # CONFIG_VIDEO_VESA is not set # CONFIG_VIDEO_LCD_ANX9804 is not set diff --git a/patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts b/patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts new file mode 100644 index 000000000000..079d676709e1 --- /dev/null +++ b/patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2021 Rockchip Electronics Co., Ltd + * + */ + +/dts-v1/; +#include "rk3588.dtsi" +#include "rk3588-u-boot.dtsi" +#include + +/ { + model = "Shimeta Aiot rk3588a"; + compatible = "rockchip,rk3588-aiot-rk3588a", "rockchip,rk3588"; + + adc-keys { + compatible = "adc-keys"; + io-channels = <&saradc 1>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + u-boot,dm-pre-reloc; + status = "okay"; + + volumeup-key { + u-boot,dm-pre-reloc; + linux,code = ; + label = "volume up"; + press-threshold-microvolt = <1750>; + }; + }; +}; From a77fd7b1ecc0dc9a4a66c7d6db335422218632a2 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Sat, 22 Nov 2025 21:35:12 +0800 Subject: [PATCH 05/14] Add Aiot rk3588a Linux Devices Tree --- config/boards/shimeta-aiot-rk3588a.conf | 2 +- .../defconfig/aiot_rk3588a_defconfig | 53 +++++++------------ 2 files changed, 20 insertions(+), 35 deletions(-) diff --git a/config/boards/shimeta-aiot-rk3588a.conf b/config/boards/shimeta-aiot-rk3588a.conf index d27c8b8dbe22..b215e3515dab 100644 --- a/config/boards/shimeta-aiot-rk3588a.conf +++ b/config/boards/shimeta-aiot-rk3588a.conf @@ -9,5 +9,5 @@ KERNEL_TARGET="vendor" KERNEL_TEST_TARGET="vendor" FULL_DESKTOP="yes" BOOT_LOGO="desktop" -BOOT_FDT_FILE="rockchip/rk3588-evb7-lp4-v10.dtb" +BOOT_FDT_FILE="rockchip/rk3588-aiot-rk3588a.dtb" IMAGE_PARTITION_TABLE="gpt" diff --git a/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig b/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig index 597f1f9988fc..5f7372cf902a 100644 --- a/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig +++ b/patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig @@ -33,7 +33,7 @@ CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y CONFIG_SPL_FIT_HW_CRYPTO=y # CONFIG_SPL_SYS_DCACHE_OFF is not set -CONFIG_BOOTDELAY=0 +CONFIG_BOOTDELAY=5 CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_ANDROID_BOOTLOADER=y @@ -142,7 +142,6 @@ CONFIG_DM_ETH=y CONFIG_DM_ETH_PHY=y CONFIG_DWC_ETH_QOS=y CONFIG_GMAC_ROCKCHIP=y -CONFIG_NVME=y CONFIG_PCI=y CONFIG_DM_PCI=y CONFIG_DM_PCI_COMPAT=y @@ -217,43 +216,29 @@ CONFIG_RK_AVB_LIBAVB_USER=y CONFIG_VERSION_VARIABLE=y CONFIG_DM_VIDEO=y # CONFIG_SPL_DM_VIDEO is not set -CONFIG_BACKLIGHT_PWM=y -# CONFIG_BACKLIGHT_GPIO is not set -CONFIG_VIDEO_BPP8=y -CONFIG_VIDEO_BPP16=y -CONFIG_VIDEO_BPP32=y -CONFIG_CONSOLE_NORMAL=y -CONFIG_SYS_WHITE_ON_BLACK=y -# CONFIG_VIDCONSOLE_AS_LCD is not set -# CONFIG_VIDEO_VESA is not set -# CONFIG_VIDEO_LCD_ANX9804 is not set -# CONFIG_VIDEO_LCD_SSD2828 is not set -# CONFIG_VIDEO_MVEBU is not set -CONFIG_I2C_EDID=y -CONFIG_DISPLAY=y -# CONFIG_ATMEL_HLCD is not set CONFIG_VIDEO_ROCKCHIP=y CONFIG_DRM_ROCKCHIP=y -CONFIG_DRM_MEM_RESERVED_SIZE_MBYTES=32 -CONFIG_DRM_DP_HELPER=y -# CONFIG_DRM_MAXIM_MAX96745 is not set -# CONFIG_DRM_MAXIM_MAX96755F is not set -# CONFIG_DRM_PANEL_ROHM_BU18RL82 is not set -# CONFIG_DRM_PANEL_MAXIM_MAX96752F is not set -CONFIG_DRM_ROCKCHIP_PANEL=y -CONFIG_DRM_ROCKCHIP_DW_HDMI=y -# CONFIG_DRM_ROCKCHIP_DW_HDMI_QP is not set +CONFIG_DRM_MEM_RESERVED_SIZE_MBYTES=128 +CONFIG_DISPLAY=y +CONFIG_I2C_EDID=y +CONFIG_DRM_ROCKCHIP_DW_HDMI_QP=y +CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX_HDMI=y # CONFIG_DRM_ROCKCHIP_INNO_HDMI is not set # CONFIG_ROCKCHIP_INNO_HDMI_PHY is not set +# CONFIG_DRM_ROCKCHIP_ANALOGIX_DP is not set +# CONFIG_DRM_ROCKCHIP_TVE is not set # CONFIG_DRM_ROCKCHIP_INNO_MIPI_PHY is not set # CONFIG_DRM_ROCKCHIP_INNO_VIDEO_PHY is not set # CONFIG_DRM_ROCKCHIP_INNO_VIDEO_COMBO_PHY is not set -CONFIG_DRM_MIPI_DSI=y -CONFIG_DRM_DSC=y -CONFIG_DRM_ROCKCHIP_ANALOGIX_DP=y -CONFIG_DRM_ROCKCHIP_SAMSUNG_MIPI_DCPHY=y -CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX_HDMI=y -CONFIG_DRM_ROCKCHIP_TVE=y -CONFIG_ROCKCHIP_CUBIC_LUT_SIZE=0 -CONFIG_VIDEO_BRIDGE=y +CONFIG_BACKLIGHT_PWM=y +# CONFIG_BACKLIGHT_GPIO is not set +CONFIG_VIDEO_BPP8=y +CONFIG_VIDEO_BPP16=y +CONFIG_VIDEO_BPP32=y +CONFIG_CONSOLE_NORMAL=y +CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_CONSOLE_SCROLL_LINES=1 +CONFIG_VIDEO_BRIDGE=y +CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DSC=y +# CONFIG_DRM_ROCKCHIP_SAMSUNG_MIPI_DCPHY=y From 5429908f5168e022f15df2479e033452ffefce26 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Sun, 23 Nov 2025 22:16:19 +0800 Subject: [PATCH 06/14] Disable the DP interface in the Shimeta Aiot-rk3588a Linux device tree. Enable EDP 0 and keep EDP 1 disabled. --- .../dt/rk3588-aiot-rk3588a.dts | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts new file mode 100644 index 000000000000..2d9f8ae95b64 --- /dev/null +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2021 Rockchip Electronics Co., Ltd. + * + */ + +/dts-v1/; + +#include "rk3588-evb7-lp4.dtsi" +#include "rk3588-evb7-imx415.dtsi" +#include "rk3588-linux.dtsi" + +/ { + model = "Shimeta Aiot rk3588a"; + compatible = "rockchip,rk3588-aiot-rk3588a", "rockchip,rk3588"; +}; + +&dp0 { + status = "disabled"; +}; + +&dp1 { + status = "disabled"; +}; + +&edp0 { + status = "okay"; +}; + +&edp1 { + status = "disabled"; +}; + +&pcie2x1l0 { + reset-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>; + status = "disabled"; +}; + +&pcie30phy { + rockchip,pcie30-phymode = ; + status = "okay"; +}; + +&pcie3x4 { + reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie30>; + pinctrl-names = "default"; + pinctrl-0 = <&pcie30x4_clkreqn_m1>; + status = "okay"; +}; From 02c44d9589db57ad4db15b471bacdea230dca669 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Sun, 23 Nov 2025 22:27:43 +0800 Subject: [PATCH 07/14] Disable PCIe interfaces in the Aiot-rk3588a device tree,Failure to shut down will cause the kernel to crash. --- .../kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts index 2d9f8ae95b64..2fb55d11ce25 100644 --- a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -37,14 +37,9 @@ }; &pcie30phy { - rockchip,pcie30-phymode = ; - status = "okay"; + status = "disabled"; }; &pcie3x4 { - reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; - vpcie3v3-supply = <&vcc3v3_pcie30>; - pinctrl-names = "default"; - pinctrl-0 = <&pcie30x4_clkreqn_m1>; - status = "okay"; + status = "disabled"; }; From 9134b2788a5b0efa76eb6b97ed64193f56977c76 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Tue, 25 Nov 2025 22:41:09 +0800 Subject: [PATCH 08/14] Add bootargs, LED, and MCU configuration to Aiot-rk3588a device tree --- .../dt/rk3588-aiot-rk3588a.dts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts index 2fb55d11ce25..de09a6ecc17f 100644 --- a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -13,6 +13,42 @@ / { model = "Shimeta Aiot rk3588a"; compatible = "rockchip,rk3588-aiot-rk3588a", "rockchip,rk3588"; + + chosen { + bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0"; + }; + + leds { + compatible = "gpio-leds"; + work { + gpios = <&gpio4 RK_PB7 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; + + + mcuinf { + compatible = "smdtmcu,STM8S00K3"; + status = "okay"; + reg = <0x62>; + #pwm-cells = <2>; + /* MCU interrupt pin: GPIO0_B0 */ + int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; + }; + +}; + +&pinctrl { + mcu { + mcum0-pins { + rockchip,pins = <0x04 0x1c 0x05 0x1a3 0x04 0x1d 0x05 0x1a3>; + }; + + mcum1-pins { + rockchip,pins = <0x03 0x1c 0x06 0x1a3 0x03 0x1d 0x06 0x1a3>; + }; + }; + }; &dp0 { From ae52f981d79d4fd4c816e2afa981983a1a509fca Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Thu, 27 Nov 2025 22:33:33 +0800 Subject: [PATCH 09/14] Add ADC keys and EDP panel configuration for Aiot-rk3588a device tree --- .../dt/rk3588-aiot-rk3588a.dts | 142 +++++++++++++++++- 1 file changed, 141 insertions(+), 1 deletion(-) diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts index de09a6ecc17f..7cd67b48a78d 100644 --- a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -36,6 +36,84 @@ int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; }; + adc-keys { + compatible = "adc-keys"; + io-channels = <0x1d5 0x01>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <0x1b7740>; + poll-interval = <0x64>; + status = "okay"; + + vol-up-key { + label = "volume up"; + linux,code = <0x73>; + press-threshold-microvolt = <0x4268>; + }; + + vol-down-key { + label = "volume down"; + linux,code = <0x72>; + press-threshold-microvolt = <0x65ce8>; + }; + + menu-key { + label = "menu"; + linux,code = <0x8b>; + press-threshold-microvolt = <0xd9490>; + }; + + back-key { + label = "back"; + linux,code = <0x9e>; + press-threshold-microvolt = <0x12d838>; + }; + + uboot-key { + label = "uboot key"; + linux,code = <0x73>; + press-threshold-microvolt = <0x30d40>; + }; + }; + + panel-edp0 { + compatible = "simple-panel"; + backlight = <&backlight>; + power-supply = <&vcc3v3_lcd>; + prepare-delay-ms = <120>; + enable-delay-ms = <120>; + unprepare-delay-ms = <120>; + disable-delay-ms = <120>; + width-mm = <217>; // 四舍五入物理尺寸 + height-mm = <136>; + + panel-timing { + clock-frequency = <154000000>; // eDP 时钟,约 154 MHz,可根据屏幕 datasheet 微调 + hactive = <1920>; + vactive = <1200>; + hfront-porch = <48>; + hsync-len = <32>; + hback-porch = <80>; + vfront-porch = <3>; + vsync-len = <5>; + vback-porch = <15>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <0>; + pixelclk-active = <0>; + }; + + port { + panel_in_edp0: endpoint { + remote-endpoint = <&edp0_out_panel>; + }; + }; + }; + + vcc3v3_lcd: vcc3v3-lcd { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_lcd"; + vin-supply = <&vcc_3v3_s0>; + }; }; &pinctrl { @@ -55,20 +133,69 @@ status = "disabled"; }; +&hdmi0 { + status = "disabled"; +}; + +&route_hdmi0 { + status = "disabled"; +}; + + +&hdptxphy_hdmi0 { + status = "disabled"; +}; + +&hdmi1 { + status = "okay"; +}; + +&route_hdmi1 { + status = "okay"; +}; + &dp1 { status = "disabled"; }; &edp0 { + force-hpd; + phys = <&combphy2_psu PHY_TYPE_DP>; + phy-names = "dp"; status = "okay"; + ports { + port@2 { + reg = <1>; + + edp0_out_panel: endpoint { + remote-endpoint = <&panel_in_edp0>; + }; + }; + }; }; &edp1 { status = "disabled"; }; +&route_edp0 { + status = "okay"; + connect = <&vp2_out_edp0>; +}; + +&edp0_in_vp2 { + status = "okay"; +}; + +&dp0_in_vp2 { + status = "okay"; +}; + +&dp1_in_vp2 { + status = "disabled"; +}; + &pcie2x1l0 { - reset-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>; status = "disabled"; }; @@ -79,3 +206,16 @@ &pcie3x4 { status = "disabled"; }; + + +&u2phy1_otg { + status = "okay"; +}; + +&u2phy2_host { + status = "okay"; +}; + +&u2phy3_host { + status = "okay"; +}; From bbb4bf5960abf324eb424d59e6a82eb73e0b5484 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Sat, 29 Nov 2025 22:03:50 +0800 Subject: [PATCH 10/14] Update Aiot-rk3588a device tree: remove unused includes, update LED GPIO, and add USB Type-C and regulator configurations --- .../dt/rk3588-aiot-rk3588a.dts | 241 ++++++++++++++++-- 1 file changed, 225 insertions(+), 16 deletions(-) diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts index 7cd67b48a78d..e483c792355c 100644 --- a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -7,7 +7,6 @@ /dts-v1/; #include "rk3588-evb7-lp4.dtsi" -#include "rk3588-evb7-imx415.dtsi" #include "rk3588-linux.dtsi" / { @@ -21,21 +20,11 @@ leds { compatible = "gpio-leds"; work { - gpios = <&gpio4 RK_PB7 GPIO_ACTIVE_HIGH>; + gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; }; - - - mcuinf { - compatible = "smdtmcu,STM8S00K3"; - status = "okay"; - reg = <0x62>; - #pwm-cells = <2>; - /* MCU interrupt pin: GPIO0_B0 */ - int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; - }; - +/* adc-keys { compatible = "adc-keys"; io-channels = <0x1d5 0x01>; @@ -73,7 +62,7 @@ linux,code = <0x73>; press-threshold-microvolt = <0x30d40>; }; - }; + };*/ panel-edp0 { compatible = "simple-panel"; @@ -114,19 +103,239 @@ regulator-name = "vcc3v3_lcd"; vin-supply = <&vcc_3v3_s0>; }; + + vbus5v0_typec: vbus5v0-typec { + compatible = "regulator-fixed"; + regulator-name = "vbus5v0_typec"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_host>; + pinctrl-names = "default"; + pinctrl-0 = <&typec5v_pwren>; + }; + + vcc5v0_peripherals:vcc5v0-peripherals { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_peripherals"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + enable-active-high; + gpio = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_usb>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_peripherals_en>; + }; + + vcc5v0_usb:vcc5v0-usb { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <&vcc5v0_usbdcin>; + }; + + vcc5v0_usbdcin:vcc5v0-usbdcin { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usbdcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + vin-supply = <&vcc12v_dcin>; + }; + + vcc12v_dcin:vcc12v-dcin { + compatible = "regulator-fixed"; + regulator-name = "vcc12v_dcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <0xb71b00>; + regulator-max-microvolt = <0xb71b00>; + }; }; &pinctrl { mcu { - mcum0-pins { + mcum0_pins:mcum0-pins { rockchip,pins = <0x04 0x1c 0x05 0x1a3 0x04 0x1d 0x05 0x1a3>; }; - mcum1-pins { + mcum1_pins:mcum1-pins { rockchip,pins = <0x03 0x1c 0x06 0x1a3 0x03 0x1d 0x06 0x1a3>; }; }; + usb-typec { + usbc0_int:usbc0-int { + rockchip,pins = <0x00 0x1b 0x00 0x1a8>; + }; + + typec5v_pwren:typec5v-pwren { + rockchip,pins = <0x04 0x01 0x00 0x1a3>; + }; + }; + + usb { + vcc5v0_host_en:vcc5v0-host-en { + rockchip,pins = <0x04 0x08 0x00 0x1a3>; + }; + + vcc5v0_peripherals_en:vcc5v0-peripherals-en { + rockchip,pins = <0x03 0x1d 0x00 0x1a3>; + }; + }; + +}; + +&i2c6 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c6m0_xfer>; + + nca9555: nca9555@20 { + reg = <0x20>; + compatible = "novosense,nca9555"; + status = "okay"; + gpio-controller; + #gpio-cells = <2>; + ngpios = <16>; + //可选:如果连接了 INT 引脚 + //interrupt-parent = <&gpio1>; + //interrupts = <61 IRQ_TYPE_EDGE_FALLING>; + }; + + mcuinf: mcuinf@62 { + compatible = "smdtmcu,STM8S00K3"; + status = "okay"; + reg = <0x62>; + #pwm-cells = <2>; + /* MCU interrupt pin: GPIO0_B0 */ + int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; + }; + + usbc0: fusb302@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio0>; + interrupts = ; + int-n-gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus5v0_typec>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_role_sw: endpoint@0 { + remote-endpoint = <&dwc3_0_role_switch>; + }; + }; + }; + + usb_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + op-sink-microwatt = <1000000>; + sink-pdos = + ; + source-pdos = + ; + + altmodes { + #address-cells = <1>; + #size-cells = <0>; + + altmode@0 { + reg = <0>; + svid = <0xff01>; + vdo = <0xffffffff>; + }; + }; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_orien_sw: endpoint { + remote-endpoint = <&usbdp_phy0_orientation_switch>; + }; + }; + + port@1 { + reg = <1>; + dp_altmode_mux: endpoint { + remote-endpoint = <&usbdp_phy0_dp_altmode_mux>; + }; + }; + }; + }; + }; + +}; + +&usbdrd_dwc3_0 { + dr_mode = "otg"; + usb-role-switch; + status = "okay"; + + port { + #address-cells = <1>; + #size-cells = <0>; + dwc3_0_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_role_sw>; + }; + }; +}; + +&usbdp_phy0 { + orientation-switch; + rockchip,dp-lane-mux = <0 1 2 3 >; + svid = <0xff01>; + sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>; + sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; + status = "okay"; + + port { + #address-cells = <1>; + #size-cells = <0>; + usbdp_phy0_orientation_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_orien_sw>; + }; + + usbdp_phy0_dp_altmode_mux: endpoint@1 { + reg = <1>; + remote-endpoint = <&dp_altmode_mux>; + }; + }; +}; + +&usbdp_phy0_dp { + status = "okay"; +}; + +&usbdp_phy0_u3 { + status = "okay"; +}; + +&hym8563 { + status = "disabled"; }; &dp0 { From 8c9cf7b0d27c3228ba834664e0f0ec465883e749 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Sat, 29 Nov 2025 22:45:49 +0800 Subject: [PATCH 11/14] Update Aiot-rk3588a device tree: add heartbeat and default-on LED configurations --- patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts index e483c792355c..9b5a9f4f4151 100644 --- a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -19,10 +19,14 @@ leds { compatible = "gpio-leds"; - work { - gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; + led_work_heartbeat: work_heartbeat { + gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; + led_work_default_on: work_default_on { + gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "default-on"; + }; }; /* adc-keys { From b8940497412850fcb04ebba4ec6951e03edba845 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Tue, 2 Dec 2025 22:52:01 +0800 Subject: [PATCH 12/14] Update Aiot-rk3588a device tree: correct GPIO for heartbeat LED, enable and configure ADC keys --- .../dt/rk3588-aiot-rk3588a.dts | 50 +++++++++---------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts index 9b5a9f4f4151..b55463d0ff52 100644 --- a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -17,10 +17,10 @@ bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0"; }; - leds { + gpio_leds: gpio-leds { compatible = "gpio-leds"; led_work_heartbeat: work_heartbeat { - gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; + gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; led_work_default_on: work_default_on { @@ -28,45 +28,46 @@ linux,default-trigger = "default-on"; }; }; -/* - adc-keys { + + adc_keys: adc-keys { compatible = "adc-keys"; - io-channels = <0x1d5 0x01>; - io-channel-names = "buttons"; - keyup-threshold-microvolt = <0x1b7740>; - poll-interval = <0x64>; status = "okay"; + io-channels = <&saradc 1>; + io-channel-names = "buttons"; + + keyup-threshold-microvolt = <1800000>; /* 松手阈值 */ + poll-interval = <100>; - vol-up-key { + vol_up_key: key-volume-up { label = "volume up"; - linux,code = <0x73>; + linux,code = ; press-threshold-microvolt = <0x4268>; }; - vol-down-key { + vol_down_key: key-volume-down { label = "volume down"; - linux,code = <0x72>; + linux,code = ; press-threshold-microvolt = <0x65ce8>; }; - menu-key { + menu_key: key-menu { label = "menu"; - linux,code = <0x8b>; + linux,code = ; press-threshold-microvolt = <0xd9490>; }; - back-key { + back_key: key-back { label = "back"; - linux,code = <0x9e>; + linux,code = ; press-threshold-microvolt = <0x12d838>; }; - uboot-key { + uboot_key: key-uboot { label = "uboot key"; - linux,code = <0x73>; + linux,code = ; /* U-Boot 一般也用 VUP */ press-threshold-microvolt = <0x30d40>; }; - };*/ + }; panel-edp0 { compatible = "simple-panel"; @@ -163,7 +164,6 @@ regulator-max-microvolt = <0xb71b00>; }; }; - &pinctrl { mcu { mcum0_pins:mcum0-pins { @@ -194,7 +194,6 @@ rockchip,pins = <0x03 0x1d 0x00 0x1a3>; }; }; - }; &i2c6 { @@ -204,23 +203,20 @@ nca9555: nca9555@20 { reg = <0x20>; - compatible = "novosense,nca9555"; + compatible = "novosense,nca9555","nxp,pca9555"; status = "okay"; gpio-controller; #gpio-cells = <2>; - ngpios = <16>; //可选:如果连接了 INT 引脚 - //interrupt-parent = <&gpio1>; - //interrupts = <61 IRQ_TYPE_EDGE_FALLING>; }; mcuinf: mcuinf@62 { compatible = "smdtmcu,STM8S00K3"; - status = "okay"; + status = "disabled"; reg = <0x62>; #pwm-cells = <2>; /* MCU interrupt pin: GPIO0_B0 */ - int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; + // int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; }; usbc0: fusb302@22 { From 6be09921fadea3b4ed0e215b1828f37403527810 Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Wed, 3 Dec 2025 22:38:11 +0800 Subject: [PATCH 13/14] Update Aiot-rk3588a device tree: refine GPIO and I2C configurations --- .../dt/rk3588-aiot-rk3588a.dts | 67 +++++++++++-------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts index b55463d0ff52..5b2cf6a516f7 100644 --- a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -20,12 +20,8 @@ gpio_leds: gpio-leds { compatible = "gpio-leds"; led_work_heartbeat: work_heartbeat { - gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; - }; - led_work_default_on: work_default_on { gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "default-on"; }; }; @@ -64,7 +60,7 @@ uboot_key: key-uboot { label = "uboot key"; - linux,code = ; /* U-Boot 一般也用 VUP */ + linux,code = ; press-threshold-microvolt = <0x30d40>; }; }; @@ -106,6 +102,7 @@ vcc3v3_lcd: vcc3v3-lcd { compatible = "regulator-fixed"; regulator-name = "vcc3v3_lcd"; + gpio = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>; vin-supply = <&vcc_3v3_s0>; }; @@ -164,66 +161,81 @@ regulator-max-microvolt = <0xb71b00>; }; }; + &pinctrl { mcu { - mcum0_pins:mcum0-pins { - rockchip,pins = <0x04 0x1c 0x05 0x1a3 0x04 0x1d 0x05 0x1a3>; + mcum0_pins: mcum0-pins { + rockchip,pins = + <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>, + <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; }; - mcum1_pins:mcum1-pins { - rockchip,pins = <0x03 0x1c 0x06 0x1a3 0x03 0x1d 0x06 0x1a3>; + mcum1_pins: mcum1-pins { + rockchip,pins = + <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>, + <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; }; }; usb-typec { - usbc0_int:usbc0-int { - rockchip,pins = <0x00 0x1b 0x00 0x1a8>; + usbc0_int: usbc0-int { + rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>; }; - typec5v_pwren:typec5v-pwren { - rockchip,pins = <0x04 0x01 0x00 0x1a3>; + typec5v_pwren: typec5v-pwren { + rockchip,pins = + <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; }; }; usb { - vcc5v0_host_en:vcc5v0-host-en { - rockchip,pins = <0x04 0x08 0x00 0x1a3>; + vcc5v0_peripherals_en: vcc5v0-peripherals-en { + rockchip,pins = + <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; }; + }; +}; - vcc5v0_peripherals_en:vcc5v0-peripherals-en { - rockchip,pins = <0x03 0x1d 0x00 0x1a3>; - }; +&i2c5 { + status = "okay"; + gt1x: gt1x@14 { + compatible = "goodix,gt1x"; + reg = <0x14>; + pinctrl-names = "default"; + pinctrl-0 = <&touch_gpio>; + status = "disabled"; + goodix,rst-gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>; + goodix,irq-gpio = <&gpio3 RK_PC0 IRQ_TYPE_LEVEL_LOW>; + power-supply = <&vcc3v3_lcd_n>; }; }; + &i2c6 { status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <&i2c6m0_xfer>; nca9555: nca9555@20 { reg = <0x20>; - compatible = "novosense,nca9555","nxp,pca9555"; + compatible = "nxp,pca9555"; status = "okay"; gpio-controller; #gpio-cells = <2>; - //可选:如果连接了 INT 引脚 }; mcuinf: mcuinf@62 { compatible = "smdtmcu,STM8S00K3"; - status = "disabled"; + status = "okay"; reg = <0x62>; #pwm-cells = <2>; /* MCU interrupt pin: GPIO0_B0 */ - // int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; + int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; }; usbc0: fusb302@22 { compatible = "fcs,fusb302"; reg = <0x22>; interrupt-parent = <&gpio0>; - interrupts = ; + interrupts = ; int-n-gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&usbc0_int>; @@ -288,6 +300,8 @@ }; + + &usbdrd_dwc3_0 { dr_mode = "otg"; usb-role-switch; @@ -334,9 +348,6 @@ status = "okay"; }; -&hym8563 { - status = "disabled"; -}; &dp0 { status = "disabled"; From d26f7442000c172579201c32cc67b7aafe345c7b Mon Sep 17 00:00:00 2001 From: ghhccghk <2137610394@qq.com> Date: Sat, 6 Dec 2025 20:14:04 +0800 Subject: [PATCH 14/14] Update Aiot-rk3588a device tree: refine regulator and GPIO configurations, add and update LED and USB settings --- .../dt/rk3588-aiot-rk3588a.dts | 169 ++++++++++++++---- 1 file changed, 136 insertions(+), 33 deletions(-) diff --git a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts index 5b2cf6a516f7..0a6814bc6d99 100644 --- a/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts +++ b/patch/kernel/rk35xx-vendor-6.1/dt/rk3588-aiot-rk3588a.dts @@ -13,6 +13,9 @@ model = "Shimeta Aiot rk3588a"; compatible = "rockchip,rk3588-aiot-rk3588a", "rockchip,rk3588"; + /delete-node/ chosen; + /delete-node/ work_led; + chosen { bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0"; }; @@ -23,6 +26,10 @@ linux,default-trigger = "heartbeat"; gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; }; + red_led: red_led { + linux,default-trigger = "none"; + gpios = <&nca9555 4 GPIO_ACTIVE_LOW>; + }; }; adc_keys: adc-keys { @@ -68,7 +75,8 @@ panel-edp0 { compatible = "simple-panel"; backlight = <&backlight>; - power-supply = <&vcc3v3_lcd>; + power-supply = <&vcc_3v3_s0>; + enable-gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>; prepare-delay-ms = <120>; enable-delay-ms = <120>; unprepare-delay-ms = <120>; @@ -127,19 +135,39 @@ regulator-max-microvolt = <0x4c4b40>; enable-active-high; gpio = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>; - vin-supply = <&vcc5v0_usb>; + vin-supply = <&vcc5v0_usbdcin>; pinctrl-names = "default"; pinctrl-0 = <&vcc5v0_peripherals_en>; }; - vcc5v0_usb:vcc5v0-usb { + vcc5v0_usb0:vcc5v0-usb0 { compatible = "regulator-fixed"; - regulator-name = "vcc5v0_usb"; + regulator-name = "vcc5v0_usb0"; regulator-always-on; regulator-boot-on; + gpio = <&nca9555 0 GPIO_ACTIVE_HIGH>; regulator-min-microvolt = <0x4c4b40>; regulator-max-microvolt = <0x4c4b40>; - vin-supply = <&vcc5v0_usbdcin>; + vin-supply = <&vcc5v0_peripherals>; + }; + + + vcc5v0_usb2: vcc5v0-usb2 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb2"; + regulator-always-on; + regulator-boot-on; + gpio = <&nca9555 1 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_peripherals>; + }; + + vcc5v0_usb1: vcc5v0-usb1 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb1"; + regulator-always-on; + regulator-boot-on; + gpio = <&nca9555 7 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_peripherals>; }; vcc5v0_usbdcin:vcc5v0-usbdcin { @@ -152,6 +180,60 @@ vin-supply = <&vcc12v_dcin>; }; + vcc5v0_test1: vcc5v0-test1 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_test1"; + regulator-always-on; + regulator-boot-on; + gpio = <&gpio1 0x16 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_peripherals>; + }; + + vcc5v0_test2: vcc5v0-test2 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_test2"; + regulator-always-on; + regulator-boot-on; + gpio = <&gpio1 0x08 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_peripherals>; + }; + + vcc5v0_test3: vcc5v0-test3 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_test3"; + regulator-always-on; + regulator-boot-on; + gpio = <&gpio1 0x0d GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_peripherals>; + }; + + vcc5v0_test5: vcc5v0-test5 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_test5"; + regulator-always-on; + regulator-boot-on; + gpio = <&gpio1 0x0c GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_peripherals>; + }; + + vcc5v0_test4: vcc5v0-test4 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_test4"; + regulator-always-on; + regulator-boot-on; + gpio = <&gpio4 0x0a GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_peripherals>; + }; + + vcc5v0_usb2: vcc5v0-usb2 { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb2"; + regulator-always-on; + regulator-boot-on; + gpio = <&nca9555 1 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_peripherals>; + }; + vcc12v_dcin:vcc12v-dcin { compatible = "regulator-fixed"; regulator-name = "vcc12v_dcin"; @@ -160,20 +242,20 @@ regulator-min-microvolt = <0xb71b00>; regulator-max-microvolt = <0xb71b00>; }; + + test-power { + status = "okay"; + }; }; &pinctrl { - mcu { - mcum0_pins: mcum0-pins { - rockchip,pins = - <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>, - <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; - }; - - mcum1_pins: mcum1-pins { - rockchip,pins = - <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>, - <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + smdtio { + smdtio_gpio:smdtio-gpio { + rockchip,pins = <1 0x16 RK_FUNC_GPIO &pcfg_pull_up>, + <1 0x08 RK_FUNC_GPIO &pcfg_pull_up>, + <1 0x0d RK_FUNC_GPIO &pcfg_pull_up>, + <1 0x0c RK_FUNC_GPIO &pcfg_pull_up>, + <4 0x0a RK_FUNC_GPIO &pcfg_pull_up>; }; }; @@ -191,25 +273,24 @@ usb { vcc5v0_peripherals_en: vcc5v0-peripherals-en { rockchip,pins = - <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; }; }; }; +/** 关闭这个节点防止冲突 */ +>1x { + status = "disabled"; +}; -&i2c5 { +/** 修改成为正确的GPIO */ +&es8388_sound { + hp-con-gpio = <&gpio4 RK_PC3 GPIO_ACTIVE_HIGH>; status = "okay"; - gt1x: gt1x@14 { - compatible = "goodix,gt1x"; - reg = <0x14>; - pinctrl-names = "default"; - pinctrl-0 = <&touch_gpio>; - status = "disabled"; - goodix,rst-gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>; - goodix,irq-gpio = <&gpio3 RK_PC0 IRQ_TYPE_LEVEL_LOW>; - power-supply = <&vcc3v3_lcd_n>; - }; }; +&gmac1 { + snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; +}; &i2c6 { status = "okay"; @@ -227,8 +308,6 @@ status = "okay"; reg = <0x62>; #pwm-cells = <2>; - /* MCU interrupt pin: GPIO0_B0 */ - int-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; }; usbc0: fusb302@22 { @@ -300,8 +379,6 @@ }; - - &usbdrd_dwc3_0 { dr_mode = "otg"; usb-role-switch; @@ -348,11 +425,12 @@ status = "okay"; }; - &dp0 { status = "disabled"; }; + +/** HDMI 0 不使用 */ &hdmi0 { status = "disabled"; }; @@ -366,10 +444,22 @@ status = "disabled"; }; +&hdmi0_sound { + status = "disabled"; +}; + +&hdmi0_in_vp0 { + status = "disabled"; +}; + + + &hdmi1 { + enable-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>; status = "okay"; }; + &route_hdmi1 { status = "okay"; }; @@ -381,6 +471,7 @@ &edp0 { force-hpd; phys = <&combphy2_psu PHY_TYPE_DP>; + max-link-rate = <0x14>; phy-names = "dp"; status = "okay"; ports { @@ -415,6 +506,10 @@ status = "disabled"; }; +/** not pcie + ** + **/ + &pcie2x1l0 { status = "disabled"; }; @@ -439,3 +534,11 @@ &u2phy3_host { status = "okay"; }; + +&usbhost3_0{ + status = "okay"; +}; + +&usbhost_dwc3_0 { + status = "okay"; +};