mirror of
https://github.com/LuckfoxTECH/luckfox-pico.git
synced 2026-01-18 03:28:19 +01:00
Add Support for Luckfox Pico Zero (#310)
* sysdrv/source/kernel/arch/arm/boot/dts : Add Luckfox Pico Zero device tree files Signed-off-by: eng29 <eng29@luckfox.com> * project/cfg/BoardConfig_IPC : Add Luckfox Pico Zero BoardConfig file Signed-off-by: eng29 <eng29@luckfox.com> * project/build.sh : Add the lunch menu item of Luckfox Pico Zero Signed-off-by: eng29 <eng29@luckfox.com> * project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-config/usr/bin/luckfox-config : Add support for Luckfox Pico Zero Signed-off-by: eng29 <eng29@luckfox.com> * sysdrv/drv_ko/wifi/insmod_wifi.sh : Use the device ID as the basis for loading the AIC8800DC driver Signed-off-by: eng29 <eng29@luckfox.com> * sysdrv/source/kernel/drivers/media/i2c : Add the ISG1321 sensor driver Signed-off-by: eng29 <eng29@luckfox.com> * sysdrv/source/kernel/drivers/media/i2c/imx415.c : Add 4-lane 15fps mode for Luckfox Pico Zero Signed-off-by: eng29 <eng29@luckfox.com> * sysdrv/source/kernel/drivers/media/platform/rockchip/isp/hw.c : Add the "rockchip,unite" parameters Signed-off-by: eng29 <eng29@luckfox.com> * sysdrv/source/kernel/arch/arm/configs/luckfox_rv1106_linux_defconfig : Add IMX415 and ISG1321 support Signed-off-by: eng29 <eng29@luckfox.com> * project/app/rkipc/rkipc/common/network/network.c : Cancel the status monitoring for wlan0 and usb0 Signed-off-by: eng29 <eng29@luckfox.com> * project/app/rkipc/rkipc/src/rv1106_ipc : Add IMX415 and ISG1321 support for Luckfox Pico Zero Signed-off-by: eng29 <eng29@luckfox.com> * media/isp/release_camera_engine_rkaiq_rv1106_arm-rockchip830-linux-uclibcgnueabihf/isp_iqfiles : Add ISG1321 iqfile Signed-off-by: eng29 <eng29@luckfox.com> * sysdrv/drv_ko/insmod_ko.sh : Register ISG1321 driver during boot process Signed-off-by: eng29 <eng29@luckfox.com> * sysdrv/tools/board/buildroot/luckfox_pico_defconfig : Add rsync command for backup Signed-off-by: eng29 <eng29@luckfox.com> --------- Signed-off-by: eng29 <eng29@luckfox.com>
This commit is contained in:
@@ -201,6 +201,34 @@ function luckfox_pico_pi_pin_diagram_file() {
|
||||
EOF
|
||||
}
|
||||
|
||||
function luckfox_pico_zero_pin_diagram_file() {
|
||||
cat >$LUCKFOX_PIN_DIAGRAM_FILE <<EOF
|
||||
Luckfox_Pico_Zero
|
||||
+ - + - +
|
||||
- - - 3V3 | | 5V
|
||||
- I2C2_M0_SCL - UART3_M0_TX - GPIO1_A0 | | 5V
|
||||
PWM4_M0 - I2C2_M0_SDA - UART3_M0_RX - GPIO1_A1 | | GND
|
||||
PWM3_M1 - - UART4_M0_RX - GPIO1_B0 | | GPIO1_B2 - FIQtty_TX
|
||||
- - - GND | | GPIO1_B3 - FIQtty_RX
|
||||
- - UART4_M0_TX - GPIO1_B1 | | GPIO1_C6 - - - PWM10_M1
|
||||
PWM3_M2 - - UART3_M1_TX - GPIO1_D0 | | GND
|
||||
PWM10_M2- - UART3_M1_RX - GPIO1_D1 | | GPIO2_A7 - UART0_M1_CTS- I2C3_M0_SDA - PWM4_M1
|
||||
- - - 3V3 | | GPIO2_A6 - UART0_M1_RTS- I2C3_M0_SCL - PWM2_M1
|
||||
PWM5_M2 - I2C4_M1_SCL - SPI0_M0_MOSI- GPIO1_C2 | | GND
|
||||
PWM6_M2 - I2C4_M1_SDA - SPI0_M0_MISO- GPIO1_C3 | | GPIO1_D3 - - - PWM11_M2
|
||||
PWM4_M2 - - SPI0_M0_CLK - GPIO1_C1 | | GPIO1_C0 - SPI0_M0_CS0 - - PWM2_M2
|
||||
GND | | GPIO1_D2 - SPI0_M0_CS1 - - PWM0_M1
|
||||
PWM6_M1 - I2C1_M1_SDA - UART0_M1_TX - GPIO2_B1 | | GPIO2_B0 - UART0_M1_RX - I2C2_M1_SCL - PWM5_M1
|
||||
- I2C3_M2_SDA - UART5_M2_RTS- GPIO3_D2 | | GND - - -
|
||||
- I2C3_M2_SCL - UART5_M2_CTS- GPIO3_D1 | | GPIO1_C5 - UART4_M1_TX - - PWM9_M1
|
||||
PWM8_M1 - - UART4_M1_RX - GPIO1_C4 | | GND - - -
|
||||
PWM2_M0 - - UART0_M0_TX - GPIO0_A1 | | GPIO1_C7 - - - PWM11_M1
|
||||
- - UART0_M0_RX - GPIO0_A0 | | GPIO0_A3 - - -
|
||||
- - - GND | | GPIO0_A4 - - - PWM1_M0
|
||||
+ - + - +
|
||||
EOF
|
||||
}
|
||||
|
||||
################################################################
|
||||
# ------------------------ Initialize --------------------------
|
||||
################################################################
|
||||
@@ -252,6 +280,8 @@ function luckfox_config_init() {
|
||||
luckfox_pico_ultra_pin_diagram_file
|
||||
elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi W" ]; then
|
||||
luckfox_pico_pi_pin_diagram_file
|
||||
elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Zero" ]; then
|
||||
luckfox_pico_zero_pin_diagram_file
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2022,6 +2052,7 @@ function luckfox_usb_app() {
|
||||
function luckfox_csi_app() {
|
||||
#region
|
||||
local action="$1"
|
||||
local unite="$2"
|
||||
# update fdt
|
||||
luckfox_update_fdt
|
||||
|
||||
@@ -2035,6 +2066,12 @@ function luckfox_csi_app() {
|
||||
local csi_action=disbaled
|
||||
fi
|
||||
|
||||
if [ "$unite" == 1 ]; then
|
||||
local unite_state=1
|
||||
else
|
||||
local unite_state=0
|
||||
fi
|
||||
|
||||
if [ "$action" == 1 ]; then
|
||||
local i2c_content="
|
||||
/dts-v1/;
|
||||
@@ -2043,6 +2080,10 @@ function luckfox_csi_app() {
|
||||
status=\"$csi_action\";
|
||||
pinctrl-0 = <$i2c_pinctrl_addr>;
|
||||
};
|
||||
|
||||
&{/rkisp@ffa00000}{
|
||||
rockchip,unite = <$unite_state>;
|
||||
};
|
||||
"
|
||||
else
|
||||
local i2c_content="
|
||||
@@ -2060,6 +2101,8 @@ function luckfox_csi_app() {
|
||||
# update cfg
|
||||
luckfox_set_pin_cfg "CSI_ENABLE" "$action"
|
||||
luckfox_set_pin_parameter "CSI_ENABLE" "$action"
|
||||
luckfox_set_pin_cfg "CSI_UNITE_ENABLE" "$action"
|
||||
luckfox_set_pin_parameter "CSI_UNITE_ENABLE" "$action"
|
||||
|
||||
luckfox_set_pin_mark "I2C4_M0_SCL" 0
|
||||
luckfox_set_pin_mark "I2C4_M0_SDA" 0
|
||||
@@ -2877,7 +2920,8 @@ function luckfox_show_menu() {
|
||||
esac
|
||||
done
|
||||
# Only support Luckfox Pico Ultra /Luckfox Pico Ultra W
|
||||
elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Ultra" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Ultra W" ]; then
|
||||
elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Ultra" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Ultra W" ] ||
|
||||
[ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Zero" ]; then
|
||||
while true; do
|
||||
option=$(dialog --title "$LUCKFOX_CHIP_MODEL Config" \
|
||||
--menu "Choose an option" 80 50 6 \
|
||||
@@ -2894,21 +2938,41 @@ function luckfox_show_menu() {
|
||||
esac
|
||||
done
|
||||
else
|
||||
while true; do
|
||||
option=$(dialog --title "$LUCKFOX_CHIP_MODEL Config" \
|
||||
--menu "Choose an option" 80 50 6 \
|
||||
1 "Compatible Devices" \
|
||||
2 "Advanced Options" \
|
||||
3 "About Luckfox" \
|
||||
2>&1 >/dev/tty)
|
||||
if [ "$LUCKFOX_CHIP_MEDIA_CLASS" == "sdmmc" ]; then
|
||||
while true; do
|
||||
option=$(dialog --title "$LUCKFOX_CHIP_MODEL Config" \
|
||||
--menu "Choose an option" 80 50 6 \
|
||||
1 "Compatible Devices" \
|
||||
2 "Advanced Options" \
|
||||
3 "Backup" \
|
||||
4 "About Luckfox" \
|
||||
2>&1 >/dev/tty)
|
||||
|
||||
case $option in
|
||||
1) luckfox_compatible_devices ;;
|
||||
2) luckfox_advanced_options ;;
|
||||
3) luckfox_about ;;
|
||||
*) luckfox_exit ;;
|
||||
esac
|
||||
done
|
||||
case $option in
|
||||
1) luckfox_compatible_devices ;;
|
||||
2) luckfox_advanced_options ;;
|
||||
3) luckfox_backup ;;
|
||||
4) luckfox_about ;;
|
||||
*) luckfox_exit ;;
|
||||
esac
|
||||
done
|
||||
else
|
||||
while true; do
|
||||
option=$(dialog --title "$LUCKFOX_CHIP_MODEL Config" \
|
||||
--menu "Choose an option" 80 50 6 \
|
||||
1 "Compatible Devices" \
|
||||
2 "Advanced Options" \
|
||||
3 "About Luckfox" \
|
||||
2>&1 >/dev/tty)
|
||||
|
||||
case $option in
|
||||
1) luckfox_compatible_devices ;;
|
||||
2) luckfox_advanced_options ;;
|
||||
3) luckfox_about ;;
|
||||
*) luckfox_exit ;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -3028,11 +3092,12 @@ function luckfox_advanced_options() {
|
||||
function luckfox_backup() {
|
||||
option=$(dialog --title "Advanced Options" \
|
||||
--menu "Choose an option" 80 50 6 \
|
||||
1 "rootfs" \
|
||||
0 "rootfs" \
|
||||
2>&1 >/dev/tty)
|
||||
|
||||
if [ $option == 1 ]; then
|
||||
if [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi W" ]; then
|
||||
if [ "$option" == "0" ]; then
|
||||
if [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi W" ] || \
|
||||
[ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Zero" ]; then
|
||||
media_class=$(dialog --menu "Select Backup Image Location" 80 50 6 \
|
||||
0 "local" \
|
||||
1 "usb_disk" \
|
||||
@@ -3043,6 +3108,13 @@ function luckfox_backup() {
|
||||
0 "local" \
|
||||
1 "usb_disk" \
|
||||
2>&1 >/dev/tty)
|
||||
else
|
||||
if [ "$LUCKFOX_CHIP_MEDIA_CLASS" == "sdmmc" ]; then
|
||||
media_class=$(dialog --menu "Select Backup Image Location" 80 50 6 \
|
||||
0 "local" \
|
||||
1 "usb_disk" \
|
||||
2>&1 >/dev/tty)
|
||||
fi
|
||||
fi
|
||||
luckfox_rootfs_BACKUP "$media_class"
|
||||
else
|
||||
@@ -3279,6 +3351,7 @@ function luckfox_USB() {
|
||||
|
||||
function luckfox_CSI() {
|
||||
local csi_enable
|
||||
local unite_enable
|
||||
csi_enable=$(dialog --menu "CSI Enable Config" 10 40 2 \
|
||||
0 "disable" \
|
||||
1 "enable" \
|
||||
@@ -3286,7 +3359,18 @@ function luckfox_CSI() {
|
||||
if [ -z "$csi_enable" ]; then
|
||||
luckfox_advanced_options
|
||||
fi
|
||||
luckfox_csi_app "$csi_enable"
|
||||
|
||||
if [ "$csi_enable" == 1 ]; then
|
||||
unite_enable=$(dialog --menu "CSI Unite Mode Config(for 3840x2160 input)" 10 40 2 \
|
||||
0 "disable" \
|
||||
1 "enable" \
|
||||
2>&1 >/dev/tty)
|
||||
if [ -z "$unite" ]; then
|
||||
luckfox_advanced_options
|
||||
fi
|
||||
fi
|
||||
|
||||
luckfox_csi_app "$csi_enable" "$unite_enable"
|
||||
dialog --msgbox "CSI Effective after restart" 10 30
|
||||
echo "Set CSI enable status : $csi_enable." >>"$LUCKFOX_CHANGE_TXT"
|
||||
luckfox_advanced_options
|
||||
@@ -3492,13 +3576,22 @@ function luckfox_4G() {
|
||||
1 "CTCC(ctnet)" \
|
||||
2 "CMCC(cmnet)" \
|
||||
3 "CUCC(3gwap)" \
|
||||
4 "custom" \
|
||||
2>&1 >/dev/tty)
|
||||
|
||||
case $card_type in
|
||||
1) apn="ctnet" ;;
|
||||
2) apn="cmnet" ;;
|
||||
3) apn="3gwap" ;;
|
||||
esac
|
||||
if [ "$card_type" == 4 ]; then
|
||||
apn=$(dialog --inputbox "4G Module PPP Mode APN:" 10 30 2>&1 >/dev/tty)
|
||||
if [ -z "apn" ]; then
|
||||
dialog --msgbox "Invalid inputs" 10 30
|
||||
luckfox_advanced_options
|
||||
fi
|
||||
else
|
||||
case $card_type in
|
||||
1) apn="ctnet" ;;
|
||||
2) apn="cmnet" ;;
|
||||
3) apn="3gwap" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -3520,7 +3613,11 @@ function luckfox_rootfs_BACKUP() {
|
||||
luckfox_result_handle "$LF_ERR" "The rsync is not installed"
|
||||
fi
|
||||
|
||||
if [ "$media_class" == 1 ]; then
|
||||
if [ "$media_class" == 0 ]; then
|
||||
AVAILABLE_SPACE=$(df -k /mnt | tail -1 | awk '{print $4}')
|
||||
IMAGE_NAME="/mnt/backup_rootfs.img"
|
||||
MOUNT_POINT="/mnt/backup_img"
|
||||
elif [ "$media_class" == 1 ]; then
|
||||
if ! mount | grep "/mnt/udisk"; then
|
||||
luckfox_result_handle "$LF_ERR" "USB disk is not mounted"
|
||||
fi
|
||||
@@ -3535,9 +3632,7 @@ function luckfox_rootfs_BACKUP() {
|
||||
IMAGE_NAME="/mnt/sdcard/backup_rootfs.img"
|
||||
MOUNT_POINT="/mnt/sdcard/backup_img"
|
||||
else
|
||||
AVAILABLE_SPACE=$(df -k /mnt | tail -1 | awk '{print $4}')
|
||||
IMAGE_NAME="/mnt/backup_rootfs.img"
|
||||
MOUNT_POINT="/mnt/backup_img"
|
||||
luckfox_show_menu
|
||||
fi
|
||||
|
||||
used_kb=$(df -k / | tail -1 | awk '{print $3}')
|
||||
@@ -3560,7 +3655,10 @@ function luckfox_rootfs_BACKUP() {
|
||||
if mountpoint -q "$MOUNT_POINT"; then
|
||||
umount "$MOUNT_POINT"
|
||||
fi
|
||||
rm -rf "$MOUNT_POINT"
|
||||
|
||||
if [ -d "$MOUNT_POINT" ]; then
|
||||
rm -rf "$MOUNT_POINT"
|
||||
fi
|
||||
mkdir -p "$MOUNT_POINT"
|
||||
|
||||
{
|
||||
@@ -3590,9 +3688,9 @@ function luckfox_rootfs_BACKUP() {
|
||||
echo 80
|
||||
echo "Copying rootfs with rsync..."
|
||||
echo "XXX"
|
||||
rsync -aX --exclude={"/oem","/userdata","/mnt","/tmp","/proc"} / "$MOUNT_POINT" >>"$LOG_FILE" 2>&1
|
||||
rsync -aX --exclude={"/oem","/userdata","/sys","/mnt","/tmp","/proc"} / "$MOUNT_POINT" >>"$LOG_FILE" 2>&1
|
||||
|
||||
mkdir -p "$MOUNT_POINT/mnt" "$MOUNT_POINT/tmp" "$MOUNT_POINT/proc" "$MOUNT_POINT/userdata" "$MOUNT_POINT/oem"
|
||||
mkdir -p "$MOUNT_POINT/sys" "$MOUNT_POINT/mnt" "$MOUNT_POINT/tmp" "$MOUNT_POINT/proc" "$MOUNT_POINT/userdata" "$MOUNT_POINT/oem"
|
||||
|
||||
echo "XXX"
|
||||
echo 100
|
||||
@@ -3603,7 +3701,6 @@ function luckfox_rootfs_BACKUP() {
|
||||
|
||||
dialog --title "Backup Succeeded" --msgbox "The image is saved at $IMAGE_NAME" 10 60
|
||||
luckfox_show_menu
|
||||
|
||||
}
|
||||
|
||||
################################################################
|
||||
@@ -3653,7 +3750,6 @@ elif [ "$1" == "rgb_switch" ]; then
|
||||
echo "****************************************************"
|
||||
echo "***Switch the RGB screen resolution to 720 x 720.***"
|
||||
echo "****************************************************"
|
||||
luckfox_csi_app 1
|
||||
luckfox_rgb_app 1 "reset" "30000000" \
|
||||
"720" "720" \
|
||||
"44" "46" \
|
||||
@@ -3666,7 +3762,6 @@ elif [ "$1" == "rgb_switch" ]; then
|
||||
echo "****************************************************"
|
||||
echo "***Switch the RGB screen resolution to 480 x 480.***"
|
||||
echo "****************************************************"
|
||||
luckfox_csi_app 1
|
||||
luckfox_rgb_app 1 "reset" "16500000" \
|
||||
"480" "480" \
|
||||
"10" "50" \
|
||||
@@ -3678,7 +3773,6 @@ elif [ "$1" == "rgb_switch" ]; then
|
||||
echo "****************************************************"
|
||||
echo "***Switch the RGB screen resolution to 480 x 480.***"
|
||||
echo "****************************************************"
|
||||
luckfox_csi_app 1
|
||||
luckfox_rgb_app 1 "reset" "16500000" \
|
||||
"480" "480" \
|
||||
"10" "50" \
|
||||
@@ -3690,6 +3784,33 @@ elif [ "$1" == "rgb_switch" ]; then
|
||||
else
|
||||
luckfox_result_handle "$RK_ERR" "This Luckchip Pico Model does not support RGB switch."
|
||||
fi
|
||||
elif [ "$1" == "get_csi_unite" ]; then
|
||||
LF_GUI_ENABLE=0
|
||||
luckfox_config_init
|
||||
luckfox_update_fdt
|
||||
|
||||
csi_unite_status=$(grep -A 9 "rkisp@ffa00000 {" $LUCKFOX_FDT_DUMP_TXT | grep 'rockchip,unite' | awk '{print $3}' | sed 's/[<>;]//g')
|
||||
if [ -z "$csi_unite_status" ]; then
|
||||
csi_unite_status=0
|
||||
fi
|
||||
|
||||
echo $(($csi_unite_status))
|
||||
elif [ "$1" == "set_csi_unite" ]; then
|
||||
LF_GUI_ENABLE=0
|
||||
luckfox_config_init
|
||||
|
||||
csi_status=$(luckfox_get_pin_mark "CSI_ENABLE")
|
||||
if [ -z "$csi_status" ]; then
|
||||
csi_status=1
|
||||
fi
|
||||
|
||||
#csi_unite_status=$(luckfox_get_pin_mark "CSI_UNITE_ENABLE")
|
||||
csi_unite_status="$2"
|
||||
if [ -z "csi_unite_status" ]; then
|
||||
csi_unite_status=0
|
||||
fi
|
||||
|
||||
luckfox_csi_app "$csi_status" "$csi_unite_status"
|
||||
elif [ -z "$1" ]; then
|
||||
LF_GUI_ENABLE=1
|
||||
luckfox_config_init
|
||||
|
||||
Reference in New Issue
Block a user