Pullrequest mis5001 clear patch 0305 (#242)

* project/app : Add uvc_app_tiny application

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* project/cfg/BoardConfig_IPC/overlay : Add Ubuntu system support for Rockit and RKNN libraries

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/of : Add support for dynamic device tree

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/usb/serial : Add CH343 driver support

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/staging : Disable partial logging of fbtft

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/pinctrl/pinctrl-rockchip.h : Fix pinctrl configuration failure issue

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/include/dt-bindings/soc/rockchip,boot-mode.h : Add support for the reboot U-Boot command in the BusyBox system

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/video : Add logo display support for LF40-480480-ARK and LF40-720720-ARK

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/arch/arm/boot/dts : Add device tree files for the Luckfox RV1103/RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/arch/arm/configs : Add device tree files for the Luckfox RV1103/RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot/drivers/mmc/mmc.c : Fix the issue where some Micro SD cards fail to boot

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot/common/image-fit.c : Add U-Boot support for luckfox-config

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/rkbin/bin/rv11 : Add firmware with a serial baud rate of 115200 and back up the original firmware

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot/arch/arm/dts : Add device tree files for the Luckfox RV1103/RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot/configs : Add defconfig files for the Luckfox RV1103/RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot : Add support for the reboot U-Boot command in the BusyBox system

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/media/i2c : Add MIS5001 driver support

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/arch/arm : Add default support for MIS5001 on Luckfox RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/tools/board : Delete irrelevant overwrite files and patch files

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/drv_ko/insmod_ko.sh : Register mis5001 driver during boot process

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* media/isp/release_camera_engine_rkaiq_rv1106_arm-rockchip830-linux-uclibcgnueabihf/isp_iqfiles : Add mis5001 iqfile

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* project/app/rkipc/rkipc/src/rv1106_ipc : Add rkipc application support for mis5001 sensor

Signed-off-by: eng29 <eng29@luckfox.com>

* project/cfg/BoardConfig_IPC : Enable default retrieval of mis5001 iqfile and include ROCKIT and RKNN libraries of RV1106 series board

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* project/build.sh : Remove operations related to applying and deleting patches

Signed-off-by: eng29 <eng29@luckfox.com>

* project/build.sh : Modify build system menu description; Apply lightweight system processing only during Buildroot and BusyBox system compilation

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/tools/board/buildroot/luckfox_pico_w_defconfig : Add pppd and pgrep for 4G module

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* sysdrv/tools/board/kernel/rv1106-luckfox-pico-ultra-ipc.dtsi : Add uart4m1 support for lastest luckfox-config tool

Signed-off-by: eng29 <eng29@luckfox.com>

---------

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
Signed-off-by: eng29 <eng29@luckfox.com>
This commit is contained in:
luckfox-eng29
2025-03-05 17:21:58 +08:00
committed by GitHub
parent a4230afbf4
commit 485f09ece6
208 changed files with 44172 additions and 15059 deletions

View File

@@ -1,48 +0,0 @@
#!/bin/sh
#
# sshd Starts sshd.
#
# Make sure the ssh-keygen progam exists
[ -f /usr/bin/ssh-keygen ] || exit 0
umask 077
start() {
chown root:root /var/empty/
# Create any missing keys
/usr/bin/ssh-keygen -A
printf "Starting sshd: "
/usr/sbin/sshd
touch /var/lock/sshd
echo "OK"
}
stop() {
printf "Stopping sshd: "
killall sshd
rm -f /var/lock/sshd
echo "OK"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?

View File

@@ -1,27 +0,0 @@
#!/bin/sh
check_hciconfig() {
if command -v hciattach &> /dev/null; then
if lsmod | grep -q "aic8800_fdrv"; then
hciattach -s 1500000 /dev/ttyS1 any 1500000 flow nosleep&
sleep 2
if hciconfig -a | grep -q "hci0"; then
hciconfig hci0 up&
else
echo "hci0 not found or not available."
fi
else
echo "aic8800_fdrv not found."
fi
fi
}
case $1 in
start)
check_hciconfig
;;
*)
exit 1
;;
esac

View File

@@ -1,55 +0,0 @@
#!/bin/sh
#
# python Starts python code.
#
# Make sure the python progam exists
[ -f /usr/bin/python ] || exit 0
umask 077
main_path="/root/main.py"
boot_path="/root/boot.py"
start() {
# Run python progam
if [ -f $main_path ]; then
echo "running $main_path..."
python $main_path
else
if [ -f $boot_path ]; then
echo "running $boot_path..."
python $boot_path
else
echo "$main_path and $boot_path not exist ,pass..."
fi
fi
echo "OK"
}
stop() {
printf "Stopping python: "
killall python
echo "OK"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?

View File

@@ -1,16 +0,0 @@
#!/bin/sh
case $1 in
start)
if [ "$(hwclock | grep "1969")" ]; then
echo "RTC time calibration"
date -s 2024-01-01
hwclock -w
else
echo "RTC does not require time calibration"
fi
;;
*)
exit 1
;;
esac

Binary file not shown.

View File

@@ -66,6 +66,7 @@ BR2_PACKAGE_LIBV4L=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_CJSON=y
BR2_PACKAGE_CJSON_UTILS=y
BR2_PACKAGE_PCRE2=y
BR2_PACKAGE_BLUEZ_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS=y
@@ -77,6 +78,9 @@ BR2_PACKAGE_IW=y
BR2_PACKAGE_LRZSZ=y
BR2_PACKAGE_NTP=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_PPPD=y
BR2_PACKAGE_PPPD_FILTER=y
BR2_PACKAGE_PPPD_RADIUS=y
BR2_PACKAGE_SAMBA4=y
BR2_PACKAGE_SOCAT=y
BR2_PACKAGE_BASH=y
@@ -84,6 +88,7 @@ BR2_PACKAGE_BASH_LOADABLE_EXAMPLES=y
BR2_PACKAGE_DIALOG=y
BR2_PACKAGE_TIME=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_PROCPS_NG=y
BR2_PACKAGE_UTIL_LINUX_LIBMOUNT=y
BR2_PACKAGE_NANO=y
BR2_PACKAGE_HOST_DTC=y

View File

@@ -1,24 +0,0 @@
export PATH="/bin:/sbin:/usr/bin:/usr/sbin"
export EDITOR='/bin/vi'
#export PS1='[\u@\h \W]# '
if [ "$PS1" ]; then
if [ "`id -u`" -eq 0 ]; then
#export PS1='# '
export PS1='[\u@\h \W]# '
else
#export PS1='$ '
export PS1='[\u@\h \W]$ '
fi
fi
# Source configuration files from /etc/profile.d
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
unset i

View File

@@ -1,13 +0,0 @@
[global]
workgroup = WORKGROUP
server string = luckfox samba server
security = user
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
[public]
comment = public share
path = /
read only = no
user = root
create mask = 0755
directory mask = 0755

View File

@@ -1,9 +0,0 @@
root:$1$dXmV8ZLO$eNAQzSYOgRkYMJRdsHwLS1:19664::::::
daemon:*:::::::
bin:*:::::::
sys:*:::::::
sync:*:::::::
mail:*:::::::
www-data:*:::::::
operator:*:::::::
nobody:*:::::::

View File

@@ -1 +0,0 @@
root:0:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:EF8BDD6C516032CDB7C15080FFE1B2D5:[U ]:LCT-5FEF3549:

View File

@@ -1,116 +0,0 @@
# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/bin:/sbin:/usr/bin:/usr/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
#KbdInteractiveAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the KbdInteractiveAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via KbdInteractiveAuthentication may bypass
# the setting of "PermitRootLogin prohibit-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and KbdInteractiveAuthentication to 'no'.
#UsePAM no
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# override default of no subsystems
Subsystem sftp /usr/libexec/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server

View File

@@ -1,2 +0,0 @@
./custom.tar.gz
./*.tar.gz

File diff suppressed because it is too large Load Diff

View File

@@ -1,99 +0,0 @@
From 94a0b2232c729c757547b88f2cbc035cef7e0bc1 Mon Sep 17 00:00:00 2001
From: luckfox-eng29 <eng29@luckfox.com>
Date: Tue, 8 Oct 2024 21:50:54 +0800
Subject: [PATCH] patch:logo_center
Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
---
.../source/kernel/drivers/video/fbdev/core/fbcon.c | 14 +++++++++++++-
.../source/kernel/drivers/video/fbdev/core/fbmem.c | 7 ++++++-
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/sysdrv/source/kernel/drivers/video/fbdev/core/fbcon.c b/sysdrv/source/kernel/drivers/video/fbdev/core/fbcon.c
index 27828435d..c3ac676bb 100644
--- a/sysdrv/source/kernel/drivers/video/fbdev/core/fbcon.c
+++ b/sysdrv/source/kernel/drivers/video/fbdev/core/fbcon.c
@@ -88,6 +88,9 @@
# define DPRINTK(fmt, args...)
#endif
+#define CURSOR_ENABLE 0
+#define SHOW_CENTER 1
+
/*
* FIXME: Locking
*
@@ -365,6 +368,7 @@ static int get_color(struct vc_data *vc, struct fb_info *info,
static void fb_flashcursor(struct work_struct *work)
{
+#if CURSOR_ENABLE
struct fb_info *info = container_of(work, struct fb_info, queue);
struct fbcon_ops *ops = info->fbcon_par;
struct vc_data *vc = NULL;
@@ -395,6 +399,7 @@ static void fb_flashcursor(struct work_struct *work)
ops->cursor(vc, info, mode, get_color(vc, info, c, 1),
get_color(vc, info, c, 0));
console_unlock();
+#endif
}
static void cursor_timer_handler(struct timer_list *t)
@@ -601,7 +606,12 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
if (fb_get_color_depth(&info->var, &info->fix) == 1)
erase &= ~0x400;
logo_height = fb_prepare_logo(info, ops->rotate);
- logo_lines = DIV_ROUND_UP(logo_height, vc->vc_font.height);
+
+#if SHOW_CENTER
+ logo_height += (info->var.yres/2) - (logo_height/2);
+#endif
+
+ logo_lines = DIV_ROUND_UP(logo_height, vc->vc_font.height);
q = (unsigned short *) (vc->vc_origin +
vc->vc_size_row * rows);
step = logo_lines * cols;
@@ -1331,6 +1341,7 @@ static void fbcon_clear_margins(struct vc_data *vc, int bottom_only)
static void fbcon_cursor(struct vc_data *vc, int mode)
{
+#if CURSOR_ENABLE
struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
struct fbcon_ops *ops = info->fbcon_par;
int c = scr_readw((u16 *) vc->vc_pos);
@@ -1352,6 +1363,7 @@ static void fbcon_cursor(struct vc_data *vc, int mode)
ops->cursor(vc, info, mode, get_color(vc, info, c, 1),
get_color(vc, info, c, 0));
+#endif
}
static int scrollback_phys_max = 0;
diff --git a/sysdrv/source/kernel/drivers/video/fbdev/core/fbmem.c b/sysdrv/source/kernel/drivers/video/fbdev/core/fbmem.c
index d787a344b..690d48fba 100644
--- a/sysdrv/source/kernel/drivers/video/fbdev/core/fbmem.c
+++ b/sysdrv/source/kernel/drivers/video/fbdev/core/fbmem.c
@@ -38,7 +38,7 @@
#include <asm/fb.h>
-
+#define SHOW_CENTER 1
/*
* Frame buffer device initialization and setup routines
*/
@@ -520,6 +520,11 @@ static int fb_show_logo_line(struct fb_info *info, int rotate,
image.dy = y;
}
+#if SHOW_CENTER
+image.dx = (info->var.xres - logo->width) / 2;
+image.dy = (info->var.yres - logo->height) / 2;
+#endif
+
image.width = logo->width;
image.height = logo->height;
--
2.34.1

File diff suppressed because it is too large Load Diff

View File

@@ -1,22 +0,0 @@
CONFIG_PPP=y
CONFIG_PPP_BSDCOMP=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_MPPE=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPPOE=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_RNDIS_HOST=y
CONFIG_USB_NET_QMI_WWAN=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_IPW=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USB_ETH=y
CONFIG_USB_ETH_EEM=y
CONFIG_USB_FUNCTIONFS=y
CONFIG_USB_FUNCTIONFS_ETH=y
CONFIG_USB_FUNCTIONFS_RNDIS=y
CONFIG_USB_G_MULTI=y
CONFIG_USB_G_MULTI_CDC=y

View File

@@ -1,42 +0,0 @@
CONFIG_POSIX_MQUEUE=y
CONFIG_CGROUPS=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_RDMA=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_DEBUG=y
CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_NETFILTER=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_TABLES=y
CONFIG_NFT_MASQ=y
CONFIG_NFT_REDIR=y
CONFIG_NFT_NAT=y
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_CGROUP=y
CONFIG_NETFILTER_XT_MATCH_COMMENT=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NF_TABLES_IPV4=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP6_NF_IPTABLES=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE=m
CONFIG_NET_SCHED=y
CONFIG_NET_CLS_CGROUP=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_VETH=y
CONFIG_OVERLAY_FS=y

View File

@@ -1,24 +0,0 @@
CONFIG_CGROUPS=y
CONFIG_PPP=y
CONFIG_PPP_BSDCOMP=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_MPPE=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPPOE=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_RNDIS_HOST=y
CONFIG_USB_NET_QMI_WWAN=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_IPW=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USB_ETH=y
CONFIG_USB_ETH_EEM=y
CONFIG_USB_FUNCTIONFS=y
CONFIG_USB_FUNCTIONFS_ETH=y
CONFIG_USB_FUNCTIONFS_RNDIS=y
CONFIG_USB_G_MULTI=y
CONFIG_USB_G_MULTI_CDC=y
CONFIG_NLS_UTF8=y

View File

@@ -1,44 +0,0 @@
CONFIG_BLK_DEV_INITRD=y
CONFIG_CRYPTO=y
CONFIG_DAX=y
CONFIG_EROFS_FS=y
CONFIG_KERNEL_GZIP=y
CONFIG_LIBCRC32C=y
CONFIG_MMC=y
CONFIG_MTD_BLOCK=y
CONFIG_PHY_ROCKCHIP_CSI2_DPHY=y
CONFIG_PRINTK_TIME_FROM_ARM_ARCH_TIMER=y
CONFIG_ROCKCHIP_DVBM=y
CONFIG_ROCKCHIP_HW_DECOMPRESS=y
CONFIG_ROCKCHIP_MULTI_RGA=y
CONFIG_ROCKCHIP_RAMDISK=y
CONFIG_ROCKCHIP_RGA_PROC_FS=y
CONFIG_ROCKCHIP_THUNDER_BOOT=y
CONFIG_SND_SOC_RV1106=m
CONFIG_VIDEO_ROCKCHIP_CIF=y
CONFIG_VIDEO_ROCKCHIP_ISP=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_FS_DAX=y
CONFIG_FS_IOMAP=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_INITRD_ASYNC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=32
CONFIG_MMC_DW=y
CONFIG_MMC_DW_PLTFM=y
CONFIG_MMC_DW_ROCKCHIP=m
CONFIG_MMC_QUEUE_DEPTH=1
CONFIG_MTD_BLKDEVS=y
CONFIG_ROCKCHIP_RGA_DEBUGGER=y
CONFIG_ROCKCHIP_THUNDER_BOOT_MMC=y
CONFIG_ROCKCHIP_THUNDER_BOOT_SFC=y
CONFIG_VIDEO_ROCKCHIP_THUNDER_BOOT_ISP=y
CONFIG_INPUT=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_GPIO=y

View File

@@ -1,346 +0,0 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_KERNEL_XZ=y
CONFIG_DEFAULT_HOSTNAME="luckfox"
CONFIG_SYSVIPC=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_BUG is not set
# CONFIG_BASE_FULL is not set
# CONFIG_IO_URING is not set
CONFIG_EMBEDDED=y
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set
CONFIG_ARCH_ROCKCHIP=y
# CONFIG_VDSO is not set
CONFIG_VMSPLIT_3G_OPT=y
CONFIG_THUMB2_KERNEL=y
# CONFIG_CPU_SW_DOMAIN_PAN is not set
CONFIG_FORCE_MAX_ZONEORDER=9
CONFIG_UACCESS_WITH_MEMCPY=y
CONFIG_CMDLINE="user_debug=31"
CONFIG_CMDLINE_EXTEND=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPUFREQ_DT=y
CONFIG_ARM_ROCKCHIP_CPUFREQ=y
CONFIG_CPU_IDLE=y
CONFIG_VFP=y
CONFIG_NEON=y
# CONFIG_SUSPEND is not set
CONFIG_JUMP_LABEL=y
# CONFIG_STACKPROTECTOR_STRONG is not set
# CONFIG_STRICT_KERNEL_RWX is not set
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
# CONFIG_EFI_PARTITION is not set
CONFIG_CMDLINE_PARTITION=y
# CONFIG_MQ_IOSCHED_KYBER is not set
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
CONFIG_CMA=y
CONFIG_CMA_INACTIVE=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_INET_TABLE_PERTURB_ORDER=8
# CONFIG_INET_DIAG is not set
CONFIG_IPV6=m
# CONFIG_IPV6_SIT is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_ALLOW_DEV_COREDUMP is not set
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_OF_PARTS is not set
CONFIG_MTD_BLOCK=y
CONFIG_MTD_SPI_NAND=y
CONFIG_MTD_SPI_NOR=y
# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
CONFIG_MTD_SPI_NOR_MISC=y
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_BLOCK=y
CONFIG_OF_OVERLAY=y
CONFIG_OF_DTBO=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_UFSHCD=y
CONFIG_NETDEVICES=y
# CONFIG_NET_CORE is not set
# CONFIG_NET_VENDOR_ALACRITECH is not set
# CONFIG_NET_VENDOR_AMAZON is not set
# CONFIG_NET_VENDOR_AQUANTIA is not set
# CONFIG_NET_VENDOR_ARC is not set
# CONFIG_NET_VENDOR_AURORA is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CADENCE is not set
# CONFIG_NET_VENDOR_CAVIUM is not set
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
# CONFIG_NET_VENDOR_FARADAY is not set
# CONFIG_NET_VENDOR_GOOGLE is not set
# CONFIG_NET_VENDOR_HISILICON is not set
# CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NI is not set
# CONFIG_NET_VENDOR_PENSANDO is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RENESAS is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_STMMAC_ETH=y
# CONFIG_DWMAC_GENERIC is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NET_VENDOR_XILINX is not set
CONFIG_RK630_PHY=y
# CONFIG_USB_NET_DRIVERS is not set
# CONFIG_WLAN_VENDOR_ADMTEK is not set
# CONFIG_WLAN_VENDOR_ATH is not set
# CONFIG_WLAN_VENDOR_ATMEL is not set
# CONFIG_WLAN_VENDOR_BROADCOM is not set
# CONFIG_WLAN_VENDOR_CISCO is not set
# CONFIG_WLAN_VENDOR_INTEL is not set
# CONFIG_WLAN_VENDOR_INTERSIL is not set
# CONFIG_WLAN_VENDOR_MARVELL is not set
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
# CONFIG_WLAN_VENDOR_MICROCHIP is not set
# CONFIG_WLAN_VENDOR_RALINK is not set
# CONFIG_WLAN_VENDOR_REALTEK is not set
# CONFIG_WLAN_VENDOR_RSI is not set
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
# CONFIG_WLAN_VENDOR_ZYDAS is not set
# CONFIG_WLAN_VENDOR_QUANTENNA is not set
CONFIG_WL_ROCKCHIP=m
CONFIG_WIFI_BUILD_MODULE=y
# CONFIG_BCMDHD is not set
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_ADC=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_GPIO_POLLED=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GOODIX=y
CONFIG_TOUCHSCREEN_EDT_FT5X06=y
# CONFIG_SERIO is not set
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
CONFIG_SERIAL_8250_NR_UARTS=6
CONFIG_SERIAL_8250_RUNTIME_UARTS=6
CONFIG_SERIAL_8250_DW=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_ROCKCHIP=y
# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_GPIO=y
CONFIG_I2C_RK3X=y
CONFIG_SPI=y
CONFIG_SPI_ROCKCHIP=y
CONFIG_SPI_ROCKCHIP_SFC=y
CONFIG_SPI_SPIDEV=y
CONFIG_SPI_SLAVE=y
# CONFIG_PTP_1588_CLOCK is not set
CONFIG_GPIO_SYSFS=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_RESTART=y
CONFIG_SYSCON_REBOOT_MODE=y
CONFIG_POWER_SUPPLY=y
# CONFIG_HWMON is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_GOV_USER_SPACE=y
CONFIG_CPU_THERMAL=y
CONFIG_DEVFREQ_THERMAL=y
CONFIG_ROCKCHIP_THERMAL=y
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_PWM=y
# CONFIG_MEDIA_CEC_SUPPORT is not set
CONFIG_MEDIA_SUPPORT=y
# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
# CONFIG_MEDIA_TEST_SUPPORT is not set
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_VIDEOBUF2_CMA_SG=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_ROCKCHIP_CIF=m
CONFIG_VIDEO_ROCKCHIP_ISP=m
CONFIG_VIDEO_RK_IRCUT=y
CONFIG_VIDEO_SC3336=m
CONFIG_DRM=y
CONFIG_DRM_EDID=y
CONFIG_DRM_ROCKCHIP=y
CONFIG_ROCKCHIP_VOP=y
CONFIG_ROCKCHIP_RGB=y
CONFIG_DRM_PANEL_SIMPLE=y
CONFIG_DRM_SII902X=y
CONFIG_BACKLIGHT_PWM=y
CONFIG_ROCKCHIP_MULTI_RGA=m
CONFIG_ROCKCHIP_RGA_PROC_FS=y
# CONFIG_ROCKCHIP_RGA_DEBUG_FS is not set
CONFIG_ROCKCHIP_RVE=m
CONFIG_ROCKCHIP_RVE_PROC_FS=y
CONFIG_ROCKCHIP_DVBM=m
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=y
# CONFIG_SND_PCM_TIMER is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
CONFIG_SND_SOC=y
CONFIG_SND_SOC_ROCKCHIP=y
CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y
CONFIG_SND_SOC_RV1106=y
CONFIG_SND_SIMPLE_CARD=y
# CONFIG_HID is not set
# CONFIG_USB_HID is not set
CONFIG_USB=y
CONFIG_USB_OTG=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_USB_DWC3=y
CONFIG_USB_GADGET=y
CONFIG_USB_CONFIGFS=y
CONFIG_USB_CONFIGFS_UEVENT=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_CONFIGFS_F_UAC1=y
CONFIG_USB_CONFIGFS_F_UAC2=y
CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_GADGETFS=y
CONFIG_USB_MASS_STORAGE=y
CONFIG_MMC=y
# CONFIG_PWRSEQ_EMMC is not set
CONFIG_MMC_BLOCK_MINORS=32
CONFIG_MMC_QUEUE_DEPTH=1
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_ACTIVITY=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_ROCKCHIP=y
CONFIG_DMADEVICES=y
CONFIG_PL330_DMA=y
CONFIG_DMABUF_HEAPS_ROCKCHIP=y
CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_HEAP=y
CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_ALIGNMENT=0
CONFIG_DMABUF_RK_HEAPS_DEBUG=y
# CONFIG_VIRTIO_MENU is not set
# CONFIG_VHOST_MENU is not set
CONFIG_STAGING=y
CONFIG_FB_TFT=y
CONFIG_FB_TFT_ST7735R=y
CONFIG_FB_TFT_ST7789V=y
CONFIG_COMMON_CLK_PROCFS=y
# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_CPU_RV1106=y
CONFIG_ROCKCHIP_AMP=y
CONFIG_ROCKCHIP_CPUINFO=y
CONFIG_ROCKCHIP_IOMUX=y
CONFIG_ROCKCHIP_OPP=y
CONFIG_ROCKCHIP_PVTM=y
CONFIG_ROCKCHIP_SYSTEM_MONITOR=y
CONFIG_ROCKCHIP_VENDOR_STORAGE=y
CONFIG_FIQ_DEBUGGER=y
CONFIG_FIQ_DEBUGGER_NO_SLEEP=y
CONFIG_FIQ_DEBUGGER_CONSOLE=y
CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y
CONFIG_RK_CONSOLE_THREAD=y
CONFIG_FIQ_DEBUGGER_FIQ_GLUE=y
CONFIG_ROCKCHIP_NPOR_POWERGOOD=y
CONFIG_RK_CMA_PROCFS=y
CONFIG_RK_DMABUF_PROCFS=y
CONFIG_RK_MEMBLOCK_PROCFS=y
CONFIG_DEVFREQ_GOV_USERSPACE=y
CONFIG_EXTCON=y
CONFIG_IIO=y
CONFIG_ROCKCHIP_SARADC=y
CONFIG_PWM=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_PHY_ROCKCHIP_CSI2_DPHY=m
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
CONFIG_PHY_ROCKCHIP_MIPI_RX=y
CONFIG_ANDROID=y
CONFIG_ROCKCHIP_OTP=y
CONFIG_ROCKCHIP_RKNPU=m
# CONFIG_ROCKCHIP_RKNPU_DEBUG_FS is not set
CONFIG_ROCKCHIP_RKNPU_PROC_FS=y
CONFIG_ROCKCHIP_RKNPU_DMA_HEAP=y
CONFIG_EXT4_FS=y
CONFIG_EXPORTFS_BLOCK_OPS=y
# CONFIG_DNOTIFY is not set
CONFIG_VFAT_FS=y
CONFIG_EXFAT_FS=y
CONFIG_TMPFS=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
# CONFIG_JFFS2_RTIME is not set
CONFIG_UBIFS_FS=y
CONFIG_UBIFS_FS_ADVANCED_COMPR=y
# CONFIG_UBIFS_FS_ZSTD is not set
CONFIG_SQUASHFS=y
# CONFIG_SQUASHFS_ZLIB is not set
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_CRYPTO_ZSTD=y
# CONFIG_CRYPTO_HW is not set
# CONFIG_XZ_DEC_X86 is not set
# CONFIG_XZ_DEC_POWERPC is not set
# CONFIG_XZ_DEC_IA64 is not set
# CONFIG_XZ_DEC_SPARC is not set
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=0
CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_MISC is not set
# CONFIG_SCHED_DEBUG is not set
# CONFIG_FTRACE is not set
# CONFIG_RUNTIME_TESTING_MENU is not set

View File

@@ -1,233 +0,0 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_KERNEL_XZ=y
CONFIG_DEFAULT_HOSTNAME="luckfox"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_NO_HZ=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_BUG is not set
# CONFIG_ELF_CORE is not set
# CONFIG_BASE_FULL is not set
# CONFIG_IO_URING is not set
CONFIG_EMBEDDED=y
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set
CONFIG_ARCH_ROCKCHIP=y
# CONFIG_VDSO is not set
CONFIG_VMSPLIT_3G_OPT=y
CONFIG_THUMB2_KERNEL=y
# CONFIG_CPU_SW_DOMAIN_PAN is not set
CONFIG_FORCE_MAX_ZONEORDER=9
CONFIG_UACCESS_WITH_MEMCPY=y
CONFIG_CMDLINE="user_debug=31"
CONFIG_CMDLINE_EXTEND=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPUFREQ_DT=y
CONFIG_ARM_ROCKCHIP_CPUFREQ=y
CONFIG_CPU_IDLE=y
CONFIG_VFP=y
CONFIG_NEON=y
# CONFIG_SUSPEND is not set
CONFIG_JUMP_LABEL=y
# CONFIG_STACKPROTECTOR_STRONG is not set
# CONFIG_STRICT_KERNEL_RWX is not set
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
# CONFIG_MSDOS_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
CONFIG_CMDLINE_PARTITION=y
# CONFIG_MQ_IOSCHED_KYBER is not set
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
CONFIG_CMA=y
CONFIG_CMA_INACTIVE=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_INET_TABLE_PERTURB_ORDER=8
# CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set
# CONFIG_WIRELESS is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_ALLOW_DEV_COREDUMP is not set
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_OF_PARTS is not set
CONFIG_NETDEVICES=y
# CONFIG_NET_CORE is not set
# CONFIG_NET_VENDOR_ALACRITECH is not set
# CONFIG_NET_VENDOR_AMAZON is not set
# CONFIG_NET_VENDOR_AQUANTIA is not set
# CONFIG_NET_VENDOR_ARC is not set
# CONFIG_NET_VENDOR_AURORA is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CADENCE is not set
# CONFIG_NET_VENDOR_CAVIUM is not set
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
# CONFIG_NET_VENDOR_FARADAY is not set
# CONFIG_NET_VENDOR_GOOGLE is not set
# CONFIG_NET_VENDOR_HISILICON is not set
# CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NI is not set
# CONFIG_NET_VENDOR_PENSANDO is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RENESAS is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_STMMAC_ETH=y
# CONFIG_DWMAC_GENERIC is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NET_VENDOR_XILINX is not set
CONFIG_RK630_PHY=y
# CONFIG_WLAN is not set
# CONFIG_INPUT is not set
# CONFIG_SERIO is not set
# CONFIG_VT is not set
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
CONFIG_SERIAL_8250_NR_UARTS=6
CONFIG_SERIAL_8250_RUNTIME_UARTS=6
CONFIG_SERIAL_8250_DW=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_ROCKCHIP=y
# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_RK3X=y
# CONFIG_PTP_1588_CLOCK is not set
CONFIG_GPIO_SYSFS=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_RESTART=y
CONFIG_SYSCON_REBOOT_MODE=y
CONFIG_POWER_SUPPLY=y
# CONFIG_HWMON is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_GOV_USER_SPACE=y
CONFIG_CPU_THERMAL=y
CONFIG_DEVFREQ_THERMAL=y
CONFIG_ROCKCHIP_THERMAL=y
CONFIG_WATCHDOG=y
CONFIG_DW_WATCHDOG=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_PWM=y
# CONFIG_MEDIA_CEC_SUPPORT is not set
CONFIG_MEDIA_SUPPORT=y
# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
# CONFIG_MEDIA_TEST_SUPPORT is not set
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEOBUF2_CMA_SG=y
CONFIG_VIDEOBUF2_VMALLOC=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_ROCKCHIP_CIF=m
CONFIG_VIDEO_ROCKCHIP_ISP=m
CONFIG_VIDEO_RK_IRCUT=y
CONFIG_ROCKCHIP_MULTI_RGA=m
CONFIG_ROCKCHIP_RVE=m
CONFIG_ROCKCHIP_DVBM=m
CONFIG_SOUND=y
CONFIG_SND=y
# CONFIG_SND_PCM_TIMER is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
CONFIG_SND_SOC=y
CONFIG_SND_SOC_ROCKCHIP=y
CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y
CONFIG_SND_SOC_RV1106=y
CONFIG_SND_SIMPLE_CARD=y
# CONFIG_USB_SUPPORT is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_ACTIVITY=y
CONFIG_RTC_CLASS=y
CONFIG_DMADEVICES=y
CONFIG_PL330_DMA=y
CONFIG_SYNC_FILE=y
CONFIG_DMABUF_HEAPS_ROCKCHIP=y
CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_HEAP=y
CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_ALIGNMENT=0
CONFIG_DMABUF_RK_HEAPS_DEBUG=y
# CONFIG_VIRTIO_MENU is not set
# CONFIG_VHOST_MENU is not set
CONFIG_STAGING=y
CONFIG_COMMON_CLK_PROCFS=y
# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_CPU_RV1106=y
CONFIG_ROCKCHIP_AMP=y
CONFIG_ROCKCHIP_CPUINFO=y
CONFIG_ROCKCHIP_PVTM=y
CONFIG_ROCKCHIP_SYSTEM_MONITOR=y
CONFIG_FIQ_DEBUGGER=y
CONFIG_FIQ_DEBUGGER_NO_SLEEP=y
CONFIG_FIQ_DEBUGGER_CONSOLE=y
CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y
CONFIG_RK_CONSOLE_THREAD=y
CONFIG_FIQ_DEBUGGER_FIQ_GLUE=y
CONFIG_ROCKCHIP_NPOR_POWERGOOD=y
CONFIG_PM_DEVFREQ=y
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
CONFIG_DEVFREQ_GOV_USERSPACE=y
CONFIG_IIO=y
CONFIG_ROCKCHIP_SARADC=y
CONFIG_PWM=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_PHY_ROCKCHIP_CSI2_DPHY=m
CONFIG_PHY_ROCKCHIP_MIPI_RX=y
CONFIG_ANDROID=y
# CONFIG_NVMEM_SYSFS is not set
CONFIG_ROCKCHIP_OTP=y
CONFIG_ROCKCHIP_RKNPU=m
CONFIG_ROCKCHIP_RKNPU_PROC_FS=y
# CONFIG_FILE_LOCKING is not set
# CONFIG_DNOTIFY is not set
CONFIG_TMPFS=y
CONFIG_SQUASHFS=y
# CONFIG_SQUASHFS_ZLIB is not set
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_NLS=y
# CONFIG_XZ_DEC_X86 is not set
# CONFIG_XZ_DEC_POWERPC is not set
# CONFIG_XZ_DEC_IA64 is not set
# CONFIG_XZ_DEC_SPARC is not set
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=0
CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_MISC is not set
# CONFIG_SCHED_DEBUG is not set
# CONFIG_FTRACE is not set
# CONFIG_RUNTIME_TESTING_MENU is not set

View File

@@ -1,410 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
#include "rv1106-amp.dtsi"
/ {
chosen {
bootargs = "earlycon=uart8250,mmio32,0xff4c0000 console=ttyFIQ0 root=/dev/mmcblk1p7 rootwait snd_soc_core.prealloc_buffer_size_kbytes=16 coherent_pool=0";
};
acodec_sound: acodec-sound {
compatible = "simple-audio-card";
simple-audio-card,name = "rv-acodec";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
simple-audio-card,codec {
sound-dai = <&acodec>;
};
};
vcc_1v8: vcc-1v8 {
compatible = "regulator-fixed";
regulator-name = "vcc_1v8";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vcc_3v3: vcc-3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc_3v3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
vdd_arm: vdd-arm {
compatible = "regulator-fixed";
regulator-name = "vdd_arm";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-always-on;
regulator-boot-on;
};
leds: leds {
compatible = "gpio-leds";
work_led: work{
gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "activity";
default-state = "on";
};
};
// DHT11
dht11_sensor {
compatible = "dht11";
pinctrl-names = "default";
pinctrl-0 = <&gpio1_pc7>;
dht11@1 {
gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
label = "dht11";
linux,default-trigger = "humidity";
};
};
};
/***************************** AUDIO ********************************/
&i2s0_8ch {
#sound-dai-cells = <0>;
status = "okay";
};
&acodec {
#sound-dai-cells = <0>;
pa-ctl-gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
status = "okay";
};
/***************************** CPU ********************************/
&cpu0 {
cpu-supply = <&vdd_arm>;
};
/***************************** ADC ********************************/
&saradc {
status = "okay";
vref-supply = <&vcc_1v8>;
};
&tsadc {
status = "okay";
};
/***************************** USB *********************************/
&u2phy {
status = "okay";
};
&u2phy_otg {
status = "okay";
};
&usbdrd {
status = "okay";
};
&usbdrd_dwc3 {
extcon = <&u2phy>;
status = "okay";
};
/*****************************CSI ********************************/
&csi2_dphy_hw {
status = "okay";
};
&csi2_dphy0 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_input0: endpoint@0 {
reg = <0>;
remote-endpoint = <&sc3336_out>;
data-lanes = <1 2>;
};
csi_dphy_input1: endpoint@1 {
reg = <1>;
remote-endpoint = <&sc4336_out>;
data-lanes = <1 2>;
};
csi_dphy_input2: endpoint@2 {
reg = <2>;
remote-endpoint = <&sc530ai_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_csi2_input>;
};
};
};
};
&i2c4 {
status = "okay";
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c4m2_xfer>;
sc3336: sc3336@30 {
compatible = "smartsens,sc3336";
status = "okay";
reg = <0x30>;
clocks = <&cru MCLK_REF_MIPI0>;
clock-names = "xvclk";
pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mipi_refclk_out0>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "CMK-OT2119-PC1";
rockchip,camera-module-lens-name = "30IRC-F16";
port {
sc3336_out: endpoint {
remote-endpoint = <&csi_dphy_input0>;
data-lanes = <1 2>;
};
};
};
sc4336: sc4336@30 {
compatible = "smartsens,sc4336";
status = "okay";
reg = <0x30>;
clocks = <&cru MCLK_REF_MIPI0>;
clock-names = "xvclk";
pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mipi_refclk_out0>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "OT01";
rockchip,camera-module-lens-name = "40IRC_F16";
port {
sc4336_out: endpoint {
remote-endpoint = <&csi_dphy_input1>;
data-lanes = <1 2>;
};
};
};
sc530ai: sc530ai@30 {
compatible = "smartsens,sc530ai";
status = "okay";
reg = <0x30>;
clocks = <&cru MCLK_REF_MIPI0>;
clock-names = "xvclk";
pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mipi_refclk_out0>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "CMK-OT2115-PC1";
rockchip,camera-module-lens-name = "30IRC-F16";
port {
sc530ai_out: endpoint {
remote-endpoint = <&csi_dphy_input2>;
data-lanes = <1 2>;
};
};
};
};
&mipi0_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&csi_dphy_output>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi_in>;
};
};
};
};
&rkcif {
status = "okay";
};
&rkcif_mipi_lvds {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mipi_pins>;
port {
/* MIPI CSI-2 endpoint */
cif_mipi_in: endpoint {
remote-endpoint = <&mipi_csi2_output>;
};
};
};
&rkcif_mipi_lvds_sditf {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
mipi_lvds_sditf: endpoint {
remote-endpoint = <&isp_in>;
};
};
};
&rkisp {
status = "okay";
};
&rkisp_vir0 {
status = "okay";
port@0 {
isp_in: endpoint {
remote-endpoint = <&mipi_lvds_sditf>;
};
};
};
/***************************** PINCTRL ********************************/
// SPI
&spi0 {
pinctrl-0 = <&spi0m0_clk &spi0m0_miso &spi0m0_mosi &spi0m0_cs0>;
#address-cells = <1>;
#size-cells = <0>;
spidev@0 {
compatible = "rockchip,spidev";
spi-max-frequency = <50000000>;
reg = <0>;
};
fbtft@0{
compatible = "sitronix,st7789v";
reg = <0>;
spi-max-frequency = <20000000>;
fps = <30>;
buswidth = <8>;
debug = <0x7>;
led-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;//BL
dc-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; //DC
reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; //RES
};
};
// I2C
&i2c3 {
pinctrl-0 = <&i2c3m1_xfer>;
};
&i2c0 {
pinctrl-0 = <&i2c0m2_xfer>;
};
// UART
&uart3 {
pinctrl-0 = <&uart3m1_xfer>;
};
&uart4 {
pinctrl-0 = <&uart4m1_xfer>;
};
&uart5 {
pinctrl-0 = <&uart5m0_xfer>;
};
// PWM
&pwm0 {
pinctrl-0 = <&pwm0m0_pins &pwm0m1_pins>;
};
&pwm1 {
pinctrl-0 = <&pwm1m0_pins>;
};
&pwm2 {
pinctrl-0 = <&pwm2m2_pins>;
};
&pwm3 {
pinctrl-0 = <&pwm3m2_pins>;
};
&pwm4 {
pinctrl-0 = <&pwm4m2_pins>;
};
&pwm5 {
pinctrl-0 = <&pwm5m2_pins>;
};
&pwm6 {
pinctrl-0 = <&pwm6m2_pins>;
};
&pwm8 {
pinctrl-0 = <&pwm8m0_pins &pwm8m1_pins>;
};
&pwm9 {
pinctrl-0 = <&pwm9m0_pins &pwm9m1_pins>;
};
&pwm10 {
pinctrl-0 = <&pwm10m0_pins &pwm10m1_pins>;
};
&pwm11 {
pinctrl-0 = <&pwm11m0_pins &pwm11m1_pins>;
};
&pinctrl {
spi0 {
spi0m0_clk: spi0m0-clk {
rockchip,pins = <1 RK_PC1 4 &pcfg_pull_none>;
};
spi0m0_mosi: spi0m0-mosi {
rockchip,pins = <1 RK_PC2 6 &pcfg_pull_none>;
};
spi0m0_miso: spi0m0-miso {
rockchip,pins = <1 RK_PC3 6 &pcfg_pull_none>;
};
spi0m0_cs0: spi0m0-cs0 {
rockchip,pins = <1 RK_PC0 4 &pcfg_pull_none>;
};
};
gpio1-pc7 {
gpio1_pc7:gpio1-pc7 {
rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};

View File

@@ -1,85 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2023 Luckfox Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1103.dtsi"
#include "rv1106-evb.dtsi"
#include "rv1103-luckfox-pico-ipc.dtsi"
/ {
model = "Luckfox Pico Mini";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1103";
};
/**********SFC**********/
&sfc {
status = "okay";
flash@0 {
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <75000000>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <1>;
};
};
/**********SDMMC**********/
&sdmmc {
max-frequency = <50000000>;
no-sdio;
no-mmc;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>;
status = "okay";
};
/**********ETH**********/
&gmac {
status = "disabled";
};
/**********USB**********/
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral";
};
/**********SPI**********/
/* SPI0_M0 */
&spi0 {
status = "disabled";
spidev@0 {
spi-max-frequency = <50000000>;
};
};
/**********I2C**********/
/* I2C3_M1 */
&i2c3 {
status = "disabled";
clock-frequency = <100000>;
};
/**********UART**********/
/* UART3_M1 */
&uart3 {
status = "disabled";
};
/* UART4_M1 */
&uart4 {
status = "disabled";
};
/**********PWM**********/
/* PWM1_M0 */
&pwm1 {
status = "disabled";
};

View File

@@ -1,95 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1103.dtsi"
#include "rv1106-evb.dtsi"
#include "rv1103-luckfox-pico-ipc.dtsi"
/ {
model = "Luckfox Pico Plus";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1103";
};
/**********SFC**********/
&sfc {
status = "okay";
flash@0 {
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <75000000>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <1>;
};
};
/**********SDMMC**********/
&sdmmc {
max-frequency = <50000000>;
no-sdio;
no-mmc;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>;
status = "okay";
};
/**********ETH**********/
&gmac {
status = "okay";
};
/**********USB**********/
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral";
};
/**********SPI**********/
/* SPI0_M0 */
&spi0 {
status = "disabled";
spidev@0 {
spi-max-frequency = <50000000>;
};
fbtft@0 {
spi-max-frequency = <50000000>;
};
};
/**********I2C**********/
/* I2C3_M1 */
&i2c3 {
status = "disabled";
clock-frequency = <100000>;
};
/* I2C0_M2 */
&i2c0 {
status = "disabled";
clock-frequency = <100000>;
};
/**********UART**********/
/* UART3_M1 */
&uart3 {
status = "disabled";
};
/* UART4_M1 */
&uart4 {
status = "disabled";
};
/**********PWM**********/
/* PWM1_M0 */
&pwm1 {
status = "disabled";
};

View File

@@ -1,66 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1103.dtsi"
#include "rv1106-evb.dtsi"
#include "rv1103-luckfox-pico-ipc.dtsi"
/ {
model = "Luckfox Pico WebBee";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1103";
};
/**********SFC**********/
&sfc {
status = "okay";
flash@0 {
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <75000000>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <1>;
};
};
/**********SDMMC**********/
&sdmmc {
max-frequency = <50000000>;
no-sdio;
no-mmc;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>;
status = "okay";
};
/**********ETH**********/
&gmac {
status = "okay";
};
/**********USB**********/
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral";
};
/**********CSI**********/
&i2c4{
status = "disabled";
};
/********AUDIO**********/
&i2s0_8ch {
status = "disabled";
};
&acodec {
status = "disabled";
};

View File

@@ -1,157 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1103.dtsi"
#include "rv1106-evb.dtsi"
#include "rv1103-luckfox-pico-ipc.dtsi"
/ {
model = "Luckfox Pico";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1103";
gpio4pa4:gpio4pa4 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio4_pa4>;
regulator-name = "gpio4_pa4";
regulator-always-on;
};
gpio4pa3:gpio4pa3 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio4_pa3>;
regulator-name = "gpio4_pa3";
regulator-always-on;
};
gpio4pa2:gpio4pa2 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio4_pa2>;
regulator-name = "gpio4_pa2";
regulator-always-on;
};
gpio4pa6:gpio4pa6 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio4_pa6>;
regulator-name = "gpio4_pa6";
regulator-always-on;
};
gpio4pb0:gpio4pb0 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio4_pb0>;
regulator-name = "gpio4_pb0";
regulator-always-on;
};
gpio4pb1:gpio4pb1 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio4_pb1>;
regulator-name = "gpio4_pb1";
regulator-always-on;
};
};
/**********GPIO***********/
&pinctrl{
gpio {
gpio4_pa4:gpio4-pa4 {
rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
};
gpio4_pa3:gpio4-pa3 {
rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
};
gpio4_pa2:gpio4-pa2 {
rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};
gpio4_pa6:gpio4-pa6 {
rockchip,pins = <4 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
};
gpio4_pb0:gpio4-pb0 {
rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
};
gpio4_pb1:gpio4-pb1 {
rockchip,pins = <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
/**********SDMMC**********/
&sdmmc {
max-frequency = <50000000>;
no-sdio;
no-mmc;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>;
status = "okay";
};
/**********ETH**********/
&gmac {
status = "disabled";
};
/**********USB**********/
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral";
};
/**********SPI**********/
/* SPI0_M0 */
&spi0 {
status = "disabled";
spidev@0 {
spi-max-frequency = <50000000>;
};
fbtft@0 {
spi-max-frequency = <50000000>;
};
};
/**********I2C**********/
/* I2C3_M1 */
&i2c3 {
status = "disabled";
clock-frequency = <100000>;
};
/**********UART**********/
/* UART3_M1 */
&uart3 {
status = "disabled";
};
/* UART4_M1 */
&uart4 {
status = "disabled";
};
/**********PWM**********/
/* PWM1_M0 */
&pwm1 {
status = "disabled";
};

View File

@@ -1,408 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
#include "rv1106-amp.dtsi"
/ {
chosen {
bootargs = "earlycon=uart8250,mmio32,0xff4c0000 console=ttyFIQ0 root=/dev/mmcblk1p7 rootwait snd_soc_core.prealloc_buffer_size_kbytes=16 coherent_pool=0";
};
acodec_sound: acodec-sound {
compatible = "simple-audio-card";
simple-audio-card,name = "rv-acodec";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
simple-audio-card,codec {
sound-dai = <&acodec>;
};
};
vcc_1v8: vcc-1v8 {
compatible = "regulator-fixed";
regulator-name = "vcc_1v8";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vcc_3v3: vcc-3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc_3v3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
vdd_arm: vdd-arm {
compatible = "regulator-fixed";
regulator-name = "vdd_arm";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1000000>;
regulator-init-microvolt = <900000>;
regulator-always-on;
regulator-boot-on;
};
leds: leds {
compatible = "gpio-leds";
work_led: work{
gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "activity";
default-state = "on";
};
};
// DHT11
dht11_sensor {
compatible = "dht11";
pinctrl-names = "default";
pinctrl-0 = <&gpio1_pc7>;
dht11@1 {
gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
label = "dht11";
linux,default-trigger = "humidity";
};
};
};
/***************************** AUDIO ********************************/
&i2s0_8ch {
#sound-dai-cells = <0>;
status = "okay";
};
&acodec {
#sound-dai-cells = <0>;
pa-ctl-gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
status = "okay";
};
/***************************** CPU ********************************/
&cpu0 {
cpu-supply = <&vdd_arm>;
};
/***************************** ADC ********************************/
&saradc {
status = "okay";
vref-supply = <&vcc_1v8>;
};
&tsadc {
status = "okay";
};
/***************************** CSI ********************************/
&csi2_dphy_hw {
status = "okay";
};
&csi2_dphy0 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_input0: endpoint@0 {
reg = <0>;
remote-endpoint = <&sc3336_out>;
data-lanes = <1 2>;
};
csi_dphy_input1: endpoint@1 {
reg = <1>;
remote-endpoint = <&sc4336_out>;
data-lanes = <1 2>;
};
csi_dphy_input2: endpoint@2 {
reg = <2>;
remote-endpoint = <&sc530ai_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_csi2_input>;
};
};
};
};
&i2c4 {
status = "okay";
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c4m2_xfer>;
sc3336: sc3336@30 {
compatible = "smartsens,sc3336";
status = "okay";
reg = <0x30>;
clocks = <&cru MCLK_REF_MIPI0>;
clock-names = "xvclk";
pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mipi_refclk_out0>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "CMK-OT2119-PC1";
rockchip,camera-module-lens-name = "30IRC-F16";
port {
sc3336_out: endpoint {
remote-endpoint = <&csi_dphy_input0>;
data-lanes = <1 2>;
};
};
};
sc4336: sc4336@30 {
compatible = "smartsens,sc4336";
status = "okay";
reg = <0x30>;
clocks = <&cru MCLK_REF_MIPI0>;
clock-names = "xvclk";
pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mipi_refclk_out0>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "OT01";
rockchip,camera-module-lens-name = "40IRC_F16";
port {
sc4336_out: endpoint {
remote-endpoint = <&csi_dphy_input1>;
data-lanes = <1 2>;
};
};
};
sc530ai: sc530ai@30 {
compatible = "smartsens,sc530ai";
status = "okay";
reg = <0x30>;
clocks = <&cru MCLK_REF_MIPI0>;
clock-names = "xvclk";
pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mipi_refclk_out0>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "CMK-OT2115-PC1";
rockchip,camera-module-lens-name = "30IRC-F16";
port {
sc530ai_out: endpoint {
remote-endpoint = <&csi_dphy_input2>;
data-lanes = <1 2>;
};
};
};
};
&mipi0_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&csi_dphy_output>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi_in>;
};
};
};
};
&rkcif {
status = "okay";
};
&rkcif_mipi_lvds {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mipi_pins>;
port {
/* MIPI CSI-2 endpoint */
cif_mipi_in: endpoint {
remote-endpoint = <&mipi_csi2_output>;
};
};
};
&rkcif_mipi_lvds_sditf {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
mipi_lvds_sditf: endpoint {
remote-endpoint = <&isp_in>;
};
};
};
&rkisp {
status = "okay";
};
&rkisp_vir0 {
status = "okay";
port@0 {
isp_in: endpoint {
remote-endpoint = <&mipi_lvds_sditf>;
};
};
};
/*****************************PINCTRL********************************/
// SPI
&spi0 {
pinctrl-0 = <&spi0m0_clk &spi0m0_miso &spi0m0_mosi &spi0m0_cs0>;
#address-cells = <1>;
#size-cells = <0>;
spidev@0 {
compatible = "rockchip,spidev";
spi-max-frequency = <50000000>;
reg = <0>;
};
fbtft@0{
compatible = "sitronix,st7789v";
reg = <0>;
spi-max-frequency = <20000000>;
fps = <30>;
buswidth = <8>;
debug = <0x7>;
led-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;//BL
dc-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>; //DC
reset-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; //RES
};
};
// I2C
&i2c0 {
pinctrl-0 = <&i2c0m2_xfer>;
};
&i2c1 {
pinctrl-0 = <&i2c1m1_xfer>;
};
&i2c3 {
pinctrl-0 = <&i2c3m1_xfer &i2c3m0_xfer>;
};
// &i2c4 {
// pinctrl-0 = <&i2c4m0_xfer>;
// };
// UART
&uart0 {
pinctrl-0 = <&uart0m0_xfer &uart0m1_xfer>;
};
&uart1 {
pinctrl-0 = <&uart1m1_xfer>;
};
&uart3 {
pinctrl-0 = <&uart3m1_xfer>;
};
&uart4 {
pinctrl-0 = <&uart4m1_xfer>;
};
&uart5 {
pinctrl-0 = <&uart5m0_xfer>;
};
// PWM
&pwm0 {
pinctrl-0 = <&pwm0m1_pins>;
};
&pwm2 {
pinctrl-0 = <&pwm2m2_pins>;
};
&pwm3 {
pinctrl-0 = <&pwm3m2_pins>;
};
&pwm4 {
pinctrl-0 = <&pwm4m2_pins>;
};
&pwm5 {
pinctrl-0 = <&pwm5m2_pins>;
};
&pwm6 {
pinctrl-0 = <&pwm6m1_pins &pwm6m2_pins>;
};
&pwm8 {
pinctrl-0 = <&pwm8m1_pins>;
};
&pwm9 {
pinctrl-0 = <&pwm9m1_pins>;
};
&pwm10 {
pinctrl-0 = <&pwm10m1_pins &pwm10m2_pins>;
};
&pwm11 {
pinctrl-0 = <&pwm11m1_pins>;
};
&pinctrl {
spi0 {
spi0m0_clk: spi0m0-clk {
rockchip,pins = <1 RK_PC1 4 &pcfg_pull_none>;
};
spi0m0_mosi: spi0m0-mosi {
rockchip,pins = <1 RK_PC2 6 &pcfg_pull_none>;
};
spi0m0_miso: spi0m0-miso {
rockchip,pins = <1 RK_PC3 6 &pcfg_pull_none>;
};
spi0m0_cs0: spi0m0-cs0 {
rockchip,pins = <1 RK_PC0 4 &pcfg_pull_none>;
};
};
gpio1-pc7 {
gpio1_pc7:gpio1-pc7 {
rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};

View File

@@ -1,539 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
#include "rv1106-evb.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/display/media-bus-format.h>
/ {
chosen {
bootargs = "earlycon=uart8250,mmio32,0xff4c0000 console=ttyFIQ0 root=/dev/mmcblk0p7 rootwait snd_soc_core.prealloc_buffer_size_kbytes=16 coherent_pool=0";
};
backlight: backlight {
status = "okay";
compatible = "pwm-backlight";
pwms = <&pwm1 0 100000 50000>;
brightness-levels = <
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71
72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95
96 97 98 99 100 101 102 103
104 105 106 107 108 109 110 111
112 113 114 115 116 117 118 119
120 121 122 123 124 125 126 127
128 129 130 131 132 133 134 135
136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151
152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167
168 169 170 171 172 173 174 175
176 177 178 179 180 181 182 183
184 185 186 187 188 189 190 191
192 193 194 195 196 197 198 199
200 201 202 203 204 205 206 207
208 209 210 211 212 213 214 215
216 217 218 219 220 221 222 223
224 225 226 227 228 229 230 231
232 233 234 235 236 237 238 239
240 241 242 243 244 245 246 247
248 249 250 251 252 253 254 255>;
default-brightness-level = <255>;
};
panel: panel {
compatible = "simple-panel";
backlight = <&backlight>;
reset-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>;
reset-delay-ms = <200>;
status = "okay";
bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;
width-mm = <85>;
height-mm = <85>;
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <30000000>;
hactive = <720>;
vactive = <720>;
hback-porch = <44>;
hfront-porch = <46>;
vback-porch = <18>;
vfront-porch = <16>;
hsync-len = <2>;
vsync-len = <2>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
port {
panel_in_rgb: endpoint {
remote-endpoint = <&rgb_out_panel>;
};
};
};
reserved_memory: reserved-memory {
status = "okay";
#address-cells = <1>;
#size-cells = <1>;
ranges;
drm_logo: drm-logo@00000000 {
compatible = "rockchip,drm-logo";
reg = <0x0 0x0>;
};
linux,cma {
status = "okay";
compatible = "shared-dma-pool";
inactive;
reusable;
size = <0xA00000>; //10M
linux,cma-default;
};
mmc_ecsd: mmc@3f000 {
reg = <0x3f000 0x00001000>;
};
};
acodec_sound: acodec-sound {
compatible = "simple-audio-card";
simple-audio-card,name = "rv1106-acodec";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
simple-audio-card,codec {
sound-dai = <&acodec>;
};
};
dsm_sound: dsm-sound {
status = "disabled";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "rockchip,dsm-sound";
simple-audio-card,bitclock-master = <&sndcodec>;
simple-audio-card,frame-master = <&sndcodec>;
sndcpu: simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
sndcodec: simple-audio-card,codec {
sound-dai = <&dsm>;
};
};
vcc_1v8: vcc-1v8 {
compatible = "regulator-fixed";
regulator-name = "vcc_1v8";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vcc_3v3: vcc-3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc_3v3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
vdd_arm: vdd-arm {
compatible = "regulator-fixed";
regulator-name = "vdd_arm";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1000000>;
regulator-init-microvolt = <900000>;
regulator-always-on;
regulator-boot-on;
};
leds: leds {
compatible = "gpio-leds";
work_led: work{
gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "activity";
default-state = "on";
};
};
};
/***************************** audio ********************************/
&i2s0_8ch {
#sound-dai-cells = <0>;
status = "okay";
};
&acodec {
#sound-dai-cells = <0>;
pa-ctl-gpios = <&gpio3 RK_PD3 GPIO_ACTIVE_HIGH>;
status = "okay";
};
/************************* FIQ_DUBUGGER ****************************/
&fiq_debugger {
rockchip,irq-mode-enable = <1>;
status = "okay";
};
/***************************** USB *********************************/
&u2phy {
status = "okay";
};
&u2phy_otg {
status = "okay";
};
&usbdrd {
status = "okay";
};
&usbdrd_dwc3 {
extcon = <&u2phy>;
status = "okay";
};
/***************************** DSM *********************************/
&dsm {
status = "disabled";
};
&cpu0 {
cpu-supply = <&vdd_arm>;
};
/*************************** CSI *********************************/
&csi2_dphy_hw {
status = "okay";
};
&csi2_dphy0 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_input0: endpoint@0 {
reg = <0>;
remote-endpoint = <&sc3336_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_csi2_input>;
};
};
};
};
&i2c4 {
status = "okay";
clock-frequency = <400000>;
pinctrl-names = "default";
// pinctrl-0 = <&i2c4m2_xfer>;
sc3336: sc3336@30 {
compatible = "smartsens,sc3336";
status = "okay";
reg = <0x30>;
clocks = <&cru MCLK_REF_MIPI0>;
clock-names = "xvclk";
reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mipi_refclk_out0>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "CMK-OT2119-PC1";
rockchip,camera-module-lens-name = "30IRC-F16";
port {
sc3336_out: endpoint {
remote-endpoint = <&csi_dphy_input0>;
data-lanes = <1 2>;
};
};
};
};
&mipi0_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&csi_dphy_output>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi_in>;
};
};
};
};
&rkcif {
status = "okay";
};
&rkcif_mipi_lvds {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mipi_pins>;
port {
/* MIPI CSI-2 endpoint */
cif_mipi_in: endpoint {
remote-endpoint = <&mipi_csi2_output>;
};
};
};
&rkcif_mipi_lvds_sditf {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
mipi_lvds_sditf: endpoint {
remote-endpoint = <&isp_in>;
};
};
};
&rkisp {
status = "okay";
};
&rkisp_vir0 {
status = "okay";
port@0 {
isp_in: endpoint {
remote-endpoint = <&mipi_lvds_sditf>;
};
};
};
/***************************** ADC ********************************/
&saradc {
status = "okay";
vref-supply = <&vcc_1v8>;
};
&tsadc {
status = "okay";
};
/**************************** LCD/TP ******************************/
&pwm1 {
status = "okay";
pinctrl-names = "active";
pinctrl-0 = <&pwm1m2_pins>;
};
&display_subsystem {
status = "okay";
logo-memory-region = <&drm_logo>;
};
&rgb {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&lcd_pins>;
ports {
rgb_out: port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
rgb_out_panel: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_in_rgb>;
};
};
};
};
&rgb_in_vop {
status = "okay";
};
&route_rgb {
status = "disabled";
};
&vop {
status = "okay";
};
&i2c3 {
clock-frequency = <100000>;
GT911:touchscreen {
compatible = "goodix,gt911";
reg = <0x14>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PA3 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
};
};
/**************************** PINCTRL ******************************/
// SPI
&spi0 {
pinctrl-0 = <&spi0m0_clk &spi0m0_miso &spi0m0_mosi &spi0m0_cs0>;
#address-cells = <1>;
#size-cells = <0>;
spidev@0 {
compatible = "rockchip,spidev";
spi-max-frequency = <50000000>;
reg = <0>;
};
};
// I2C
&i2c1 {
pinctrl-0 = <&i2c1m1_xfer>;
};
&i2c2 {
pinctrl-0 = <&i2c2m0_xfer>;
};
&i2c3 {
pinctrl-0 = <&i2c3m0_xfer &i2c3m1_xfer &i2c3m2_xfer &tp_rst &tp_irq>;
};
&i2c4 {
pinctrl-0 = <&i2c4m0_xfer &i2c4m1_xfer &i2c4m2_xfer>;
};
// UART
&uart0 {
pinctrl-0 = <&uart0m0_xfer &uart0m1_xfer>;
};
&uart1 {
pinctrl-0 = <&uart1m1_xfer>;
};
&uart3 {
pinctrl-0 = <&uart3m0_xfer &uart3m1_xfer>;
};
&uart4 {
pinctrl-0 = <&uart4m0_xfer>;
};
&uart5 {
pinctrl-0 = <&uart5m1_xfer>;
};
// PWM
&pwm0 {
pinctrl-0 = <&pwm0m1_pins>;
};
&pwm2 {
pinctrl-0 = <&pwm2m1_pins &pwm2m2_pins>;
};
&pwm3 {
pinctrl-0 = <&pwm3m2_pins>;
};
&pwm4 {
pinctrl-0 = <&pwm4m0_pins &pwm4m1_pins &pwm4m2_pins>;
};
&pwm5 {
pinctrl-0 = <&pwm5m1_pins &pwm5m2_pins>;
};
&pwm6 {
pinctrl-0 = <&pwm6m1_pins &pwm6m2_pins>;
};
&pwm7 {
pinctrl-0 = <&pwm7m0_pins &pwm7m1_pins>;
};
&pwm8 {
pinctrl-0 = <&pwm8m1_pins>;
};
&pwm9 {
pinctrl-0 = <&pwm9m1_pins>;
};
&pwm10 {
pinctrl-0 = <&pwm10m1_pins &pwm10m2_pins>;
};
&pwm11 {
pinctrl-0 = <&pwm11m1_pins &pwm11m2_pins>;
};
&pinctrl {
spi0 {
spi0m0_clk: spi0m0-clk {
rockchip,pins = <1 RK_PC1 4 &pcfg_pull_none>;
};
spi0m0_mosi: spi0m0-mosi {
rockchip,pins = <1 RK_PC2 6 &pcfg_pull_none>;
};
spi0m0_miso: spi0m0-miso {
rockchip,pins = <1 RK_PC3 6 &pcfg_pull_none>;
};
spi0m0_cs0: spi0m0-cs0 {
rockchip,pins = <1 RK_PC0 4 &pcfg_pull_none>;
};
};
touchscreen {
tp_rst:tp-rst {
rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
};
tp_irq:tp-irq {
rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};

View File

@@ -1,129 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1106.dtsi"
#include "rv1106-evb.dtsi"
#include "rv1106-luckfox-pico-pro-max-ipc.dtsi"
/ {
model = "Luckfox Pico Max";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1106g3";
};
/**********CRU**********/
//&cru {
// assigned-clocks =
// <&cru PLL_GPLL>, <&cru PLL_CPLL>,
// <&cru ARMCLK>,
// <&cru ACLK_PERI_ROOT>, <&cru HCLK_PERI_ROOT>,
// <&cru PCLK_PERI_ROOT>, <&cru ACLK_BUS_ROOT>,
// <&cru PCLK_TOP_ROOT>, <&cru PCLK_PMU_ROOT>,
// <&cru HCLK_PMU_ROOT>, <&cru CLK_500M_SRC>;
// assigned-clock-rates =
// <1188000000>, <700000000>,
// <1104000000>,
// <400000000>, <200000000>,
// <100000000>, <300000000>,
// <100000000>, <100000000>,
// <200000000>, <700000000>;
//};
/**********NPU**********/
//&npu {
// assigned-clock-rates = <700000000>;
//};
/**********FLASH**********/
&sfc {
status = "okay";
flash@0 {
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <75000000>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <1>;
};
};
/**********SDMMC**********/
&sdmmc {
max-frequency = <50000000>;
no-sdio;
no-mmc;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>;
status = "okay";
};
/**********ETH**********/
&gmac {
status = "okay";
};
/**********USB**********/
&u2phy {
status = "okay";
};
&u2phy_otg {
rockchip,dis-u2-susphy;
status = "okay";
};
&usbdrd {
status = "okay";
};
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral";
};
/**********SPI**********/
&spi0 {
status = "disabled";
spidev@0 {
spi-max-frequency = <50000000>;
};
fbtft@0 {
spi-max-frequency = <50000000>;
};
};
/**********I2C**********/
/* I2C3_M1 */
&i2c3 {
status = "disabled";
clock-frequency = <100000>;
};
/* I2C1_M1 */
&i2c1 {
status = "disabled";
clock-frequency = <100000>;
};
/**********UART**********/
/* UART3_M1 */
&uart3 {
status = "disabled";
};
/* UART4_M1 */
&uart4 {
status = "disabled";
};
/**********RTC**********/
&rtc {
status = "okay";
};

View File

@@ -1,71 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2024 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1106g-evb2-v10.dts"
/ {
model = "Luckfox Pico Pro Max";
compatible = "rockchip,rv1106g-evb2-v12", "rockchip,rv1106";
chosen {
bootargs = "loglevel=0 rootfstype=erofs rootflags=dax console=ttyFIQ0 root=/dev/rd0 snd_soc_core.prealloc_buffer_size_kbytes=16 coherent_pool=0 driver_async_probe=dwmmc_rockchip";
};
leds: leds {
compatible = "gpio-leds";
work_led: work{
gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "activity";
default-state = "on";
};
};
};
/delete-node/ &thunder_boot_spi_nor;
&emmc {
status = "disabled";
};
&gmac {
status = "okay";
};
&fiq_debugger {
rockchip,baudrate = <115200>;
pinctrl-names = "default";
pinctrl-0 = <&uart2m1_xfer>;
};
&rkisp_thunderboot {
/* reg's offset MUST match with RTOS */
/*
* vicap, capture raw10, ceil(w*10/8/256)*256*h *4(buf num)
* e.g. 2304x1296: 0xf30000
*/
reg = <0x00860000 0xf30000>;
};
&ramdisk_r {
reg = <0x1790000 (20 * 0x00100000)>;
};
&ramdisk_c {
reg = <0x2b90000 (16 * 0x00100000)>;
};
&sfc {
status = "okay";
flash@0 {
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <75000000>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <1>;
};
};

View File

@@ -1,106 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1106.dtsi"
#include "rv1106-evb.dtsi"
#include "rv1106-luckfox-pico-pro-max-ipc.dtsi"
/ {
model = "Luckfox Pico Pro";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1106";
};
/**********FLASH**********/
&sfc {
status = "okay";
flash@0 {
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <75000000>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <1>;
};
};
/**********SDMMC**********/
&sdmmc {
max-frequency = <50000000>;
no-sdio;
no-mmc;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>;
status = "okay";
};
/**********ETH**********/
&gmac {
status = "okay";
};
/**********USB**********/
&u2phy {
status = "okay";
};
&u2phy_otg {
rockchip,dis-u2-susphy;
status = "okay";
};
&usbdrd {
status = "okay";
};
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral";
};
/**********SPI**********/
&spi0 {
status = "disabled";
spidev@0 {
spi-max-frequency = <50000000>;
};
fbtft@0 {
spi-max-frequency = <50000000>;
};
};
/**********I2C**********/
/* I2C3_M1 */
&i2c3 {
status = "disabled";
clock-frequency = <100000>;
};
/* I2C1_M1 */
&i2c1 {
status = "disabled";
clock-frequency = <100000>;
};
/**********UART**********/
/* UART3_M1 */
&uart3 {
status = "disabled";
};
/* UART4_M1 */
&uart4 {
status = "disabled";
};
/**********RTC**********/
&rtc {
status = "okay";
};

View File

@@ -1,250 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2024 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
//#include "rv1106-tb-nofastae-emmc.dtsi"
#include "rv1106.dtsi"
#include "rv1106-evb-v10.dtsi"
#include "rv1106-thunder-boot-emmc.dtsi"
/ {
model = "Luckfox Pico Ultra";
compatible = "rockchip,rv1106g-evb1-v11", "rockchip,rv1106";
chosen {
bootargs = "loglevel=0 rootfstype=erofs rootflags=dax console=ttyFIQ0 root=/dev/rd0 snd_soc_core.prealloc_buffer_size_kbytes=16 coherent_pool=0 driver_async_probe=dwmmc_rockchip";
};
vcc_1v8: vcc-1v8 {
compatible = "regulator-fixed";
regulator-name = "vcc_1v8";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vcc_3v3: vcc-3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc_3v3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
leds: leds {
compatible = "gpio-leds";
work_led: work{
gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "activity";
default-state = "on";
};
};
};
/***************************** audio ********************************/
&i2s0_8ch {
#sound-dai-cells = <0>;
status = "okay";
};
&acodec {
#sound-dai-cells = <0>;
pa-ctl-gpios = <&gpio3 RK_PD3 GPIO_ACTIVE_HIGH>;
status = "okay";
};
/***************************** emmc *******************************/
&emmc {
status = "okay";
};
/***************************** csi ********************************/
&csi2_dphy_hw {
status = "okay";
};
&csi2_dphy0 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_input0: endpoint@0 {
reg = <0>;
remote-endpoint = <&sc3338_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csi_dphy_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_csi2_input>;
};
};
};
};
&i2c4 {
rockchip,amp-shared;
status = "okay";
pinctrl-0 = <&i2c4m2_xfer>;
sc3338: sc3338@30 {
compatible = "smartsens,sc3338";
status = "okay";
reg = <0x30>;
clocks = <&cru MCLK_REF_MIPI0>;
clock-names = "xvclk";
pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mipi_refclk_out0>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "FKO1";
rockchip,camera-module-lens-name = "30IRC-F16";
port {
sc3338_out: endpoint {
remote-endpoint = <&csi_dphy_input0>;
data-lanes = <1 2>;
};
};
};
};
&mipi0_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&csi_dphy_output>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi_in>;
};
};
};
};
&rkcif {
status = "okay";
};
&rkcif_mipi_lvds {
status = "okay";
memory-region-thunderboot = <&rkisp_thunderboot>; //thunderboot
pinctrl-names = "default";
pinctrl-0 = <&mipi_pins>;
port {
/* MIPI CSI-2 endpoint */
cif_mipi_in: endpoint {
remote-endpoint = <&mipi_csi2_output>;
};
};
};
&rkcif_mipi_lvds_sditf {
status = "okay";
port {
/* MIPI CSI-2 endpoint */
mipi_lvds_sditf: endpoint {
remote-endpoint = <&isp_in>;
};
};
};
&rkisp {
status = "okay";
};
&rkisp_vir0 {
status = "okay";
port@0 {
isp_in: endpoint {
remote-endpoint = <&mipi_lvds_sditf>;
};
};
};
/***************************** ethernet ****************************/
&gmac {
status = "okay";
};
/***************************** fiq ********************************/
&fiq_debugger {
rockchip,baudrate = <115200>;
pinctrl-names = "default";
pinctrl-0 = <&uart2m1_xfer>;
};
/***************************** usb ********************************/
&usbdrd_dwc3 {
extcon = <&u2phy>;
//dr_mode = "peripheral";//for rndis
dr_mode = "otg"; //for uvc
status = "okay";
};
/***************************** other ******************************/
&mailbox {
status = "okay";
};
/********************** thunder-boot ******************************/
&thunder_boot_service {
status = "okay";
};
&rkisp_thunderboot {
/* reg's offset MUST match with RTOS */
/*
* vicap, capture raw10, ceil(w*10/8/256)*256*h *4(buf num)
* e.g. 2304x1296: 0xf30000
*/
reg = <0x00860000 0xf30000>;
};
&ramdisk_r {
reg = <0x1790000 (40 * 0x00100000)>;
};
&ramdisk_c {
reg = <0x3f90000 (20 * 0x00100000)>;
};

View File

@@ -1,147 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1106.dtsi"
#include "rv1106-luckfox-pico-ultra-ipc.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/display/media-bus-format.h>
/ {
model = "Luckfox Pico Ultra W";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1106g3";
restart-poweroff {
compatible = "restart-poweroff";
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
pinctrl-names = "default";
reset-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>;
};
wireless_bluetooth: wireless-bluetooth {
compatible = "bluetooth-platdata";
uart_rts_gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
pinctrl-names = "default", "rts_gpio";
pinctrl-0 = <&uart1m0_rtsn>;
pinctrl-1 = <&uart1_gpios>;
BT,wake_gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
BT,wake_host_irq = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
/**********CRU**********/
//&cru {
// assigned-clocks =
// <&cru PLL_GPLL>, <&cru PLL_CPLL>,
// <&cru ARMCLK>,
// <&cru ACLK_PERI_ROOT>, <&cru HCLK_PERI_ROOT>,
// <&cru PCLK_PERI_ROOT>, <&cru ACLK_BUS_ROOT>,
// <&cru PCLK_TOP_ROOT>, <&cru PCLK_PMU_ROOT>,
// <&cru HCLK_PMU_ROOT>, <&cru CLK_500M_SRC>;
// assigned-clock-rates =
// <1188000000>, <700000000>,
// <1104000000>,
// <400000000>, <200000000>,
// <100000000>, <300000000>,
// <100000000>, <100000000>,
// <200000000>, <700000000>;
//};
/**********NPU**********/
//&npu {
// assigned-clock-rates = <700000000>;
//};
/**********EMMC**********/
&emmc {
bus-width = <8>;
cap-mmc-highspeed;
non-removable;
// mmc-hs200-1_8v;
rockchip,default-sample-phase = <90>;
no-sdio;
no-sd;
memory-region-ecsd = <&mmc_ecsd>;
post-power-on-delay-ms = <0>;
status = "okay";
};
&fiq_debugger {
rockchip,irq-mode-enable = <1>;
status = "okay";
};
/**********SDIO-WIFI**********/
&sdmmc {
max-frequency = <50000000>;
bus-width = <4>;
cap-sd-highspeed;
cap-sdio-irq;
keep-power-in-suspend;
non-removable;
rockchip,default-sample-phase = <90>;
// no-sd;
// no-mmc;
supports-sdio;
mmc-pwrseq = <&sdio_pwrseq>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4 &sdmmc0_det>;
status = "okay";
};
&pinctrl{
sdmmc0{
sdmmc0_det: sdmmc0-det {
rockchip,pins =
/* sdmmc0_det */
<3 RK_PA1 1 &pcfg_pull_down>;
};
};
};
/**********ETH**********/
&gmac {
status = "okay";
};
/**********USB**********/
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral";
#dr_mode = "host";
};
/**********RTC**********/
&rtc {
status = "okay";
};
/**********BT**********/
&uart1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;
};
&pinctrl {
wireless-bluetooth {
uart1_gpios: uart1-gpios {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
/**********SPI**********/
&spi0 {
status = "disabled";
spidev@0 {
spi-max-frequency = <50000000>;
};
};

View File

@@ -1,81 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1106.dtsi"
#include "rv1106-luckfox-pico-ultra-ipc.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/display/media-bus-format.h>
/ {
model = "Luckfox Pico Ultra";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1106g3";
};
/**********CRU**********/
//&cru {
// assigned-clocks =
// <&cru PLL_GPLL>, <&cru PLL_CPLL>,
// <&cru ARMCLK>,
// <&cru ACLK_PERI_ROOT>, <&cru HCLK_PERI_ROOT>,
// <&cru PCLK_PERI_ROOT>, <&cru ACLK_BUS_ROOT>,
// <&cru PCLK_TOP_ROOT>, <&cru PCLK_PMU_ROOT>,
// <&cru HCLK_PMU_ROOT>, <&cru CLK_500M_SRC>;
// assigned-clock-rates =
// <1188000000>, <700000000>,
// <1104000000>,
// <400000000>, <200000000>,
// <100000000>, <300000000>,
// <100000000>, <100000000>,
// <200000000>, <700000000>;
//};
/**********NPU**********/
//&npu {
// assigned-clock-rates = <700000000>;
//};
/**********EMMC**********/
&emmc {
bus-width = <8>;
cap-mmc-highspeed;
non-removable;
// mmc-hs200-1_8v;
rockchip,default-sample-phase = <90>;
no-sdio;
no-sd;
memory-region-ecsd = <&mmc_ecsd>;
post-power-on-delay-ms = <0>;
status = "okay";
};
&fiq_debugger {
rockchip,irq-mode-enable = <1>;
status = "okay";
};
/**********ETH**********/
&gmac {
status = "okay";
};
/**********USB**********/
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral";
};
/**********RTC**********/
&rtc {
status = "okay";
};
/**********SPI**********/
&spi0 {
status = "disabled";
spidev@0 {
spi-max-frequency = <50000000>;
};
};

View File

@@ -1,20 +0,0 @@
#!/bin/sh
load_luckfoxconfig() {
if [ -f /usr/bin/luckfox-config ]; then
luckfox-config load
fi
if [ "$(cat /proc/device-tree/model)" == "Luckfox Pico Ultra" ] ||
[ "$(cat /proc/device-tree/model)" == "Luckfox Pico Ultra W" ]; then
luckfox_switch_rgb_resolution &
fi
}
case $1 in
start)
load_luckfoxconfig
;;
*)
exit 1
;;
esac

View File

@@ -1,206 +0,0 @@
#!/bin/bash
LUCKFOX_FDT_DTB=/tmp/.fdt.dtb
LUCKFOX_FDT_HDR_DTB=/tmp/.fdt_header.dtb
LUCKFOX_FDT_HDR_OVERLAY_DTS=/tmp/.fdt_header_overlay.dts
LUCKFOX_FDT_HDR_OVERLAY_DTBO=/tmp/.fdt_header_overlay.dtbo
LUCKFOX_FDT_DUMP_TXT=/tmp/.fdt_dump.txt
LF_CUSTOM_DTS_PATH="/mnt/cfg"
SYS_OVERLAYS_PATH="/sys/kernel/config/device-tree/overlays"
LUCKFOX_CHIP_MEDIA_CLASS="emmc"
LUCKFOX_CHIP_MEDIA="/dev/mmcblk0p4"
function luckfox_tools_check() {
if ! command -v dialog &>/dev/null; then
echo "The dialog is not installed "
exit
fi
if ! command -v dtc &>/dev/null; then
echo "The dtc is not installed"
exit
fi
# get media class dev
if [[ -e /dev/mmcblk0p4 ]]; then
LUCKFOX_CHIP_MEDIA_CLASS="emmc"
LUCKFOX_CHIP_MEDIA=/dev/mmcblk0p4
elif [[ -e /dev/mmcblk1p4 ]]; then
LUCKFOX_CHIP_MEDIA_CLASS="sdmmc"
LUCKFOX_CHIP_MEDIA=/dev/mmcblk1p4
luckfox_set_pin_parameter "SDMMC" 1
elif [[ -e /dev/mtdblock3 ]]; then
LUCKFOX_CHIP_MEDIA_CLASS="spi_nand"
LUCKFOX_CHIP_MEDIA=/dev/mtdblock3
else
LUCKFOX_CHIP_MEDIA_CLASS="unknown"
echo "Do not know the storage medium of Luckfox!"
exit
fi
}
# -- Static Overlay --
function luckfox_sha256_convert() {
local sha256_hash=$1
local formatted_hash=""
for ((i = 0; i < ${#sha256_hash}; i += 8)); do
formatted_hash+="0x${sha256_hash:$i:8} "
done
echo "$formatted_hash"
}
function luckfox_update_fdt() {
# get fdt_header
local origin_fdt_size_hex origin_fdt_size
dd if=$LUCKFOX_CHIP_MEDIA of=$LUCKFOX_FDT_HDR_DTB bs=1 skip=0 count=2048 >/dev/null 2>&1
# get size
if [ ! -f $LUCKFOX_FDT_HDR_DTB ]; then
echo "$LUCKFOX_FDT_HDR_DTB can't be found!"
return
fi
origin_fdt_size_hex=$(fdtdump $LUCKFOX_FDT_HDR_DTB | grep -A 5 "fdt {" | grep "data-size" | awk '{print $3}' | tr -d ';<>')
origin_fdt_size=$(printf "%d\n" "$origin_fdt_size_hex")
# get fdt dtb
dd if=$LUCKFOX_CHIP_MEDIA of=$LUCKFOX_FDT_DTB bs=1 skip=2048 count="$origin_fdt_size" >/dev/null 2>&1
# create fdt dump
if [ ! -f $LUCKFOX_FDT_DTB ]; then
echo "$LUCKFOX_FDT_DTB can't be found!"
return
fi
fdtdump $LUCKFOX_FDT_DTB >$LUCKFOX_FDT_DUMP_TXT
}
function luckfox_fdt_overlay() {
#region
local fdt_overlay_dtbo="$1"
local fdt_dtb_size fdt_size fdt_size_hex fdt_hash_data
fdtoverlay -i $LUCKFOX_FDT_DTB -o $LUCKFOX_FDT_DTB "$fdt_overlay_dtbo" >/dev/null 2>&1
fdt_dtb_size=$(ls -la $LUCKFOX_FDT_DTB | awk '{print $5}')
kernel_offset=$(fdtdump $LUCKFOX_FDT_HDR_DTB | grep -A 2 "kernel {" | grep "data-position" | sed -n 's/.*<\(0x[0-9a-fA-F]*\)>.*/\1/p')
fdt_offset=$(fdtdump $LUCKFOX_FDT_HDR_DTB | grep -A 2 "fdt {" | grep "data-position" | sed -n 's/.*<\(0x[0-9a-fA-F]*\)>.*/\1/p')
kernel_offset_dec=$((kernel_offset))
fdt_offset_dec=$((fdt_offset))
result_dec=$((kernel_offset_dec - fdt_offset_dec))
if [ $result_dec -lt "$fdt_dtb_size" ]; then
echo "Kernel will be affected !"
fi
dd if=$LUCKFOX_FDT_DTB of=$LUCKFOX_CHIP_MEDIA bs=1 seek=2048 count="$fdt_dtb_size" >/dev/null 2>&1
# fdt header
if [ ! -f $LUCKFOX_FDT_DTB ]; then
echo "$LUCKFOX_FDT_DTB can't be found!"
return
fi
fdt_size=$(ls -la $LUCKFOX_FDT_DTB | awk '{print $5}')
fdt_size_hex=$(printf "%x\n" "$fdt_size")
fdt_hash_data=$(luckfox_sha256_convert "$(sha256sum $LUCKFOX_FDT_DTB | awk '{print $1}')")
fdt_header_content="
/dts-v1/;
/plugin/;
&{/images/fdt}{
data-size=<0x$fdt_size_hex>;
hash{
value=<$fdt_hash_data>;
};
};
"
echo "$fdt_header_content" >$LUCKFOX_FDT_HDR_OVERLAY_DTS
dtc -I dts -O dtb $LUCKFOX_FDT_HDR_OVERLAY_DTS -o $LUCKFOX_FDT_HDR_OVERLAY_DTBO
if [ ! -f $LUCKFOX_FDT_HDR_OVERLAY_DTBO ]; then
echo "$LUCKFOX_FDT_HDR_OVERLAY_DTBO can't found!"
return
fi
fdtoverlay -i $LUCKFOX_FDT_HDR_DTB -o $LUCKFOX_FDT_HDR_DTB $LUCKFOX_FDT_HDR_OVERLAY_DTBO >/dev/null 2>&1
dd if=$LUCKFOX_FDT_HDR_DTB of=$LUCKFOX_CHIP_MEDIA bs=1 seek=0 count=2048 >/dev/null 2>&1
#endregion
}
# Load the device tree dynamically
function luckfox_load_dynamic_dts() {
local dtbo_node_name
if [ ! -d ${LF_CUSTOM_DTS_PATH}/dtbo/ ]; then
exit 1
#echo "Can't find ${LF_CUSTOM_DTS_PATH}/dtbo dir !"
fi
for dts_file in ${LF_CUSTOM_DTS_PATH}/dtbo/*.dts; do
#Get DTBO name
dtbo_node_name="$(basename "$dts_file" .dts)"
#Check DTBO path
if [ -d "${SYS_OVERLAYS_PATH}/${dtbo_node_name}" ]; then
echo "Node is exist"
continue
fi
#DTS->DTBO
dtc -I dts -O dtb ${LF_CUSTOM_DTS_PATH}/dtbo/${dtbo_node_name}.dts -o \
${LF_CUSTOM_DTS_PATH}/dtbo/${dtbo_node_name}.dtbo
if [ ! -f "${LF_CUSTOM_DTS_PATH}/dtbo/${dtbo_node_name}.dtbo" ]; then
echo "${dtbo_node_name}.dts to dtbo error!"
continue
else
mkdir -p ${SYS_OVERLAYS_PATH}/${dtbo_node_name}
fi
#Load and enable DTBO
cat ${LF_CUSTOM_DTS_PATH}/dtbo/${dtbo_node_name}.dtbo > \
${SYS_OVERLAYS_PATH}/${dtbo_node_name}/dtbo
echo 1 >${SYS_OVERLAYS_PATH}/${dtbo_node_name}/status
rm ${LLF_CUSTOM_DTS_PATH}/dtbo/${dtbo_node_name}.dtbo
done
}
#Overwrite the disk device tree (requires restart)
function luckfox_load_static_dts() {
local dtbo_node_name
if [ ! -d ${LF_CUSTOM_DTS_PATH}/fdt_overlay/ ]; then
echo "Can't find ${LF_CUSTOM_DTS_PATH}/fdt_overlay dir!"
fi
for dts_file in ${LF_CUSTOM_DTS_PATH}/fdt_overlay/*.dts; do
#Get DTBO name
dtbo_node_name="$(basename "$dts_file" .dts)"
#DTS->DTBO
dtc -I dts -O dtb ${LF_CUSTOM_DTS_PATH}/fdt_overlay/${dtbo_node_name}.dts -o \
${LF_CUSTOM_DTS_PATH}/fdt_overlay/${dtbo_node_name}.dtbo
if [ ! -f "${LF_CUSTOM_DTS_PATH}/fdt_overlay/${dtbo_node_name}.dtbo" ]; then
echo "${dtbo_node_name}.dts to dtbo error!"
continue
fi
# load to disk
luckfox_update_fdt
luckfox_fdt_overlay ${LF_CUSTOM_DTS_PATH}/fdt_overlay/${dtbo_node_name}.dtbo
rm ${LUCKFOX_FDT_OVERLAY_DTBO}
done
}
case $1 in
start)
luckfox_load_dynamic_dts
;;
stop)
luckfox_tools_check
luckfox_load_static_dts
;;
*)
exit 1
;;
esac

File diff suppressed because it is too large Load Diff

View File

@@ -1,69 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>
#include <sys/ioctl.h>
#include <dirent.h>
#define INPUT_DIR "/dev/input"
#define EVENT_PREFIX "event"
void check_adc_keys_event(const char *device_path) {
int fd;
char name[256] = "Unknown";
struct input_event ev;
fd = open(device_path, O_RDONLY);
if (fd < 0) {
perror("Unable to open device");
return;
}
if (ioctl(fd, EVIOCGNAME(sizeof(name)), name) < 0) {
perror("Unable to get device name");
close(fd);
return;
}
if (strstr(name, "adc-keys") != NULL) {
printf("Found ADC keys device: %s\n", device_path);
while (read(fd, &ev, sizeof(struct input_event)) > 0) {
if (ev.type == EV_KEY) {
if (ev.value == 0) {
printf("Key released: code %d\n", ev.code);
system("luckfox-config rgb_switch");
system("reboot");
}
}
}
}
close(fd);
}
int main() {
struct dirent *entry;
DIR *dp;
dp = opendir(INPUT_DIR);
if (dp == NULL) {
perror("Unable to open /dev/input directory");
return EXIT_FAILURE;
}
while ((entry = readdir(dp))) {
if (strncmp(entry->d_name, EVENT_PREFIX, strlen(EVENT_PREFIX)) == 0) {
char device_path[256];
snprintf(device_path, sizeof(device_path), "%s/%s", INPUT_DIR, entry->d_name);
check_adc_keys_event(device_path);
}
}
closedir(dp);
return EXIT_SUCCESS;
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
/usr/bin/filesystem_resize.sh
/etc/init.d/S50usbdevice start
luckfox-config load
if [ -n "$(hwclock | grep "invalid")" ]; then
date -s 2024-01-01
hwclock -w
fi

View File

@@ -1 +0,0 @@
libfdt.so.1.7.0

View File

@@ -1,172 +0,0 @@
From 816477167f7fec38674690a576a9f17100707441 Mon Sep 17 00:00:00 2001
From: luckfox-eng29 <eng29@luckfox.com>
Date: Wed, 21 Aug 2024 14:35:48 +0800
Subject: [PATCH] uboot compatible luckfox
---
.../arm/include/asm/arch-rockchip/boot_mode.h | 2 ++
.../u-boot/arch/arm/mach-rockchip/boot_mode.c | 19 +++++++++++++++----
sysdrv/source/uboot/u-boot/common/autoboot.c | 3 ++-
sysdrv/source/uboot/u-boot/common/image-fit.c | 14 +++++++++++---
sysdrv/source/uboot/u-boot/drivers/mmc/mmc.c | 5 +++++
.../source/uboot/u-boot/include/boot_rkimg.h | 3 ++-
6 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/sysdrv/source/uboot/u-boot/arch/arm/include/asm/arch-rockchip/boot_mode.h b/sysdrv/source/uboot/u-boot/arch/arm/include/asm/arch-rockchip/boot_mode.h
index 063fd6b47..a34ec828f 100644
--- a/sysdrv/source/uboot/u-boot/arch/arm/include/asm/arch-rockchip/boot_mode.h
+++ b/sysdrv/source/uboot/u-boot/arch/arm/include/asm/arch-rockchip/boot_mode.h
@@ -28,6 +28,8 @@
/* enter bootrom download mode */
#define BOOT_BROM_DOWNLOAD 0xEF08A53C
+#define BOOT_TO_UBOOT (REBOOT_FLAG + 16)
+
#ifndef __ASSEMBLY__
int setup_boot_mode(void);
#endif
diff --git a/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/boot_mode.c b/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/boot_mode.c
index 6f4858bba..cd8b65f25 100644
--- a/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/boot_mode.c
+++ b/sysdrv/source/uboot/u-boot/arch/arm/mach-rockchip/boot_mode.c
@@ -194,7 +194,7 @@ int rockchip_get_boot_mode(void)
boot_mode[PL] = BOOT_MODE_CHARGING;
clear_boot_reg = 1;
break;
- case BOOT_PANIC:
+ case BOOT_PANIC:
printf("boot mode: panic\n");
boot_mode[PL] = BOOT_MODE_PANIC;
break;
@@ -203,9 +203,14 @@ int rockchip_get_boot_mode(void)
boot_mode[PL] = BOOT_MODE_WATCHDOG;
break;
case BOOT_QUIESCENT:
- printf("boot mode: quiescent\n");
- boot_mode[PL] = BOOT_MODE_QUIESCENT;
- break;
+ printf("boot mode: quiescent\n");
+ boot_mode[PL] = BOOT_MODE_QUIESCENT;
+ break;
+ case BOOT_TO_UBOOT:
+ printf("boot mode: uboot\n");
+ boot_mode[PL] = BOOT_MODE_UBOOT_TERMINAL;
+ clear_boot_reg = 1;
+ break;
default:
printf("boot mode: None\n");
boot_mode[PL] = BOOT_MODE_UNDEFINE;
@@ -231,6 +236,8 @@ int setup_boot_mode(void)
{
char env_preboot[256] = {0};
+ env_set("cli", NULL); /* removed by default */
+
switch (rockchip_get_boot_mode()) {
case BOOT_MODE_BOOTLOADER:
printf("enter fastboot!\n");
@@ -263,6 +270,10 @@ int setup_boot_mode(void)
printf("enter charging!\n");
env_set("preboot", "setenv preboot; charge");
break;
+ case BOOT_MODE_UBOOT_TERMINAL:
+ printf("enter uboot!\n");
+ env_set("cli", "yes");
+ break;
}
return 0;
diff --git a/sysdrv/source/uboot/u-boot/common/autoboot.c b/sysdrv/source/uboot/u-boot/common/autoboot.c
index c64d566d1..9cf947b98 100644
--- a/sysdrv/source/uboot/u-boot/common/autoboot.c
+++ b/sysdrv/source/uboot/u-boot/common/autoboot.c
@@ -220,7 +220,8 @@ static int __abortboot(int bootdelay)
#endif
#ifdef CONFIG_ARCH_ROCKCHIP
- if (!IS_ENABLED(CONFIG_CONSOLE_DISABLE_CLI) && ctrlc()) { /* we press ctrl+c ? */
+// if (!IS_ENABLED(CONFIG_CONSOLE_DISABLE_CLI) && ctrlc()) { /* we press ctrl+c ? */
+ if ((!IS_ENABLED(CONFIG_CONSOLE_DISABLE_CLI) && ctrlc()) || env_get("cli")) { /* we press ctrl+c ? */
#else
/*
* Check if key already pressed
diff --git a/sysdrv/source/uboot/u-boot/common/image-fit.c b/sysdrv/source/uboot/u-boot/common/image-fit.c
index 0ee9eab69..632551b88 100644
--- a/sysdrv/source/uboot/u-boot/common/image-fit.c
+++ b/sysdrv/source/uboot/u-boot/common/image-fit.c
@@ -32,6 +32,7 @@ DECLARE_GLOBAL_DATA_PTR;
#include <u-boot/sha1.h>
#include <u-boot/sha256.h>
+#define FDT_DEFAULT_LOAD_ADDR 0x00c00000
#define __round_mask(x, y) ((__typeof__(x))((y)-1))
#define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1)
@@ -2140,7 +2141,13 @@ int fit_image_load_index(bootm_headers_t *images, ulong addr,
ret = fit_image_select(fit, noffset, images->verify);
if (ret) {
bootstage_error(bootstage_id + BOOTSTAGE_SUB_HASH);
- return ret;
+ /* Use the memory fdt directly */
+ printf(" Use the memory fdt directly\n");
+ *datap = FDT_DEFAULT_LOAD_ADDR;
+ fit_image_get_data_size(fit, noffset, (int *)&size);
+ *lenp = (ulong)size;
+ return noffset;
+ //return ret;
}
bootstage_mark(bootstage_id + BOOTSTAGE_SUB_CHECK_ARCH);
@@ -2175,7 +2182,6 @@ int fit_image_load_index(bootm_headers_t *images, ulong addr,
fit_image_check_os(fit, noffset, IH_OS_ARM_TRUSTED_FIRMWARE) ||
fit_image_check_os(fit, noffset, IH_OS_OP_TEE) ||
fit_image_check_os(fit, noffset, IH_OS_U_BOOT) ||
- fit_image_check_os(fit, noffset, IH_OS_QNX) ||
fit_image_check_os(fit, noffset, IH_OS_OPENRTOS);
/*
@@ -2261,8 +2267,10 @@ int fit_image_load_index(bootm_headers_t *images, ulong addr,
return -EXDEV;
}
+ //printf(" Loading %s from 0x%08lx to 0x%08lx\n",
+ // prop_name, data, load);
printf(" Loading %s from 0x%08lx to 0x%08lx\n",
- prop_name, data, load);
+ prop_name, image_start, load);
dst = map_sysmem(load, len);
memmove(dst, buf, len);
diff --git a/sysdrv/source/uboot/u-boot/drivers/mmc/mmc.c b/sysdrv/source/uboot/u-boot/drivers/mmc/mmc.c
index 59805d33a..d352b00a3 100644
--- a/sysdrv/source/uboot/u-boot/drivers/mmc/mmc.c
+++ b/sysdrv/source/uboot/u-boot/drivers/mmc/mmc.c
@@ -2288,6 +2288,11 @@ int mmc_start_init(struct mmc *mmc)
/* Test for SD version 2 */
err = mmc_send_if_cond(mmc);
+ if (err) {
+ mmc_go_idle(mmc);
+ mmc_get_blk_desc(mmc)->hwpart = 0;
+ mmc_send_if_cond(mmc);
+ }
/* Now try to get the SD card's operating condition */
err = sd_send_op_cond(mmc);
diff --git a/sysdrv/source/uboot/u-boot/include/boot_rkimg.h b/sysdrv/source/uboot/u-boot/include/boot_rkimg.h
index 9cb709703..fc8356704 100644
--- a/sysdrv/source/uboot/u-boot/include/boot_rkimg.h
+++ b/sysdrv/source/uboot/u-boot/include/boot_rkimg.h
@@ -20,7 +20,8 @@ enum _boot_mode {
BOOT_MODE_WATCHDOG,
BOOT_MODE_DFU,
BOOT_MODE_QUIESCENT,
- BOOT_MODE_UNDEFINE,
+ BOOT_MODE_UBOOT_TERMINAL,
+ BOOT_MODE_UNDEFINE,
};
struct bootloader_message {
--
2.34.1

View File

@@ -1,622 +0,0 @@
From 8a7f8dcc33ffb580540df5e1dd02b3d3572cb6ee Mon Sep 17 00:00:00 2001
From: luckfox-eng29 <eng29@luckfox.com>
Date: Wed, 25 Sep 2024 18:49:11 +0800
Subject: [PATCH] patch for 115200 bin
Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
---
...rv1106_ddr_924MHz_1500000Baud_tb_v1.15.bin | Bin 0 -> 22632 bytes
.../rv1106_ddr_924MHz_1500000Baud_v1.15.bin | Bin 0 -> 22632 bytes
.../bin/rv11/rv1106_ddr_924MHz_tb_v1.15.bin | Bin 22632 -> 22632 bytes
3 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 sysdrv/source/uboot/rkbin/bin/rv11/rv1106_ddr_924MHz_1500000Baud_tb_v1.15.bin
create mode 100644 sysdrv/source/uboot/rkbin/bin/rv11/rv1106_ddr_924MHz_1500000Baud_v1.15.bin
diff --git a/sysdrv/source/uboot/rkbin/bin/rv11/rv1106_ddr_924MHz_1500000Baud_tb_v1.15.bin b/sysdrv/source/uboot/rkbin/bin/rv11/rv1106_ddr_924MHz_1500000Baud_tb_v1.15.bin
new file mode 100644
index 0000000000000000000000000000000000000000..95767c2f7a73114dae8356f9ebbca6a10689ecee
GIT binary patch
literal 22632
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
literal 0
HcmV?d00001
diff --git a/sysdrv/source/uboot/rkbin/bin/rv11/rv1106_ddr_924MHz_1500000Baud_v1.15.bin b/sysdrv/source/uboot/rkbin/bin/rv11/rv1106_ddr_924MHz_1500000Baud_v1.15.bin
new file mode 100644
index 0000000000000000000000000000000000000000..95767c2f7a73114dae8356f9ebbca6a10689ecee
GIT binary patch
literal 22632
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
literal 0
HcmV?d00001
diff --git a/sysdrv/source/uboot/rkbin/bin/rv11/rv1106_ddr_924MHz_tb_v1.15.bin b/sysdrv/source/uboot/rkbin/bin/rv11/rv1106_ddr_924MHz_tb_v1.15.bin
index 95767c2f7a73114dae8356f9ebbca6a10689ecee..561ee68249c2d41d8d300baad7d0aff8b2728ee2 100644
GIT binary patch
delta 18
acmaE{f$_x##tkN}%nXMZH=DZ}3IhO3qXv}#
delta 18
acmaE{f$_x##tkN}%n6UhHk-Q|3IhO82nQ<w
--
2.34.1

View File

@@ -1,122 +0,0 @@
CONFIG_ARM=y
CONFIG_ARCH_ROCKCHIP=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_optee.sh"
CONFIG_ROCKCHIP_RV1106=y
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
CONFIG_ROCKCHIP_FIT_IMAGE=y
CONFIG_USING_KERNEL_DTB_V2=y
CONFIG_ROCKCHIP_META=y
CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y
# CONFIG_ROCKCHIP_SET_SN is not set
# CONFIG_ROCKCHIP_SET_ETHADDR is not set
CONFIG_LOADER_INI="RV1106MINIALL_SPI_NAND_TB.ini"
CONFIG_TRUST_INI="RV1106TOS_TB.ini"
CONFIG_SPL_SERIAL_SUPPORT=y
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
CONFIG_TARGET_EVB_RV1106=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI_SUPPORT=y
CONFIG_DEFAULT_DEVICE_TREE="rv1106-luckfox-spi-nand-tb"
CONFIG_DEBUG_UART=y
# CONFIG_DISTRO_DEFAULTS is not set
CONFIG_FIT=y
CONFIG_FIT_IMAGE_POST_PROCESS=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_SPL_FIT_IMAGE_KB=512
CONFIG_SPL_FIT_IMAGE_MULTIPLE=1
CONFIG_BOOTDELAY=0
CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set
# CONFIG_SKIP_RELOCATE_UBOOT is not set
CONFIG_SPL_ADC_SUPPORT=y
CONFIG_SPL_BOARD_INIT=y
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set
CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_KERNEL_BOOT=y
CONFIG_HUSH_PARSER=y
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# 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_CRC32 is not set
# CONFIG_CMD_FLASH is not set
# CONFIG_CMD_FPGA is not set
# CONFIG_CMD_LOADB is not set
# CONFIG_CMD_LOADS is not set
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NET is not set
# CONFIG_CMD_NFS is not set
# CONFIG_CMD_MISC is not set
CONFIG_CMD_MTD_BLK=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_SPL_DTB_MINIMUM=y
CONFIG_OF_LIVE=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_OF_U_BOOT_REMOVE_PROPS="interrupt-parent"
CONFIG_ENVF=y
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_SPL_BLK_READ_PREPARE=y
CONFIG_CLK=y
CONFIG_SPL_CLK=y
CONFIG_SPL_DM_CRYPTO=y
CONFIG_SPL_ROCKCHIP_CRYPTO_V2=y
CONFIG_ROCKCHIP_GPIO=y
# CONFIG_DM_I2C is not set
CONFIG_SPL_INPUT=y
CONFIG_DM_KEY=y
CONFIG_ADC_KEY=y
CONFIG_SPL_ADC_KEY=y
CONFIG_SPL_MISC=y
CONFIG_SPL_MISC_DECOMPRESS=y
CONFIG_SPL_ROCKCHIP_HW_DECOMPRESS=y
# CONFIG_MMC is not set
# CONFIG_DM_MMC is not set
CONFIG_MTD=y
CONFIG_MTD_BLK=y
CONFIG_MTD_DEVICE=y
CONFIG_MTD_SPI_NAND=y
CONFIG_SPI_FLASH=y
CONFIG_SF_DEFAULT_MODE=0x1
CONFIG_SF_DEFAULT_SPEED=50000000
CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_SPI_FLASH_XMC=y
CONFIG_SPI_FLASH_MTD=y
CONFIG_PINCTRL=y
# CONFIG_DM_REGULATOR is not set
# CONFIG_DM_PWM is not set
CONFIG_RAM=y
CONFIG_TPL_RAM=y
CONFIG_ROCKCHIP_SDRAM_COMMON=y
CONFIG_DM_RESET=y
CONFIG_SPL_DM_RESET=y
CONFIG_SPL_RESET_ROCKCHIP=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_BASE=0xff4c0000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_ROCKCHIP_SFC=y
CONFIG_SYSRESET=y
# CONFIG_SYSRESET_SYSCON_REBOOT is not set
CONFIG_USE_TINY_PRINTF=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y
# CONFIG_EFI_LOADER is not set

View File

@@ -1,144 +0,0 @@
CONFIG_ARM=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_optee.sh"
CONFIG_ROCKCHIP_RV1106=y
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
CONFIG_ROCKCHIP_FIT_IMAGE=y
CONFIG_USING_KERNEL_DTB_V2=y
CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y
CONFIG_ROCKCHIP_CMD="sd_update -"
CONFIG_SPL_SERIAL_SUPPORT=y
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
CONFIG_TARGET_EVB_RV1106=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI_SUPPORT=y
CONFIG_DEFAULT_DEVICE_TREE="rv1106-evb"
CONFIG_DEBUG_UART=y
# CONFIG_DISTRO_DEFAULTS is not set
CONFIG_ANDROID_BOOT_IMAGE=y
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_SPL_FIT_IMAGE_KB=256
CONFIG_SPL_FIT_IMAGE_MULTIPLE=1
CONFIG_BOOTDELAY=0
CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_ANDROID_BOOTLOADER=y
CONFIG_ANDROID_BOOT_IMAGE_HASH=y
# CONFIG_SKIP_RELOCATE_UBOOT is not set
CONFIG_SPL_BOARD_INIT=y
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
CONFIG_SPL_MMC_WRITE=y
CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_AB=y
CONFIG_HUSH_PARSER=y
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
CONFIG_CMD_BOOTZ=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_CRC32 is not set
# CONFIG_CMD_FLASH is not set
# CONFIG_CMD_FPGA is not set
CONFIG_RANDOM_UUID=y
# CONFIG_CMD_LOADB is not set
# CONFIG_CMD_LOADS is not set
CONFIG_CMD_BOOT_ANDROID=y
CONFIG_CMD_MMC=y
CONFIG_CMD_MTD=y
CONFIG_CMD_PART=y
# CONFIG_CMD_ITEST is not set
CONFIG_CMD_SCRIPT_UPDATE=y
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_TFTP_BOOTM=y
CONFIG_CMD_TFTP_FLASH=y
CONFIG_CMD_DHCP=y
# CONFIG_CMD_NFS is not set
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
CONFIG_CMD_FAT=y
# CONFIG_SPL_DOS_PARTITION is not set
CONFIG_SPL_OF_CONTROL=y
CONFIG_SPL_DTB_MINIMUM=y
CONFIG_OF_LIVE=y
CONFIG_OF_SPL_REMOVE_PROPS="interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_OF_U_BOOT_REMOVE_PROPS="interrupt-parent"
CONFIG_ENVF=y
CONFIG_ENVF_LIST="blkdevparts mtdparts sys_bootargs app reserved ipaddr serverip netmask gatewayip ethaddr"
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_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_ROCKCHIP_GPIO=y
# CONFIG_DM_I2C is not set
CONFIG_DM_KEY=y
CONFIG_ADC_KEY=y
CONFIG_MISC=y
CONFIG_SPL_MISC=y
CONFIG_ROCKCHIP_OTP=y
CONFIG_SPL_ROCKCHIP_SECURE_OTP=y
# CONFIG_SUPPORT_EMMC_RPMB is not set
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MTD=y
CONFIG_MTD_BLK=y
CONFIG_MTD_DEVICE=y
CONFIG_MTD_SPI_NAND=y
CONFIG_PHY_RK630=y
CONFIG_DM_ETH=y
CONFIG_DM_ETH_PHY=y
CONFIG_DWC_ETH_QOS=y
# CONFIG_DWC_ETH_QOS_FULL is not set
CONFIG_GMAC_ROCKCHIP=y
CONFIG_PINCTRL=y
CONFIG_SPL_PINCTRL=y
# CONFIG_DM_REGULATOR is not set
# CONFIG_DM_PWM is not set
CONFIG_RAM=y
CONFIG_TPL_RAM=y
CONFIG_ROCKCHIP_SDRAM_COMMON=y
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_BASE=0xff4c0000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_ROCKCHIP_SFC=y
CONFIG_SYSRESET=y
# CONFIG_SYSRESET_SYSCON_REBOOT is not set
# CONFIG_FAT_WRITE is not set
CONFIG_USE_TINY_PRINTF=y
# CONFIG_REGEX is not set
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_SPL_LZMA=y
CONFIG_SPL_GZIP=y
CONFIG_ERRNO_STR=y
# CONFIG_EFI_LOADER is not set

View File

@@ -1,119 +0,0 @@
CONFIG_ARM=y
CONFIG_ARCH_ROCKCHIP=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_SYS_MALLOC_F_LEN=0x100000
CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_optee.sh"
CONFIG_ROCKCHIP_RV1106=y
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
CONFIG_ROCKCHIP_FIT_IMAGE=y
CONFIG_USING_KERNEL_DTB_V2=y
CONFIG_ROCKCHIP_META=y
CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y
# CONFIG_ROCKCHIP_SET_SN is not set
# CONFIG_ROCKCHIP_SET_ETHADDR is not set
CONFIG_LOADER_INI="RV1106MINIALL_EMMC_TB.ini"
CONFIG_TRUST_INI="RV1106TOS_TB.ini"
CONFIG_SPL_SERIAL_SUPPORT=y
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
CONFIG_TARGET_EVB_RV1106=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_DEFAULT_DEVICE_TREE="rv1106-luckfox-emmc-tb"
CONFIG_DEBUG_UART=y
# CONFIG_DISTRO_DEFAULTS is not set
CONFIG_SPL_SYS_MALLOC_F_LEN=0x80000
CONFIG_TPL_SYS_MALLOC_F_LEN=0x80000
CONFIG_ANDROID_BOOT_IMAGE=y
CONFIG_FIT=y
CONFIG_FIT_IMAGE_POST_PROCESS=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_SPL_FIT_IMAGE_KB=256
CONFIG_SPL_FIT_IMAGE_MULTIPLE=1
CONFIG_BOOTDELAY=0
CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_ANDROID_BOOTLOADER=y
CONFIG_ANDROID_BOOT_IMAGE_HASH=y
# CONFIG_SKIP_RELOCATE_UBOOT is not set
CONFIG_SPL_ADC_SUPPORT=y
CONFIG_SPL_BOARD_INIT=y
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
CONFIG_SPL_MMC_WRITE=y
CONFIG_SPL_KERNEL_BOOT=y
CONFIG_HUSH_PARSER=y
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
CONFIG_CMD_BOOTZ=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_CRC32 is not set
# CONFIG_CMD_FLASH is not set
# CONFIG_CMD_FPGA is not set
CONFIG_RANDOM_UUID=y
# CONFIG_CMD_LOADB is not set
# CONFIG_CMD_LOADS is not set
CONFIG_CMD_BOOT_ANDROID=y
CONFIG_CMD_MMC=y
CONFIG_CMD_PART=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NET is not set
# CONFIG_CMD_NFS is not set
# CONFIG_CMD_MISC is not set
CONFIG_SPL_OF_CONTROL=y
CONFIG_SPL_DTB_MINIMUM=y
CONFIG_OF_LIVE=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_OF_U_BOOT_REMOVE_PROPS="interrupt-parent"
CONFIG_ENVF=y
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_SPL_BLK_READ_PREPARE=y
CONFIG_CLK=y
CONFIG_SPL_CLK=y
CONFIG_SPL_DM_CRYPTO=y
CONFIG_SPL_ROCKCHIP_CRYPTO_V2=y
CONFIG_ROCKCHIP_GPIO=y
# CONFIG_DM_I2C is not set
CONFIG_SPL_INPUT=y
CONFIG_DM_KEY=y
CONFIG_ADC_KEY=y
CONFIG_SPL_ADC_KEY=y
CONFIG_SPL_MISC=y
CONFIG_SPL_MISC_DECOMPRESS=y
CONFIG_SPL_ROCKCHIP_HW_DECOMPRESS=y
# CONFIG_SUPPORT_EMMC_RPMB is not set
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_USE_PRE_CONFIG=y
CONFIG_SF_DEFAULT_MODE=0x3
CONFIG_PINCTRL=y
# CONFIG_DM_REGULATOR is not set
# CONFIG_DM_PWM is not set
CONFIG_RAM=y
CONFIG_TPL_RAM=y
CONFIG_ROCKCHIP_SDRAM_COMMON=y
CONFIG_DM_RESET=y
CONFIG_SPL_DM_RESET=y
CONFIG_SPL_RESET_ROCKCHIP=y
CONFIG_DEBUG_UART_BASE=0xff4c0000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYSRESET=y
# CONFIG_SYSRESET_SYSCON_REBOOT is not set
CONFIG_USE_TINY_PRINTF=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_ERRNO_STR=y
# CONFIG_EFI_LOADER is not set

View File

@@ -1,129 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1106.dtsi"
#include "rv1106-u-boot.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "Rockchip RV1106 EVB2 Board";
compatible = "rockchip,rv1106-evb2", "rockchip,rv1106";
chosen {
stdout-path = &uart2;
u-boot,spl-boot-order = &spi_nor, &emmc;
};
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 0>;
io-channel-names = "buttons";
poll-interval = <100>;
keyup-threshold-microvolt = <1800000>;
u-boot,dm-spl;
status = "okay";
volumeup-key {
u-boot,dm-spl;
linux,code = <KEY_VOLUMEUP>;
label = "volume up";
press-threshold-microvolt = <0>;
};
volumedown-key {
u-boot,dm-spl;
linux,code = <KEY_VOLUMEDOWN>;
label = "volume down";
press-threshold-microvolt = <400781>;
};
};
};
&hw_decompress {
u-boot,dm-spl;
status = "okay";
};
//&gmac {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&mdio {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&pinctrl {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&pcfg_pull_up_drv_level_2 {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&pcfg_pull_up {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&gpio3 {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&rmii_phy {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&rng {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
&saradc {
u-boot,dm-spl;
status = "okay";
};
&sdmmc {
/delete-property/ u-boot,dm-spl;
status = "disabled";
};
&sdmmc0 {
/delete-property/ u-boot,dm-spl;
};
&sdmmc0_bus4 {
/delete-property/ u-boot,dm-spl;
};
&sdmmc0_clk {
/delete-property/ u-boot,dm-spl;
};
&sdmmc0_cmd {
/delete-property/ u-boot,dm-spl;
};
&sdmmc0_det {
/delete-property/ u-boot,dm-spl;
};
&spi_nand {
/delete-property/ u-boot,dm-spl;
status = "disabled";
};
&spi_nor {
spi-max-frequency = <125000000>;
};

View File

@@ -1,131 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1106.dtsi"
#include "rv1106-u-boot.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "Rockchip RV1106 EVB2 Board";
compatible = "rockchip,rv1106-evb2", "rockchip,rv1106";
chosen {
stdout-path = &uart2;
u-boot,spl-boot-order = &spi_nand, &emmc;
};
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 0>;
io-channel-names = "buttons";
poll-interval = <100>;
keyup-threshold-microvolt = <1800000>;
u-boot,dm-spl;
status = "okay";
volumeup-key {
u-boot,dm-spl;
linux,code = <KEY_VOLUMEUP>;
label = "volume up";
press-threshold-microvolt = <0>;
};
volumedown-key {
u-boot,dm-spl;
linux,code = <KEY_VOLUMEDOWN>;
label = "volume down";
press-threshold-microvolt = <400781>;
};
};
};
&hw_decompress {
u-boot,dm-spl;
status = "okay";
};
//&gmac {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&mdio {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&pinctrl {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&pcfg_pull_up_drv_level_2 {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&pcfg_pull_up {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&gpio3 {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&rmii_phy {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
//&rng {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
&saradc {
u-boot,dm-spl;
status = "okay";
};
&sdmmc {
/delete-property/ u-boot,dm-spl;
status = "disabled";
};
&sdmmc0 {
/delete-property/ u-boot,dm-spl;
};
&sdmmc0_bus4 {
/delete-property/ u-boot,dm-spl;
};
&sdmmc0_clk {
/delete-property/ u-boot,dm-spl;
};
&sdmmc0_cmd {
/delete-property/ u-boot,dm-spl;
};
&sdmmc0_det {
/delete-property/ u-boot,dm-spl;
};
//&spi_nand {
// /delete-property/ u-boot,dm-spl;
// status = "disabled";
//};
&spi_nor {
/delete-property/ u-boot,dm-spl;
status = "disabled";
//spi-max-frequency = <125000000>;
};

View File

@@ -1,47 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
/dts-v1/;
#include "rv1106.dtsi"
#include "rv1106-u-boot.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "Rockchip RV1106 EVB2 Board";
compatible = "rockchip,rv1106-evb2", "rockchip,rv1106";
chosen {
stdout-path = &uart2;
u-boot,spl-boot-order = &sdmmc, &spi_nand, &emmc;
};
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 0>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>;
u-boot,dm-spl;
status = "okay";
volumeup-key {
u-boot,dm-spl;
linux,code = <KEY_VOLUMEUP>;
label = "volume up";
press-threshold-microvolt = <1750>;
};
};
};
&hw_decompress {
u-boot,dm-spl;
status = "okay";
};
&saradc {
u-boot,dm-spl;
status = "okay";
};

View File

@@ -1,144 +0,0 @@
CONFIG_ARM=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_optee.sh"
CONFIG_ROCKCHIP_RV1106=y
CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
CONFIG_ROCKCHIP_FIT_IMAGE=y
CONFIG_USING_KERNEL_DTB_V2=y
CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y
CONFIG_ROCKCHIP_CMD="sd_update -"
CONFIG_SPL_SERIAL_SUPPORT=y
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
CONFIG_TARGET_EVB_RV1106=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI_SUPPORT=y
CONFIG_DEFAULT_DEVICE_TREE="rv1106-evb"
CONFIG_DEBUG_UART=y
# CONFIG_DISTRO_DEFAULTS is not set
CONFIG_ANDROID_BOOT_IMAGE=y
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_SPL_FIT_IMAGE_KB=256
CONFIG_SPL_FIT_IMAGE_MULTIPLE=1
CONFIG_BOOTDELAY=0
CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_ANDROID_BOOTLOADER=y
CONFIG_ANDROID_BOOT_IMAGE_HASH=y
# CONFIG_SKIP_RELOCATE_UBOOT is not set
CONFIG_SPL_BOARD_INIT=y
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
CONFIG_SPL_MMC_WRITE=y
CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_AB=y
CONFIG_HUSH_PARSER=y
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
CONFIG_CMD_BOOTZ=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_CRC32 is not set
# CONFIG_CMD_FLASH is not set
# CONFIG_CMD_FPGA is not set
CONFIG_RANDOM_UUID=y
# CONFIG_CMD_LOADB is not set
# CONFIG_CMD_LOADS is not set
CONFIG_CMD_BOOT_ANDROID=y
CONFIG_CMD_MMC=y
CONFIG_CMD_MTD=y
CONFIG_CMD_PART=y
# CONFIG_CMD_ITEST is not set
CONFIG_CMD_SCRIPT_UPDATE=y
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_TFTP_BOOTM=y
CONFIG_CMD_TFTP_FLASH=y
CONFIG_CMD_DHCP=y
# CONFIG_CMD_NFS is not set
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
CONFIG_CMD_FAT=y
# CONFIG_SPL_DOS_PARTITION is not set
CONFIG_SPL_OF_CONTROL=y
CONFIG_SPL_DTB_MINIMUM=y
CONFIG_OF_LIVE=y
CONFIG_OF_SPL_REMOVE_PROPS="interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
CONFIG_OF_U_BOOT_REMOVE_PROPS="interrupt-parent"
CONFIG_ENVF=y
CONFIG_ENVF_LIST="blkdevparts mtdparts sys_bootargs app reserved ipaddr serverip netmask gatewayip ethaddr"
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_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_ROCKCHIP_GPIO=y
# CONFIG_DM_I2C is not set
CONFIG_DM_KEY=y
CONFIG_ADC_KEY=y
CONFIG_MISC=y
CONFIG_SPL_MISC=y
CONFIG_ROCKCHIP_OTP=y
CONFIG_SPL_ROCKCHIP_SECURE_OTP=y
# CONFIG_SUPPORT_EMMC_RPMB is not set
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MTD=y
CONFIG_MTD_BLK=y
CONFIG_MTD_DEVICE=y
CONFIG_MTD_SPI_NAND=y
CONFIG_PHY_RK630=y
CONFIG_DM_ETH=y
CONFIG_DM_ETH_PHY=y
CONFIG_DWC_ETH_QOS=y
# CONFIG_DWC_ETH_QOS_FULL is not set
CONFIG_GMAC_ROCKCHIP=y
CONFIG_PINCTRL=y
CONFIG_SPL_PINCTRL=y
# CONFIG_DM_REGULATOR is not set
# CONFIG_DM_PWM is not set
CONFIG_RAM=y
CONFIG_TPL_RAM=y
CONFIG_ROCKCHIP_SDRAM_COMMON=y
CONFIG_DM_RESET=y
CONFIG_DEBUG_UART_BASE=0xff4c0000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_ROCKCHIP_SFC=y
CONFIG_SYSRESET=y
# CONFIG_SYSRESET_SYSCON_REBOOT is not set
# CONFIG_FAT_WRITE is not set
CONFIG_USE_TINY_PRINTF=y
# CONFIG_REGEX is not set
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_SPL_LZMA=y
CONFIG_SPL_GZIP=y
CONFIG_ERRNO_STR=y
# CONFIG_EFI_LOADER is not set

View File

@@ -1,17 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
*/
#include "rv1106-thunder-boot.dtsi"
/ {
thunder_boot_mmc: thunder-boot-mmc {
compatible = "rockchip,thunder-boot-mmc";
reg = <0xffaa0000 0x4000>;
clocks = <&cru HCLK_SDMMC>, <&cru CCLK_SRC_SDMMC>;
clock-names = "biu", "ciu";
memory-region-src = <&ramdisk_c>;
memory-region-dst = <&ramdisk_r>;
};
};