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:
File diff suppressed because one or more lines are too long
@@ -696,6 +696,13 @@ int rk_network_get_cable_state() {
|
|||||||
ifinfo = NLMSG_DATA(nh);
|
ifinfo = NLMSG_DATA(nh);
|
||||||
|
|
||||||
if_indextoname(ifinfo->ifi_index, name);
|
if_indextoname(ifinfo->ifi_index, name);
|
||||||
|
if (strcmp(name, "usb0") == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(name, "wlan0") == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
LOG_INFO("\n[%s] link %s\n", name, (ifinfo->ifi_flags & IFF_LOWER_UP) ? "up" : "down");
|
LOG_INFO("\n[%s] link %s\n", name, (ifinfo->ifi_flags & IFF_LOWER_UP) ? "up" : "down");
|
||||||
|
|
||||||
memset(cmd1, 0, 32);
|
memset(cmd1, 0, 32);
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ add_executable(${PROJECT_NAME} ${SRCS})
|
|||||||
target_link_libraries(${PROJECT_NAME} pthread rockit rockchip_mpp rkaiq rtsp rkaudio_detect aec_bf_process wpa_client m rkmuxer freetype rockiva iconv rknnmrt rga stdc++ rksysutils rkaudio)
|
target_link_libraries(${PROJECT_NAME} pthread rockit rockchip_mpp rkaiq rtsp rkaudio_detect aec_bf_process wpa_client m rkmuxer freetype rockiva iconv rknnmrt rga stdc++ rksysutils rkaudio)
|
||||||
|
|
||||||
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
|
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
|
||||||
|
install(FILES rkipc-mia1321-100w.ini DESTINATION share)
|
||||||
install(FILES rkipc-300w.ini DESTINATION share)
|
install(FILES rkipc-300w.ini DESTINATION share)
|
||||||
install(FILES rkipc-400w.ini DESTINATION share)
|
install(FILES rkipc-400w.ini DESTINATION share)
|
||||||
install(FILES rkipc-500w.ini DESTINATION share)
|
install(FILES rkipc-500w.ini DESTINATION share)
|
||||||
|
|||||||
@@ -73,6 +73,10 @@ post_chk() {
|
|||||||
default_rkipc_ini=/tmp/rkipc-factory-config.ini
|
default_rkipc_ini=/tmp/rkipc-factory-config.ini
|
||||||
|
|
||||||
if [ ! -f "/oem/usr/share/rkipc.ini" ]; then
|
if [ ! -f "/oem/usr/share/rkipc.ini" ]; then
|
||||||
|
lsmod | grep mia1321
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
ln -s -f /oem/usr/share/rkipc-mia1321-100w.ini $default_rkipc_ini
|
||||||
|
fi
|
||||||
lsmod | grep mis5001
|
lsmod | grep mis5001
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
ln -s -f /oem/usr/share/rkipc-mis5001-500w.ini $default_rkipc_ini
|
ln -s -f /oem/usr/share/rkipc-mis5001-500w.ini $default_rkipc_ini
|
||||||
@@ -126,6 +130,24 @@ post_chk() {
|
|||||||
rk_mpi_ao_test -i /oem/usr/share/speaker_test.wav --sound_card_name=hw:0,0 --device_ch=2 --device_rate=8000 --input_rate=8000 --input_ch=2 --set_volume 50
|
rk_mpi_ao_test -i /oem/usr/share/speaker_test.wav --sound_card_name=hw:0,0 --device_ch=2 --device_rate=8000 --input_rate=8000 --input_ch=2 --set_volume 50
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
csi_unite=$(( $(luckfox-config get_csi_unite) ))
|
||||||
|
if [ -z csi_unite ]; then
|
||||||
|
csi_unite=0
|
||||||
|
fi
|
||||||
|
if lsmod | grep 'imx415' | awk '{print $3}' | grep -w 1; then
|
||||||
|
if [ $csi_unite == "0" ]; then
|
||||||
|
luckfox-config set_csi_unite 1
|
||||||
|
echo "[rkipc] Set rockchip,unite to 1; rkipc requires a reboot to function properly."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ $csi_unite == "1" ]; then
|
||||||
|
luckfox-config set_csi_unite 0
|
||||||
|
echo "[rkipc] Set rockchip,unite to 0; rkipc requires a reboot to function properly."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -d "/oem/usr/share/iqfiles" ]; then
|
if [ -d "/oem/usr/share/iqfiles" ]; then
|
||||||
rkipc -a /oem/usr/share/iqfiles &
|
rkipc -a /oem/usr/share/iqfiles &
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[audio.0]
|
[audio.0]
|
||||||
enable = 1
|
enable = 0
|
||||||
card_name = hw:0,0
|
card_name = hw:0,0
|
||||||
encode_type = G711A
|
encode_type = G711A
|
||||||
format = S16
|
format = S16
|
||||||
@@ -19,14 +19,14 @@ enable_aiq = 1
|
|||||||
enable_vo = 0
|
enable_vo = 0
|
||||||
vo_dev_id = 3 ; 0 is hdmi, 3 is mipi
|
vo_dev_id = 3 ; 0 is hdmi, 3 is mipi
|
||||||
enable_ivs = 1
|
enable_ivs = 1
|
||||||
enable_jpeg = 1
|
enable_jpeg = 0
|
||||||
enable_venc_0 = 1
|
enable_venc_0 = 1
|
||||||
enable_venc_1 = 0
|
enable_venc_1 = 0
|
||||||
enable_venc_2 = 0
|
enable_venc_2 = 0
|
||||||
enable_npu = 1
|
enable_npu = 0
|
||||||
npu_fps = 10
|
npu_fps = 10
|
||||||
enable_rtsp = 1
|
enable_rtsp = 1
|
||||||
enable_rtmp = 1
|
enable_rtmp = 0
|
||||||
rotation = 0 ; available value:0 90 180 270
|
rotation = 0 ; available value:0 90 180 270
|
||||||
|
|
||||||
[video.0]
|
[video.0]
|
||||||
|
|||||||
376
project/app/rkipc/rkipc/src/rv1106_ipc/rkipc-mia1321-100w.ini
Normal file
376
project/app/rkipc/rkipc/src/rv1106_ipc/rkipc-mia1321-100w.ini
Normal file
@@ -0,0 +1,376 @@
|
|||||||
|
[audio.0]
|
||||||
|
enable = 0
|
||||||
|
card_name = hw:0,0
|
||||||
|
encode_type = G711A
|
||||||
|
format = S16
|
||||||
|
sample_rate = 8000
|
||||||
|
channels = 1
|
||||||
|
frame_size = 1152
|
||||||
|
bit_rate = 16000
|
||||||
|
input = mic_in
|
||||||
|
volume = 50
|
||||||
|
enable_aed = 0
|
||||||
|
enable_bcd = 0
|
||||||
|
enable_vqe = 1
|
||||||
|
vqe_cfg = /oem/usr/share/vqefiles/config_aivqe.json
|
||||||
|
|
||||||
|
[video.source]
|
||||||
|
enable_aiq = 1
|
||||||
|
enable_vo = 0
|
||||||
|
vo_dev_id = 3 ; 0 is hdmi, 3 is mipi
|
||||||
|
enable_ivs = 0
|
||||||
|
enable_jpeg = 0
|
||||||
|
enable_venc_0 = 1
|
||||||
|
enable_venc_1 = 0
|
||||||
|
enable_venc_2 = 0
|
||||||
|
enable_npu = 0
|
||||||
|
npu_fps = 0
|
||||||
|
enable_rtsp = 1
|
||||||
|
enable_rtmp = 0
|
||||||
|
rotation = 0 ; available value:0 90 180 270
|
||||||
|
|
||||||
|
[video.0]
|
||||||
|
buffer_size = 691200 ; w * h / 2
|
||||||
|
buffer_count = 4
|
||||||
|
enable_refer_buffer_share = 1
|
||||||
|
stream_type = mainStream
|
||||||
|
video_type = compositeStream
|
||||||
|
max_width = 1280
|
||||||
|
max_height = 1080
|
||||||
|
width = 1280
|
||||||
|
height = 1080
|
||||||
|
rc_mode = CBR
|
||||||
|
rc_quality = high
|
||||||
|
src_frame_rate_den = 1
|
||||||
|
src_frame_rate_num = 60
|
||||||
|
dst_frame_rate_den = 1
|
||||||
|
dst_frame_rate_num = 60
|
||||||
|
target_rate = 0
|
||||||
|
mid_rate = 2048
|
||||||
|
max_rate = 4096
|
||||||
|
min_rate = 0
|
||||||
|
output_data_type = H.265
|
||||||
|
smart = close
|
||||||
|
h264_profile = high
|
||||||
|
gop = 50
|
||||||
|
smartp_viridrlen = 25
|
||||||
|
gop_mode = normalP
|
||||||
|
stream_smooth = 50
|
||||||
|
enable_motion_deblur = 1
|
||||||
|
motion_deblur_strength = 3
|
||||||
|
enable_motion_static_switch = 0
|
||||||
|
frame_min_i_qp = 26
|
||||||
|
frame_min_qp = 28
|
||||||
|
frame_max_i_qp = 51
|
||||||
|
frame_max_qp = 51
|
||||||
|
scalinglist = 0
|
||||||
|
enable_debreath_effect = 0
|
||||||
|
debreath_effect_strength = 16
|
||||||
|
thrd_i = 0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25
|
||||||
|
thrd_p = 0,0,0,0,3,3,5,5,8,8,8,15,15,20,25,25
|
||||||
|
aq_step_i = -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,7,8
|
||||||
|
aq_step_p = -8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,7,8
|
||||||
|
qbias_enable = 1
|
||||||
|
qbias_i = 171
|
||||||
|
qbias_p = 85
|
||||||
|
flt_str_i = 0
|
||||||
|
flt_str_p = 0
|
||||||
|
cu_dqp = 1
|
||||||
|
anti_ring = 2
|
||||||
|
anti_line = 2
|
||||||
|
lambds = 4
|
||||||
|
|
||||||
|
[video.1]
|
||||||
|
max_width = 704
|
||||||
|
max_height = 576
|
||||||
|
width = 704
|
||||||
|
height = 576
|
||||||
|
|
||||||
|
[video.2]
|
||||||
|
max_width = 960
|
||||||
|
max_height = 540
|
||||||
|
width = 960
|
||||||
|
height = 540
|
||||||
|
|
||||||
|
[ivs]
|
||||||
|
smear = 0
|
||||||
|
weightp = 0
|
||||||
|
md = 1
|
||||||
|
od = 0
|
||||||
|
md_sensibility = 3 ;available: 1 2 3,max 3
|
||||||
|
|
||||||
|
[video.jpeg]
|
||||||
|
width = 1280
|
||||||
|
height = 1080
|
||||||
|
jpeg_buffer_size = 1048576 ; 1024KB
|
||||||
|
jpeg_qfactor = 70
|
||||||
|
enable_cycle_snapshot = 0
|
||||||
|
snapshot_interval_ms = 1000
|
||||||
|
|
||||||
|
[isp]
|
||||||
|
scenario = normal ; normal or custom1
|
||||||
|
init_form_ini = 1
|
||||||
|
normal_scene = day
|
||||||
|
|
||||||
|
; isp.0
|
||||||
|
[isp.0.adjustment]
|
||||||
|
contrast = 50
|
||||||
|
brightness = 50
|
||||||
|
saturation = 50
|
||||||
|
sharpness = 50
|
||||||
|
fps = 60
|
||||||
|
hue = 50
|
||||||
|
|
||||||
|
[isp.0.enhancement]
|
||||||
|
noise_reduce_mode = close
|
||||||
|
denoise_level = 50
|
||||||
|
spatial_denoise_level = 50
|
||||||
|
temporal_denoise_level = 50
|
||||||
|
dehaze = close
|
||||||
|
dehaze_level = 0
|
||||||
|
dis = close
|
||||||
|
gray_scale_mode = [0-255]
|
||||||
|
distortion_correction = close
|
||||||
|
ldch_level = 0
|
||||||
|
|
||||||
|
[isp.0.video_adjustment]
|
||||||
|
image_flip = close
|
||||||
|
scene_mode = indoor
|
||||||
|
power_line_frequency_mode = PAL(50HZ)
|
||||||
|
|
||||||
|
[storage]
|
||||||
|
mount_path = /userdata
|
||||||
|
free_size_del_min = 500; MB
|
||||||
|
free_size_del_max = 1000; MB
|
||||||
|
num_limit_enable = 1; limit by file num
|
||||||
|
|
||||||
|
[storage.0]
|
||||||
|
enable = 0
|
||||||
|
folder_name = video0
|
||||||
|
file_format = mp4 ; flv,ts
|
||||||
|
file_duration = 60
|
||||||
|
video_quota = 30
|
||||||
|
file_max_num = 300
|
||||||
|
|
||||||
|
[storage.1]
|
||||||
|
enable = 0
|
||||||
|
folder_name = video1
|
||||||
|
file_format = mp4 ; flv,ts
|
||||||
|
file_duration = 60
|
||||||
|
video_quota = 30
|
||||||
|
file_max_num = 300
|
||||||
|
|
||||||
|
[storage.2]
|
||||||
|
enable = 0
|
||||||
|
folder_name = video2
|
||||||
|
file_format = mp4 ; flv,ts
|
||||||
|
file_duration = 60
|
||||||
|
video_quota = 30
|
||||||
|
file_max_num = 300
|
||||||
|
|
||||||
|
[system.device_info]
|
||||||
|
deivce_name = RK IP Camera
|
||||||
|
telecontrol_id = 88
|
||||||
|
model = RK-003
|
||||||
|
serial_number = RK-003-A
|
||||||
|
firmware_version = V0.2.6 build 202108
|
||||||
|
encoder_version = V1.0 build 202108
|
||||||
|
web_version = V2.12.2 build 202108
|
||||||
|
plugin_version = V1.0.0.0
|
||||||
|
channels_number = 1
|
||||||
|
hard_disks_number = 1
|
||||||
|
alarm_inputs_number = 0
|
||||||
|
alarm_outputs_number = 0
|
||||||
|
firmware_version_info = CP-3-B
|
||||||
|
manufacturer = Rockchip
|
||||||
|
hardware_id = c3d9b8674f4b94f6
|
||||||
|
user_num = 1
|
||||||
|
|
||||||
|
[capability.video]
|
||||||
|
0 = {"disabled":[{"name":"sStreamType","options":{"subStream":{"sSmart":"close"},"thirdStream":{"sSmart":"close"}},"type":"disabled/limit"},{"name":"sRCMode","options":{"CBR":{"sRCQuality":null}},"type":"disabled"},{"name":"sOutputDataType","options":{"H.265":{"sH264Profile":null}},"type":"disabled"},{"name":"unspport","options":{"iStreamSmooth":null,"sVideoType":null},"type":"disabled"}],"dynamic":{"sSmart":{"open":{"iMinRate":{"dynamicRange":{"max":"iMaxRate","maxRate":1,"min":"iMaxRate","minRate":0.125},"type":"dynamicRange"}}},"sStreamType":{"mainStream":{"iMaxRate":{"options":[256,512,1024,2048,3072,4096,6144],"type":"options"},"sResolution":{"options":["2880*1616","1920*1080","1280*720","960*540","640*360","320*240"],"type":"options"}},"subStream":{"iMaxRate"
|
||||||
|
1 = :{"options":[128,256,512],"type":"options"},"sResolution":{"options":["704*576","640*480","352*288","320*240"],"type":"options"}},"thirdStream":{"iMaxRate":{"options":[256,512],"type":"options"},"sResolution":{"options":["416*416"],"type":"options"}}}},"layout":{"encoder":["sStreamType","sVideoType","sResolution","sRCMode","sRCQuality","sFrameRate","sOutputDataType","sSmart","sH264Profile","sGOPMode","iMaxRate","iGOP","iStreamSmooth"]},"static":{"iGOP":{"range":{"max":400,"min":1},"type":"range"},"iStreamSmooth":{"range":{"max":100,"min":1,"step":1},"type":"range"},"sFrameRate":{"dynamicRange":{"max":"sFrameRateIn","maxRate":1},"options":["1/2","1","2","4","6","8","10","12","14","16","18","20","25","30"],"type":"options/dynamicRange"},"sH264Profile":{"options":["high","main","baseline"],"type":"options"},"sOutputDataType":{"options"
|
||||||
|
2 = :["H.264","H.265"],"type":"options"},"sRCMode":{"options":["CBR","VBR"],"type":"options"},"sRCQuality":{"options":["lowest","lower","low","medium","high","higher","highest"],"type":"options"},"sGOPMode":{"options":["normalP","smartP"],"type":"options"},"sSmart":{"options":["open","close"],"type":"options"},"sStreamType":{"options":["mainStream","subStream","thirdStream"],"type":"options"},"sVideoType":{"options":["videoStream","compositeStream"],"type":"options"}}}
|
||||||
|
|
||||||
|
[capability.image_adjustment]
|
||||||
|
0 = {"layout":{"image_adjustment":["iBrightness","iContrast","iSaturation","iSharpness","iHue"]},"static":{"iBrightness":{"range":{"max":100,"min":0,"step":1},"type":"range"},"iContrast":{"range":{"max":100,"min":0,"step":1},"type":"range"},"iHue":{"range":{"max":100,"min":0,"step":1},"type":"range"},"iSaturation":{"range":{"max":100,"min":0,"step":1},"type":"range"},"iSharpness":{"range":{"max":100,"min":0,"step":1},"type":"range"}}}
|
||||||
|
|
||||||
|
[capability.image_blc]
|
||||||
|
0 = {"disabled":[{"name":"sHLC","options":{"open":{"sBLCRegion":null}},"type":"disabled"},{"name":"sBLCRegion","options":{"open":{"iDarkBoostLevel":null,"iHLCLevel":null,"sHLC":null}},"type":"disabled"}],"dynamic":{"sBLCRegion":{"open":{"iBLCStrength":{"range":{"max":100,"min":0,"step":1},"type":"range"}}},"sHDR":{"HDR2":{"iHDRLevel":{"options":[1,2,3,4],"type":"options"}},"close":{"sBLCRegion":{"options":["close","open"],"type":"options"},"sHLC":{"options"
|
||||||
|
1 = :["close","open"],"type":"options"}}},"sHLC":{"open":{"iDarkBoostLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"},"iHLCLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}}},"sWDR":{"open":{"iWDRLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}}}},"layout":{"image_blc":["sHDR","iHDRLevel","sBLCRegion","iBLCStrength","sHLC","iHLCLevel"]},"static":{"sHDR":{"options":["close","HDR2"],"type":"options"}}}
|
||||||
|
|
||||||
|
[capability.image_enhancement]
|
||||||
|
0 = {"dynamic":{"sDehaze":{"open":{"iDehazeLevel":{"range":{"max":10,"min":0,"step":1},"type":"range"}}},"sDistortionCorrection":{"FEC":{"iFecLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}},"LDCH":{"iLdchLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}}},"sNoiseReduceMode":{"2dnr":{"iSpatialDenoiseLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}},"3dnr":{"iTemporalDenoiseLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}},"mixnr":{"iSpatialDenoiseLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"},"iTemporalDenoiseLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}}}},"layout"
|
||||||
|
1 = :{"image_enhancement":["sNoiseReduceMode","iSpatialDenoiseLevel","iTemporalDenoiseLevel","sDehaze","iDehazeLevel","sGrayScaleMode","sDistortionCorrection","iLdchLevel","iFecLevel"]},"static":{"sDIS":{"options":["open","close"],"type":"options"},"sDehaze":{"options":["open","close","auto"],"type":"options"},"sDistortionCorrection":{"options":["LDCH","close"],"type":"options"},"sFEC":{"options":["open","close"],"type":"options"},"sGrayScaleMode":{"options":["[0-255]","[16-235]"],"type":"options"},"sNoiseReduceMode":{"options":["close","2dnr","3dnr","mixnr"],"type":"options"}}}
|
||||||
|
|
||||||
|
[capability.image_exposure]
|
||||||
|
0 = {"dynamic":{"sExposureMode":{"auto":{"iAutoIrisLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}},"manual":{"sExposureTime":{"options":["1","1/3","1/6","1/12","1/25","1/50","1/100","1/150","1/200","1/250","1/500","1/750","1/1000","1/2000","1/4000","1/10000","1/100000"],"type":"options"},"sGainMode":{"options":["auto","manual"],"type":"options"}}},"sGainMode":{"manual":{"iExposureGain":{"range":{"max":100,"min":1,"step":1},"type":"range"}}}},"layout":{"image_exposure":["sExposureMode","sExposureTime","sGainMode","iExposureGain","iFPS"]},"static":{"sExposureMode":{"options":["auto","manual"],"type":"options"},"iFPS":{"range":{"max":30,"min":0,"step":1},"type":"range"}}}
|
||||||
|
|
||||||
|
[capability.image_night_to_day]
|
||||||
|
0 = {"disabled":[{"name":"sNightToDay","options":{"day":{"iLightBrightness":null,"sFillLightMode":null},"night":{"iDarkBoostLevel":null,"iHDRLevel":null,"iHLCLevel":null,"sHDR":null,"sHLC":"close"}},"type":"disabled"}],"dynamic":{"sNightToDay":{"auto":{"iNightToDayFilterLevel":{"options":[0,1,2,3,4,5,6,7],"type":"options"},"iNightToDayFilterTime":{"range":{"max":10,"min":3,"step":1},"type":"range"}},"schedule":{"sDawnTime":{"input":"time","type":"input"},"sDuskTime":{"input":"time","type":"input"}}},"sOverexposeSuppress":{"open"
|
||||||
|
1 = :{"sOverexposeSuppressType":{"options":["auto","manual"],"type":"options"}}},"sOverexposeSuppressType":{"manual":{"iDistanceLevel":{"range":{"max":100,"min":0,"step":1},"type":"range"}}}},"layout":{"image_night_to_day":["sNightToDay","iNightToDayFilterLevel","iNightToDayFilterTime","sDawnTime","sDuskTime","sFillLightMode","iLightBrightness"]},"static":{"iLightBrightness":{"range":{"max":100,"min":0,"step":10},"type":"range"},"sNightToDay":{"options":["day","night"],"type":"options"},"sFillLightMode":{"type":"options","options":["IR"]}}}
|
||||||
|
|
||||||
|
[capability.image_video_adjustment]
|
||||||
|
0 = {"layout":{"image_video_adjustment":["sPowerLineFrequencyMode","sImageFlip","iImageRotation"]},"static":{"sImageFlip":{"options":["close","flip","mirror","centrosymmetric"],"type":"options"},"sPowerLineFrequencyMode":{"options":["PAL(50HZ)","NTSC(60HZ)"],"type":"options"},"sSceneMode":{"options":["indoor","outdoor"],"type":"options"},"iImageRotation":{"options":[0,90,180,270],"type":"options"}}}
|
||||||
|
|
||||||
|
[capability.image_white_blance]
|
||||||
|
0 = {"dynamic":{"sWhiteBlanceStyle":{"manualWhiteBalance":{"iWhiteBalanceBlue":{"range":{"max":100,"min":0,"step":1},"type":"range"},"iWhiteBalanceGreen":{"range":{"max":100,"min":0,"step":1},"type":"range"},"iWhiteBalanceRed":{"range":{"max":100,"min":0,"step":1},"type":"range"}}}},"layout":{"image_white_blance":["sWhiteBlanceStyle","iWhiteBalanceRed","iWhiteBalanceGreen","iWhiteBalanceBlue"]},"static":{"sWhiteBlanceStyle":{"options":["manualWhiteBalance","autoWhiteBalance","lockingWhiteBalance","fluorescentLamp","incandescent","warmLight","naturalLight"],"type":"options"}}}
|
||||||
|
|
||||||
|
[user.0]
|
||||||
|
user_name = admin
|
||||||
|
password = YWRtaW4=
|
||||||
|
user_level = 1 ; administrator=0 operator=1 user=2
|
||||||
|
|
||||||
|
[osd.common]
|
||||||
|
enable_osd = 1
|
||||||
|
is_presistent_text = 1
|
||||||
|
attribute = transparent/not-flashing
|
||||||
|
font_size = 32
|
||||||
|
font_color_mode = customize
|
||||||
|
font_color = fff799
|
||||||
|
alignment = customize
|
||||||
|
boundary = 0
|
||||||
|
font_path = /oem/usr/share/simsun_en.ttf
|
||||||
|
normalized_screen_width = 704
|
||||||
|
normalized_screen_height = 480
|
||||||
|
|
||||||
|
[osd.0]
|
||||||
|
type = channelName
|
||||||
|
enabled = 0
|
||||||
|
position_x = 1104
|
||||||
|
position_y = 640
|
||||||
|
display_text = Camera 01
|
||||||
|
|
||||||
|
[osd.1]
|
||||||
|
type = dateTime
|
||||||
|
enabled = 1
|
||||||
|
position_x = 16
|
||||||
|
position_y = 16
|
||||||
|
date_style = CHR-YYYY-MM-DD
|
||||||
|
time_style = 24hour
|
||||||
|
display_week_enabled = 0
|
||||||
|
|
||||||
|
[osd.2]
|
||||||
|
type = character
|
||||||
|
enabled = 0
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
display_text = null
|
||||||
|
|
||||||
|
[osd.3]
|
||||||
|
type = character
|
||||||
|
enabled = 0
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
display_text = null
|
||||||
|
|
||||||
|
[osd.4]
|
||||||
|
type = privacyMask
|
||||||
|
enabled = 0
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 0
|
||||||
|
height = 0
|
||||||
|
|
||||||
|
[osd.5]
|
||||||
|
type = privacyMask
|
||||||
|
enabled = 0
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 0
|
||||||
|
height = 0
|
||||||
|
|
||||||
|
[osd.6]
|
||||||
|
type = image
|
||||||
|
enabled = 0
|
||||||
|
position_x = 16
|
||||||
|
position_y = 640
|
||||||
|
image_path = /userdata/image.bmp
|
||||||
|
|
||||||
|
[event.regional_invasion]
|
||||||
|
enabled = 1
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 700
|
||||||
|
height = 560
|
||||||
|
proportion = 1
|
||||||
|
sensitivity_level = 90
|
||||||
|
time_threshold = 1
|
||||||
|
rockiva_model_type = small ;big medium small
|
||||||
|
|
||||||
|
[roi.0]
|
||||||
|
stream_type = mainStream
|
||||||
|
id = 1
|
||||||
|
enabled = 0
|
||||||
|
name = test
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 0
|
||||||
|
height = 0
|
||||||
|
quality_level = 3
|
||||||
|
|
||||||
|
[roi.1]
|
||||||
|
stream_type = mainStream
|
||||||
|
id = 2
|
||||||
|
enabled = 0
|
||||||
|
name = test
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 0
|
||||||
|
height = 0
|
||||||
|
quality_level = 3
|
||||||
|
|
||||||
|
[roi.2]
|
||||||
|
stream_type = subStream
|
||||||
|
id = 1
|
||||||
|
enabled = 0
|
||||||
|
name = test
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 0
|
||||||
|
height = 0
|
||||||
|
quality_level = 3
|
||||||
|
|
||||||
|
[roi.3]
|
||||||
|
stream_type = subStream
|
||||||
|
id = 2
|
||||||
|
enabled = 0
|
||||||
|
name = test
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 0
|
||||||
|
height = 0
|
||||||
|
quality_level = 3
|
||||||
|
|
||||||
|
[roi.4]
|
||||||
|
stream_type = thirdStream
|
||||||
|
id = 1
|
||||||
|
enabled = 0
|
||||||
|
name = test
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 0
|
||||||
|
height = 0
|
||||||
|
quality_level = 3
|
||||||
|
|
||||||
|
[roi.5]
|
||||||
|
stream_type = thirdStream
|
||||||
|
id = 2
|
||||||
|
enabled = 0
|
||||||
|
name = test
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 0
|
||||||
|
height = 0
|
||||||
|
quality_level = 3
|
||||||
|
|
||||||
|
[region_clip.1]
|
||||||
|
enabled = 0
|
||||||
|
position_x = 0
|
||||||
|
position_y = 0
|
||||||
|
width = 640
|
||||||
|
height = 480
|
||||||
|
|
||||||
|
[network.ntp]
|
||||||
|
enable = 1
|
||||||
|
refresh_time_s = 60
|
||||||
|
ntp_server = 119.28.183.184
|
||||||
@@ -158,7 +158,8 @@ function choose_target_board() {
|
|||||||
"RV1106_Luckfox_Pico_Pi"
|
"RV1106_Luckfox_Pico_Pi"
|
||||||
"RV1106_Luckfox_Pico_Pi_W"
|
"RV1106_Luckfox_Pico_Pi_W"
|
||||||
"RV1106_Luckfox_Pico_86Panel"
|
"RV1106_Luckfox_Pico_86Panel"
|
||||||
"RV1106_Luckfox_Pico_86Panel_W")
|
"RV1106_Luckfox_Pico_86Panel_W"
|
||||||
|
"RV1106_Luckfox_Pico_Zero")
|
||||||
local LF_BOOT_MEDIA=("SD_CARD" "SPI_NAND" "EMMC")
|
local LF_BOOT_MEDIA=("SD_CARD" "SPI_NAND" "EMMC")
|
||||||
local LF_SYSTEM=("Buildroot" "Custom")
|
local LF_SYSTEM=("Buildroot" "Custom")
|
||||||
local cnt=0 space8=" "
|
local cnt=0 space8=" "
|
||||||
@@ -192,6 +193,8 @@ function choose_target_board() {
|
|||||||
LUNCH_NUM=$((LUNCH_NUM + 1))
|
LUNCH_NUM=$((LUNCH_NUM + 1))
|
||||||
echo "${space8}${space8}[${LUNCH_NUM}] RV1106_Luckfox_Pico_86Panel_W"
|
echo "${space8}${space8}[${LUNCH_NUM}] RV1106_Luckfox_Pico_86Panel_W"
|
||||||
LUNCH_NUM=$((LUNCH_NUM + 1))
|
LUNCH_NUM=$((LUNCH_NUM + 1))
|
||||||
|
echo "${space8}${space8}[${LUNCH_NUM}] RV1106_Luckfox_Pico_Zero"
|
||||||
|
LUNCH_NUM=$((LUNCH_NUM + 1))
|
||||||
echo "${space8}${space8}[${LUNCH_NUM}] custom"
|
echo "${space8}${space8}[${LUNCH_NUM}] custom"
|
||||||
|
|
||||||
read -p "Which would you like? [0~${LUNCH_NUM}][default:0]: " HW_INDEX
|
read -p "Which would you like? [0~${LUNCH_NUM}][default:0]: " HW_INDEX
|
||||||
@@ -276,7 +279,7 @@ function choose_target_board() {
|
|||||||
|
|
||||||
range_sd_card=(0)
|
range_sd_card=(0)
|
||||||
range_sd_card_spi_nand=(1 2 3 4)
|
range_sd_card_spi_nand=(1 2 3 4)
|
||||||
range_emmc=(5 6 7 8 9 10)
|
range_emmc=(5 6 7 8 9 10 11)
|
||||||
|
|
||||||
if __IS_IN_ARRAY "$HW_INDEX" "${range_sd_card[@]}"; then
|
if __IS_IN_ARRAY "$HW_INDEX" "${range_sd_card[@]}"; then
|
||||||
echo "${space8}${space8}[0] SD_CARD"
|
echo "${space8}${space8}[0] SD_CARD"
|
||||||
|
|||||||
@@ -0,0 +1,129 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#################################################
|
||||||
|
# Board Config
|
||||||
|
#################################################
|
||||||
|
export LF_ORIGIN_BOARD_CONFIG=BoardConfig-EMMC-Buildroot-RV1106_Luckfox_Pico_Zero-IPC.mk
|
||||||
|
# Target CHIP
|
||||||
|
export RK_CHIP=rv1106
|
||||||
|
|
||||||
|
# app config
|
||||||
|
export RK_APP_TYPE=RKIPC_RV1106
|
||||||
|
|
||||||
|
# Config CMA size in environment
|
||||||
|
export RK_BOOTARGS_CMA_SIZE="100M"
|
||||||
|
|
||||||
|
# Kernel dts
|
||||||
|
export RK_KERNEL_DTS=rv1106g-luckfox-pico-zero.dts
|
||||||
|
|
||||||
|
#################################################
|
||||||
|
# BOOT_MEDIUM
|
||||||
|
#################################################
|
||||||
|
|
||||||
|
# Target boot medium
|
||||||
|
export RK_BOOT_MEDIUM=emmc
|
||||||
|
|
||||||
|
# Uboot defconfig fragment
|
||||||
|
export RK_UBOOT_DEFCONFIG_FRAGMENT="rk-emmc.config"
|
||||||
|
|
||||||
|
# specify post.sh for delete/overlay files
|
||||||
|
# export RK_PRE_BUILD_OEM_SCRIPT=rv1103-spi_nor-post.sh
|
||||||
|
|
||||||
|
# config partition in environment
|
||||||
|
# RK_PARTITION_CMD_IN_ENV format:
|
||||||
|
# <partdef>[,<partdef>]
|
||||||
|
# <partdef> := <size>[@<offset>](part-name)
|
||||||
|
# Note:
|
||||||
|
# If the first partition offset is not 0x0, it must be added. Otherwise, it needn't adding.
|
||||||
|
export RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),256K(uboot),32M(boot),512M(oem),256M(userdata),6G(rootfs)"
|
||||||
|
|
||||||
|
# config partition's filesystem type (squashfs is readonly)
|
||||||
|
# emmc: squashfs/ext4
|
||||||
|
# nand: squashfs/ubifs
|
||||||
|
# spi nor: squashfs/jffs2
|
||||||
|
# RK_PARTITION_FS_TYPE_CFG format:
|
||||||
|
# AAAA:/BBBB/CCCC@ext4
|
||||||
|
# AAAA ----------> partition name
|
||||||
|
# /BBBB/CCCC ----> partition mount point
|
||||||
|
# ext4 ----------> partition filesystem type
|
||||||
|
export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@ext4,userdata@/userdata@ext4,oem@/oem@ext4
|
||||||
|
|
||||||
|
# config filesystem compress (Just for squashfs or ubifs)
|
||||||
|
# squashfs: lz4/lzo/lzma/xz/gzip, default xz
|
||||||
|
# ubifs: lzo/zlib, default lzo
|
||||||
|
# export RK_SQUASHFS_COMP=xz
|
||||||
|
# export RK_UBIFS_COMP=lzo
|
||||||
|
|
||||||
|
#################################################
|
||||||
|
# TARGET_ROOTFS
|
||||||
|
#################################################
|
||||||
|
|
||||||
|
# Target rootfs
|
||||||
|
export LF_TARGET_ROOTFS=buildroot
|
||||||
|
|
||||||
|
# Buildroot defconfig
|
||||||
|
export RK_BUILDROOT_DEFCONFIG=luckfox_pico_w_defconfig
|
||||||
|
|
||||||
|
#################################################
|
||||||
|
# Defconfig
|
||||||
|
#################################################
|
||||||
|
|
||||||
|
# Target arch
|
||||||
|
export RK_ARCH=arm
|
||||||
|
|
||||||
|
# Target Toolchain Cross Compile
|
||||||
|
export RK_TOOLCHAIN_CROSS=arm-rockchip830-linux-uclibcgnueabihf
|
||||||
|
|
||||||
|
#misc image
|
||||||
|
export RK_MISC=wipe_all-misc.img
|
||||||
|
|
||||||
|
# Uboot defconfig
|
||||||
|
export RK_UBOOT_DEFCONFIG=luckfox_rv1106_uboot_defconfig
|
||||||
|
|
||||||
|
# Kernel defconfig
|
||||||
|
export RK_KERNEL_DEFCONFIG=luckfox_rv1106_linux_defconfig
|
||||||
|
|
||||||
|
# Kernel defconfig fragment
|
||||||
|
export RK_KERNEL_DEFCONFIG_FRAGMENT=rv1106-bt.config
|
||||||
|
|
||||||
|
# Config sensor IQ files
|
||||||
|
# RK_CAMERA_SENSOR_IQFILES format:
|
||||||
|
# "iqfile1 iqfile2 iqfile3 ..."
|
||||||
|
# ./build.sh media and copy <SDK root dir>/output/out/media_out/isp_iqfiles/$RK_CAMERA_SENSOR_IQFILES
|
||||||
|
#export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.json sc3336_CMK-OT2119-PC1_30IRC-F16.json mis5001_CMK-OT2115-PC1_30IRC-F16.json"
|
||||||
|
#export RK_CAMERA_SENSOR_IQFILES="sc4336_OT01_40IRC_F16.json sc3336_CMK-OT2119-PC1_30IRC-F16.json sc530ai_CMK-OT2115-PC1_30IRC-F16.json"
|
||||||
|
export RK_CAMERA_SENSOR_IQFILES="mia1321_MIA1321_30IRC-F16.json imx415_CMK-OT2022-PX1_IR0147-36IRC-8M-F20.json"
|
||||||
|
|
||||||
|
# Config sensor lens CAC calibrattion bin files
|
||||||
|
#export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16"
|
||||||
|
#export RK_CAMERA_SENSOR_CAC_BIN="CAC_sc4336_OT01_40IRC_F16 CAC_sc530ai_CMK-OT2115-PC1_30IRC-F16"
|
||||||
|
|
||||||
|
# build ipc web backend
|
||||||
|
#export RK_APP_IPCWEB_BACKEND=y
|
||||||
|
|
||||||
|
# enable install app to oem partition
|
||||||
|
export RK_BUILD_APP_TO_OEM_PARTITION=y
|
||||||
|
|
||||||
|
# enable rockchip test
|
||||||
|
export RK_ENABLE_ROCKCHIP_TEST=y
|
||||||
|
|
||||||
|
# enable rockchip wifi
|
||||||
|
export RK_ENABLE_WIFI=y
|
||||||
|
export RK_ENABLE_WIFI_CHIP=AIC8800DC
|
||||||
|
|
||||||
|
# config wifi ssid and passwd
|
||||||
|
export LF_WIFI_SSID="Your wifi ssid"
|
||||||
|
export LF_WIFI_PSK="Your wifi password"
|
||||||
|
|
||||||
|
#################################################
|
||||||
|
# PRE and POST
|
||||||
|
#################################################
|
||||||
|
|
||||||
|
# specify pre.sh for delete/overlay files
|
||||||
|
export RK_PRE_BUILD_OEM_SCRIPT=luckfox-buildroot-oem-pre.sh
|
||||||
|
|
||||||
|
# specify post.sh for delete/overlay files
|
||||||
|
export RK_PRE_BUILD_USERDATA_SCRIPT=luckfox-userdata-pre.sh
|
||||||
|
|
||||||
|
# declare overlay directory
|
||||||
|
export RK_POST_OVERLAY="overlay-luckfox-config overlay-luckfox-buildroot-init overlay-luckfox-buildroot-shadow"
|
||||||
@@ -201,6 +201,34 @@ function luckfox_pico_pi_pin_diagram_file() {
|
|||||||
EOF
|
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 --------------------------
|
# ------------------------ Initialize --------------------------
|
||||||
################################################################
|
################################################################
|
||||||
@@ -252,6 +280,8 @@ function luckfox_config_init() {
|
|||||||
luckfox_pico_ultra_pin_diagram_file
|
luckfox_pico_ultra_pin_diagram_file
|
||||||
elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi W" ]; then
|
elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi W" ]; then
|
||||||
luckfox_pico_pi_pin_diagram_file
|
luckfox_pico_pi_pin_diagram_file
|
||||||
|
elif [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Zero" ]; then
|
||||||
|
luckfox_pico_zero_pin_diagram_file
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -2022,6 +2052,7 @@ function luckfox_usb_app() {
|
|||||||
function luckfox_csi_app() {
|
function luckfox_csi_app() {
|
||||||
#region
|
#region
|
||||||
local action="$1"
|
local action="$1"
|
||||||
|
local unite="$2"
|
||||||
# update fdt
|
# update fdt
|
||||||
luckfox_update_fdt
|
luckfox_update_fdt
|
||||||
|
|
||||||
@@ -2035,6 +2066,12 @@ function luckfox_csi_app() {
|
|||||||
local csi_action=disbaled
|
local csi_action=disbaled
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$unite" == 1 ]; then
|
||||||
|
local unite_state=1
|
||||||
|
else
|
||||||
|
local unite_state=0
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$action" == 1 ]; then
|
if [ "$action" == 1 ]; then
|
||||||
local i2c_content="
|
local i2c_content="
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
@@ -2043,6 +2080,10 @@ function luckfox_csi_app() {
|
|||||||
status=\"$csi_action\";
|
status=\"$csi_action\";
|
||||||
pinctrl-0 = <$i2c_pinctrl_addr>;
|
pinctrl-0 = <$i2c_pinctrl_addr>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&{/rkisp@ffa00000}{
|
||||||
|
rockchip,unite = <$unite_state>;
|
||||||
|
};
|
||||||
"
|
"
|
||||||
else
|
else
|
||||||
local i2c_content="
|
local i2c_content="
|
||||||
@@ -2060,6 +2101,8 @@ function luckfox_csi_app() {
|
|||||||
# update cfg
|
# update cfg
|
||||||
luckfox_set_pin_cfg "CSI_ENABLE" "$action"
|
luckfox_set_pin_cfg "CSI_ENABLE" "$action"
|
||||||
luckfox_set_pin_parameter "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_SCL" 0
|
||||||
luckfox_set_pin_mark "I2C4_M0_SDA" 0
|
luckfox_set_pin_mark "I2C4_M0_SDA" 0
|
||||||
@@ -2877,7 +2920,8 @@ function luckfox_show_menu() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
# Only support Luckfox Pico Ultra /Luckfox Pico Ultra W
|
# 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
|
while true; do
|
||||||
option=$(dialog --title "$LUCKFOX_CHIP_MODEL Config" \
|
option=$(dialog --title "$LUCKFOX_CHIP_MODEL Config" \
|
||||||
--menu "Choose an option" 80 50 6 \
|
--menu "Choose an option" 80 50 6 \
|
||||||
@@ -2893,6 +2937,25 @@ function luckfox_show_menu() {
|
|||||||
*) luckfox_exit ;;
|
*) luckfox_exit ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
else
|
||||||
|
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_backup ;;
|
||||||
|
4) luckfox_about ;;
|
||||||
|
*) luckfox_exit ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
else
|
else
|
||||||
while true; do
|
while true; do
|
||||||
option=$(dialog --title "$LUCKFOX_CHIP_MODEL Config" \
|
option=$(dialog --title "$LUCKFOX_CHIP_MODEL Config" \
|
||||||
@@ -2910,6 +2973,7 @@ function luckfox_show_menu() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function luckfox_compatible_devices() {
|
function luckfox_compatible_devices() {
|
||||||
@@ -3028,11 +3092,12 @@ function luckfox_advanced_options() {
|
|||||||
function luckfox_backup() {
|
function luckfox_backup() {
|
||||||
option=$(dialog --title "Advanced Options" \
|
option=$(dialog --title "Advanced Options" \
|
||||||
--menu "Choose an option" 80 50 6 \
|
--menu "Choose an option" 80 50 6 \
|
||||||
1 "rootfs" \
|
0 "rootfs" \
|
||||||
2>&1 >/dev/tty)
|
2>&1 >/dev/tty)
|
||||||
|
|
||||||
if [ $option == 1 ]; then
|
if [ "$option" == "0" ]; then
|
||||||
if [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi" ] || [ "$LUCKFOX_CHIP_MODEL" == "Luckfox Pico Pi W" ]; 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 \
|
media_class=$(dialog --menu "Select Backup Image Location" 80 50 6 \
|
||||||
0 "local" \
|
0 "local" \
|
||||||
1 "usb_disk" \
|
1 "usb_disk" \
|
||||||
@@ -3043,6 +3108,13 @@ function luckfox_backup() {
|
|||||||
0 "local" \
|
0 "local" \
|
||||||
1 "usb_disk" \
|
1 "usb_disk" \
|
||||||
2>&1 >/dev/tty)
|
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
|
fi
|
||||||
luckfox_rootfs_BACKUP "$media_class"
|
luckfox_rootfs_BACKUP "$media_class"
|
||||||
else
|
else
|
||||||
@@ -3279,6 +3351,7 @@ function luckfox_USB() {
|
|||||||
|
|
||||||
function luckfox_CSI() {
|
function luckfox_CSI() {
|
||||||
local csi_enable
|
local csi_enable
|
||||||
|
local unite_enable
|
||||||
csi_enable=$(dialog --menu "CSI Enable Config" 10 40 2 \
|
csi_enable=$(dialog --menu "CSI Enable Config" 10 40 2 \
|
||||||
0 "disable" \
|
0 "disable" \
|
||||||
1 "enable" \
|
1 "enable" \
|
||||||
@@ -3286,7 +3359,18 @@ function luckfox_CSI() {
|
|||||||
if [ -z "$csi_enable" ]; then
|
if [ -z "$csi_enable" ]; then
|
||||||
luckfox_advanced_options
|
luckfox_advanced_options
|
||||||
fi
|
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
|
dialog --msgbox "CSI Effective after restart" 10 30
|
||||||
echo "Set CSI enable status : $csi_enable." >>"$LUCKFOX_CHANGE_TXT"
|
echo "Set CSI enable status : $csi_enable." >>"$LUCKFOX_CHANGE_TXT"
|
||||||
luckfox_advanced_options
|
luckfox_advanced_options
|
||||||
@@ -3492,8 +3576,16 @@ function luckfox_4G() {
|
|||||||
1 "CTCC(ctnet)" \
|
1 "CTCC(ctnet)" \
|
||||||
2 "CMCC(cmnet)" \
|
2 "CMCC(cmnet)" \
|
||||||
3 "CUCC(3gwap)" \
|
3 "CUCC(3gwap)" \
|
||||||
|
4 "custom" \
|
||||||
2>&1 >/dev/tty)
|
2>&1 >/dev/tty)
|
||||||
|
|
||||||
|
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
|
case $card_type in
|
||||||
1) apn="ctnet" ;;
|
1) apn="ctnet" ;;
|
||||||
2) apn="cmnet" ;;
|
2) apn="cmnet" ;;
|
||||||
@@ -3501,6 +3593,7 @@ function luckfox_4G() {
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
luckfox_4g_app "$module_4g_enable" "$mode" "$apn"
|
luckfox_4g_app "$module_4g_enable" "$mode" "$apn"
|
||||||
}
|
}
|
||||||
@@ -3520,7 +3613,11 @@ function luckfox_rootfs_BACKUP() {
|
|||||||
luckfox_result_handle "$LF_ERR" "The rsync is not installed"
|
luckfox_result_handle "$LF_ERR" "The rsync is not installed"
|
||||||
fi
|
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
|
if ! mount | grep "/mnt/udisk"; then
|
||||||
luckfox_result_handle "$LF_ERR" "USB disk is not mounted"
|
luckfox_result_handle "$LF_ERR" "USB disk is not mounted"
|
||||||
fi
|
fi
|
||||||
@@ -3535,9 +3632,7 @@ function luckfox_rootfs_BACKUP() {
|
|||||||
IMAGE_NAME="/mnt/sdcard/backup_rootfs.img"
|
IMAGE_NAME="/mnt/sdcard/backup_rootfs.img"
|
||||||
MOUNT_POINT="/mnt/sdcard/backup_img"
|
MOUNT_POINT="/mnt/sdcard/backup_img"
|
||||||
else
|
else
|
||||||
AVAILABLE_SPACE=$(df -k /mnt | tail -1 | awk '{print $4}')
|
luckfox_show_menu
|
||||||
IMAGE_NAME="/mnt/backup_rootfs.img"
|
|
||||||
MOUNT_POINT="/mnt/backup_img"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
used_kb=$(df -k / | tail -1 | awk '{print $3}')
|
used_kb=$(df -k / | tail -1 | awk '{print $3}')
|
||||||
@@ -3560,7 +3655,10 @@ function luckfox_rootfs_BACKUP() {
|
|||||||
if mountpoint -q "$MOUNT_POINT"; then
|
if mountpoint -q "$MOUNT_POINT"; then
|
||||||
umount "$MOUNT_POINT"
|
umount "$MOUNT_POINT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -d "$MOUNT_POINT" ]; then
|
||||||
rm -rf "$MOUNT_POINT"
|
rm -rf "$MOUNT_POINT"
|
||||||
|
fi
|
||||||
mkdir -p "$MOUNT_POINT"
|
mkdir -p "$MOUNT_POINT"
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -3590,9 +3688,9 @@ function luckfox_rootfs_BACKUP() {
|
|||||||
echo 80
|
echo 80
|
||||||
echo "Copying rootfs with rsync..."
|
echo "Copying rootfs with rsync..."
|
||||||
echo "XXX"
|
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 "XXX"
|
||||||
echo 100
|
echo 100
|
||||||
@@ -3603,7 +3701,6 @@ function luckfox_rootfs_BACKUP() {
|
|||||||
|
|
||||||
dialog --title "Backup Succeeded" --msgbox "The image is saved at $IMAGE_NAME" 10 60
|
dialog --title "Backup Succeeded" --msgbox "The image is saved at $IMAGE_NAME" 10 60
|
||||||
luckfox_show_menu
|
luckfox_show_menu
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
@@ -3653,7 +3750,6 @@ elif [ "$1" == "rgb_switch" ]; then
|
|||||||
echo "****************************************************"
|
echo "****************************************************"
|
||||||
echo "***Switch the RGB screen resolution to 720 x 720.***"
|
echo "***Switch the RGB screen resolution to 720 x 720.***"
|
||||||
echo "****************************************************"
|
echo "****************************************************"
|
||||||
luckfox_csi_app 1
|
|
||||||
luckfox_rgb_app 1 "reset" "30000000" \
|
luckfox_rgb_app 1 "reset" "30000000" \
|
||||||
"720" "720" \
|
"720" "720" \
|
||||||
"44" "46" \
|
"44" "46" \
|
||||||
@@ -3666,7 +3762,6 @@ elif [ "$1" == "rgb_switch" ]; then
|
|||||||
echo "****************************************************"
|
echo "****************************************************"
|
||||||
echo "***Switch the RGB screen resolution to 480 x 480.***"
|
echo "***Switch the RGB screen resolution to 480 x 480.***"
|
||||||
echo "****************************************************"
|
echo "****************************************************"
|
||||||
luckfox_csi_app 1
|
|
||||||
luckfox_rgb_app 1 "reset" "16500000" \
|
luckfox_rgb_app 1 "reset" "16500000" \
|
||||||
"480" "480" \
|
"480" "480" \
|
||||||
"10" "50" \
|
"10" "50" \
|
||||||
@@ -3678,7 +3773,6 @@ elif [ "$1" == "rgb_switch" ]; then
|
|||||||
echo "****************************************************"
|
echo "****************************************************"
|
||||||
echo "***Switch the RGB screen resolution to 480 x 480.***"
|
echo "***Switch the RGB screen resolution to 480 x 480.***"
|
||||||
echo "****************************************************"
|
echo "****************************************************"
|
||||||
luckfox_csi_app 1
|
|
||||||
luckfox_rgb_app 1 "reset" "16500000" \
|
luckfox_rgb_app 1 "reset" "16500000" \
|
||||||
"480" "480" \
|
"480" "480" \
|
||||||
"10" "50" \
|
"10" "50" \
|
||||||
@@ -3690,6 +3784,33 @@ elif [ "$1" == "rgb_switch" ]; then
|
|||||||
else
|
else
|
||||||
luckfox_result_handle "$RK_ERR" "This Luckchip Pico Model does not support RGB switch."
|
luckfox_result_handle "$RK_ERR" "This Luckchip Pico Model does not support RGB switch."
|
||||||
fi
|
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
|
elif [ -z "$1" ]; then
|
||||||
LF_GUI_ENABLE=1
|
LF_GUI_ENABLE=1
|
||||||
luckfox_config_init
|
luckfox_config_init
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ __insmod()
|
|||||||
|
|
||||||
__rmmod_camera_sensor()
|
__rmmod_camera_sensor()
|
||||||
{
|
{
|
||||||
for item in `echo "imx415 os04a10 sc4336 sc3336 sc530ai gc2053 sc200ai sc401ai sc450ai techpoint mis5001"`
|
for item in `echo "imx415 os04a10 sc4336 sc3336 sc530ai gc2053 sc200ai sc401ai sc450ai techpoint mis5001 mia1321"`
|
||||||
do
|
do
|
||||||
if lsmod | grep $item | awk '{print $3}' |grep -w 0;then
|
if lsmod | grep $item | awk '{print $3}' |grep -w 0;then
|
||||||
rmmod $item
|
rmmod $item
|
||||||
@@ -57,6 +57,7 @@ __insmod sc401ai.ko
|
|||||||
__insmod sc450ai.ko
|
__insmod sc450ai.ko
|
||||||
__insmod techpoint.ko
|
__insmod techpoint.ko
|
||||||
__insmod mis5001.ko
|
__insmod mis5001.ko
|
||||||
|
__insmod mia1321.ko
|
||||||
|
|
||||||
__insmod video_rkcif.ko
|
__insmod video_rkcif.ko
|
||||||
__insmod video_rkisp.ko
|
__insmod video_rkisp.ko
|
||||||
|
|||||||
@@ -107,7 +107,8 @@ if [ $? -eq 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#aic8800
|
#aic8800
|
||||||
if [ -n "$(cat /proc/device-tree/model | grep "W")" ]; then
|
if [ -n "$(cat /proc/device-tree/model | grep "W")" ] || \
|
||||||
|
[ -n "$(cat /sys/bus/sdio/devices/*/uevent | grep "C8A1\:C18D")" ]; then
|
||||||
insmod cfg80211.ko
|
insmod cfg80211.ko
|
||||||
insmod libarc4.ko
|
insmod libarc4.ko
|
||||||
insmod ctr.ko
|
insmod ctr.ko
|
||||||
|
|||||||
445
sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-zero-ipc.dtsi
Executable file
445
sysdrv/source/kernel/arch/arm/boot/dts/rv1106-luckfox-pico-zero-ipc.dtsi
Executable file
@@ -0,0 +1,445 @@
|
|||||||
|
|
||||||
|
// 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";
|
||||||
|
};
|
||||||
|
|
||||||
|
reserved_memory: reserved-memory {
|
||||||
|
status = "okay";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
out_osc_mia1321: out-osc-mia1321 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
clock-output-names = "out-osc-mia1321";
|
||||||
|
clock-frequency = <26000000>;
|
||||||
|
#clock-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
out_osc_imx415: out-osc-imx415 {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
clock-output-names = "out-osc-imx415";
|
||||||
|
clock-frequency = <37125000>;
|
||||||
|
#clock-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cam_ircut0: cam_ircut {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "rockchip,ircut";
|
||||||
|
rockchip,camera-module-index = <0>;
|
||||||
|
rockchip,camera-module-facing = "back";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/***************************** audio ********************************/
|
||||||
|
&i2s0_8ch {
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&acodec {
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
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>;
|
||||||
|
|
||||||
|
//mia1321
|
||||||
|
csi_dphy_input0: endpoint@0 {
|
||||||
|
reg = <0>;
|
||||||
|
remote-endpoint = <&mia1321_out>;
|
||||||
|
data-lanes = <1 2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
//imx415
|
||||||
|
csi_dphy_input1: endpoint@1 {
|
||||||
|
reg = <1>;
|
||||||
|
remote-endpoint = <&imx415_out>;
|
||||||
|
data-lanes = <1 2 3 4>;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
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";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c4m2_xfer>;
|
||||||
|
|
||||||
|
mia1321: mia1321@60 {
|
||||||
|
compatible = "imagedesign,mia1321";
|
||||||
|
reg = <0x60>;
|
||||||
|
clocks = <&out_osc_mia1321>;
|
||||||
|
clock-names = "xvclk";
|
||||||
|
reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&cam_io_1>;
|
||||||
|
rockchip,camera-module-index = <0>;
|
||||||
|
rockchip,camera-module-facing = "back";
|
||||||
|
rockchip,camera-module-name = "MIA1321";
|
||||||
|
rockchip,camera-module-lens-name = "30IRC-F16";
|
||||||
|
port {
|
||||||
|
mia1321_out: endpoint {
|
||||||
|
remote-endpoint = <&csi_dphy_input0>;
|
||||||
|
data-lanes = <1 2 3 4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imx415: imx415@37 {
|
||||||
|
compatible = "sony,imx415";
|
||||||
|
status = "okay";
|
||||||
|
reg = <0x37>;
|
||||||
|
clocks = <&out_osc_imx415>;
|
||||||
|
clock-names = "xvclk";
|
||||||
|
reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_LOW>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&cam_io_1>;
|
||||||
|
rockchip,camera-module-index = <0>;
|
||||||
|
rockchip,camera-module-facing = "back";
|
||||||
|
rockchip,camera-module-name = "CMK-OT2022-PX1";
|
||||||
|
rockchip,camera-module-lens-name = "IR0147-36IRC-8M-F20";
|
||||||
|
lens-focus = <&cam_ircut0>;
|
||||||
|
port {
|
||||||
|
imx415_out: endpoint {
|
||||||
|
remote-endpoint = <&csi_dphy_input1>;
|
||||||
|
data-lanes = <1 2 3 4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&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";
|
||||||
|
};
|
||||||
|
|
||||||
|
/**************************** 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>;
|
||||||
|
};
|
||||||
|
&i2c4 {
|
||||||
|
pinctrl-names = "default", "config";
|
||||||
|
pinctrl-0 = <&i2c4m2_xfer>;
|
||||||
|
pinctrl-1 = <&i2c4m0_xfer &i2c4m1_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 &uart4m1_xfer>;
|
||||||
|
};
|
||||||
|
&uart5 {
|
||||||
|
pinctrl-0 = <&uart5m1_xfer>;
|
||||||
|
};
|
||||||
|
|
||||||
|
// PWM
|
||||||
|
&pwm0 {
|
||||||
|
pinctrl-0 = <&pwm0m1_pins>;
|
||||||
|
};
|
||||||
|
&pwm1 {
|
||||||
|
pinctrl-0 = <&pwm1m0_pins &pwm1m1_pins &pwm1m2_pins>;
|
||||||
|
};
|
||||||
|
&pwm2 {
|
||||||
|
pinctrl-0 = <&pwm2m0_pins &pwm2m1_pins &pwm2m2_pins>;
|
||||||
|
};
|
||||||
|
&pwm3 {
|
||||||
|
pinctrl-0 = <&pwm3m1_pins &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 {
|
||||||
|
cam {
|
||||||
|
cam_io_0: cam-io-0 {
|
||||||
|
rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cam_io_1: cam-io-1 {
|
||||||
|
rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
161
sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-zero.dts
Executable file
161
sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-zero.dts
Executable file
@@ -0,0 +1,161 @@
|
|||||||
|
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 Rockchip Electronics Co., Ltd.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "rv1106.dtsi"
|
||||||
|
#include "rv1106-luckfox-pico-zero-ipc.dtsi"
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/display/media-bus-format.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Luckfox Pico Zero";
|
||||||
|
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_up>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********SD_CARD**********/
|
||||||
|
&sdio {
|
||||||
|
max-frequency = <50000000>;
|
||||||
|
no-sdio;
|
||||||
|
no-mmc;
|
||||||
|
supports-sd;
|
||||||
|
bus-width = <4>;
|
||||||
|
cap-mmc-highspeed;
|
||||||
|
cap-sd-highspeed;
|
||||||
|
disable-wp;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&sdmmc1m0_cmd &sdmmc1m0_clk &sdmmc1m0_bus4>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********ETH**********/
|
||||||
|
&gmac {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********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>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -196,7 +196,9 @@ CONFIG_V4L_PLATFORM_DRIVERS=y
|
|||||||
CONFIG_VIDEO_ROCKCHIP_CIF=m
|
CONFIG_VIDEO_ROCKCHIP_CIF=m
|
||||||
CONFIG_VIDEO_ROCKCHIP_ISP=m
|
CONFIG_VIDEO_ROCKCHIP_ISP=m
|
||||||
CONFIG_VIDEO_RK_IRCUT=y
|
CONFIG_VIDEO_RK_IRCUT=y
|
||||||
|
CONFIG_VIDEO_IMX415=m
|
||||||
CONFIG_VIDEO_MIS5001=m
|
CONFIG_VIDEO_MIS5001=m
|
||||||
|
CONFIG_VIDEO_MIA1321=m
|
||||||
CONFIG_VIDEO_SC3336=m
|
CONFIG_VIDEO_SC3336=m
|
||||||
CONFIG_DRM=y
|
CONFIG_DRM=y
|
||||||
CONFIG_DRM_EDID=y
|
CONFIG_DRM_EDID=y
|
||||||
|
|||||||
@@ -1864,6 +1864,17 @@ config VIDEO_MIS5001
|
|||||||
This is a Video4Linux2 sensor driver for the ImageDesign
|
This is a Video4Linux2 sensor driver for the ImageDesign
|
||||||
MIS5001 camera.
|
MIS5001 camera.
|
||||||
|
|
||||||
|
config VIDEO_MIA1321
|
||||||
|
tristate "ImageDesign mia1321 sensor support"
|
||||||
|
depends on I2C && VIDEO_V4L2
|
||||||
|
depends on I2C && VIDEO_V4L2
|
||||||
|
select MEDIA_CONTROLLER
|
||||||
|
select VIDEO_V4L2_SUBDEV_API
|
||||||
|
select V4L2_FWNODE
|
||||||
|
help
|
||||||
|
This is a Video4Linux2 sensor driver for the ImageDesign
|
||||||
|
MIA1321 camera.
|
||||||
|
|
||||||
config VIDEO_MT9M001
|
config VIDEO_MT9M001
|
||||||
tristate "mt9m001 support"
|
tristate "mt9m001 support"
|
||||||
depends on I2C && VIDEO_V4L2
|
depends on I2C && VIDEO_V4L2
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ obj-$(CONFIG_VIDEO_OV13858) += ov13858.o
|
|||||||
obj-$(CONFIG_VIDEO_MIS2031) += mis2031.o
|
obj-$(CONFIG_VIDEO_MIS2031) += mis2031.o
|
||||||
obj-$(CONFIG_VIDEO_MIS4001) += mis4001.o
|
obj-$(CONFIG_VIDEO_MIS4001) += mis4001.o
|
||||||
obj-$(CONFIG_VIDEO_MIS5001) += mis5001.o
|
obj-$(CONFIG_VIDEO_MIS5001) += mis5001.o
|
||||||
|
obj-$(CONFIG_VIDEO_MIA1321) += mia1321.o
|
||||||
obj-$(CONFIG_VIDEO_MT9M001) += mt9m001.o
|
obj-$(CONFIG_VIDEO_MT9M001) += mt9m001.o
|
||||||
obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o
|
obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o
|
||||||
obj-$(CONFIG_VIDEO_MT9M111) += mt9m111.o
|
obj-$(CONFIG_VIDEO_MT9M111) += mt9m111.o
|
||||||
|
|||||||
@@ -76,6 +76,7 @@
|
|||||||
|
|
||||||
#define IMX415_XVCLK_FREQ_37M 37125000
|
#define IMX415_XVCLK_FREQ_37M 37125000
|
||||||
#define IMX415_XVCLK_FREQ_27M 27000000
|
#define IMX415_XVCLK_FREQ_27M 27000000
|
||||||
|
#define IMX415_XVCLK_FREQ_24M 24000000
|
||||||
|
|
||||||
/* TODO: Get the real chip id from reg */
|
/* TODO: Get the real chip id from reg */
|
||||||
#define CHIP_ID 0xE0
|
#define CHIP_ID 0xE0
|
||||||
@@ -680,6 +681,41 @@ static __maybe_unused const struct regval imx415_linear_10bit_3864x2192_891M_reg
|
|||||||
{REG_NULL, 0x00},
|
{REG_NULL, 0x00},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static __maybe_unused const struct regval imx415_linear_10bit_3864x2192_594M_regs[] = {
|
||||||
|
{0x3020, 0x00},
|
||||||
|
{0x3021, 0x00},
|
||||||
|
{0x3022, 0x00},
|
||||||
|
{0x3024, 0xCA},
|
||||||
|
{0x3025, 0x08},
|
||||||
|
{0x3028, 0x72},
|
||||||
|
{0x3029, 0x06},
|
||||||
|
{0x302C, 0x00},
|
||||||
|
{0x302D, 0x00},
|
||||||
|
{0x3033, 0x07},
|
||||||
|
{0x3050, 0x08},
|
||||||
|
{0x3051, 0x00},
|
||||||
|
{0x3054, 0x19},
|
||||||
|
{0x3058, 0x3E},
|
||||||
|
{0x3060, 0x25},
|
||||||
|
{0x3064, 0x4a},
|
||||||
|
{0x30CF, 0x00},
|
||||||
|
{0x3118, 0xC0},
|
||||||
|
{0x3260, 0x01},
|
||||||
|
{0x400C, 0x00},
|
||||||
|
{0x4018, 0x67},
|
||||||
|
{0x401A, 0x27},
|
||||||
|
{0x401C, 0x27},
|
||||||
|
{0x401E, 0xB7},
|
||||||
|
{0x401F, 0x00},
|
||||||
|
{0x4020, 0x2F},
|
||||||
|
{0x4022, 0xB7},
|
||||||
|
{0x4024, 0x2F},
|
||||||
|
{0x4026, 0x47},
|
||||||
|
{0x4028, 0x27},
|
||||||
|
{0x4074, 0x01},
|
||||||
|
{REG_NULL, 0x00},
|
||||||
|
};
|
||||||
|
|
||||||
static __maybe_unused const struct regval imx415_linear_12bit_1932x1096_594M_regs[] = {
|
static __maybe_unused const struct regval imx415_linear_12bit_1932x1096_594M_regs[] = {
|
||||||
{0x3020, 0x01},
|
{0x3020, 0x01},
|
||||||
{0x3021, 0x01},
|
{0x3021, 0x01},
|
||||||
@@ -758,6 +794,152 @@ static __maybe_unused const struct regval imx415_hdr2_12bit_1932x1096_891M_regs[
|
|||||||
{REG_NULL, 0x00},
|
{REG_NULL, 0x00},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Xclk 37Mhz
|
||||||
|
* 15fps
|
||||||
|
* CSI-2_2lane
|
||||||
|
* AD:10bit Output:10bit
|
||||||
|
* 891Mbps
|
||||||
|
* Master Mode
|
||||||
|
* Time 9.988ms Gain:6dB
|
||||||
|
* All-pixel
|
||||||
|
*/
|
||||||
|
static __maybe_unused const struct regval imx415_linear_10bit_3864x2192_891M_regs_2lane[] = {
|
||||||
|
{0x3008, 0x5D},
|
||||||
|
{0x300A, 0x42},
|
||||||
|
{0x3028, 0x98},
|
||||||
|
{0x3029, 0x08},
|
||||||
|
{0x3031, 0x00},
|
||||||
|
{0x3033, 0x05},
|
||||||
|
{0x3050, 0x79},
|
||||||
|
{0x3051, 0x07},
|
||||||
|
{0x3090, 0x14},
|
||||||
|
{0x30C1, 0x00},
|
||||||
|
{0x3116, 0x23},
|
||||||
|
{0x3118, 0xC6},
|
||||||
|
{0x311A, 0xE7},
|
||||||
|
{0x311E, 0x23},
|
||||||
|
{0x32D4, 0x21},
|
||||||
|
{0x32EC, 0xA1},
|
||||||
|
{0x344C, 0x2B},
|
||||||
|
{0x344D, 0x01},
|
||||||
|
{0x344E, 0xED},
|
||||||
|
{0x344F, 0x01},
|
||||||
|
{0x3450, 0xF6},
|
||||||
|
{0x3451, 0x02},
|
||||||
|
{0x3452, 0x7F},
|
||||||
|
{0x3453, 0x03},
|
||||||
|
{0x358A, 0x04},
|
||||||
|
{0x35A1, 0x02},
|
||||||
|
{0x35EC, 0x27},
|
||||||
|
{0x35EE, 0x8D},
|
||||||
|
{0x35F0, 0x8D},
|
||||||
|
{0x35F2, 0x29},
|
||||||
|
{0x36BC, 0x0C},
|
||||||
|
{0x36CC, 0x53},
|
||||||
|
{0x36CD, 0x00},
|
||||||
|
{0x36CE, 0x3C},
|
||||||
|
{0x36D0, 0x8C},
|
||||||
|
{0x36D1, 0x00},
|
||||||
|
{0x36D2, 0x71},
|
||||||
|
{0x36D4, 0x3C},
|
||||||
|
{0x36D6, 0x53},
|
||||||
|
{0x36D7, 0x00},
|
||||||
|
{0x36D8, 0x71},
|
||||||
|
{0x36DA, 0x8C},
|
||||||
|
{0x36DB, 0x00},
|
||||||
|
{0x3720, 0x00},
|
||||||
|
{0x3724, 0x02},
|
||||||
|
{0x3726, 0x02},
|
||||||
|
{0x3732, 0x02},
|
||||||
|
{0x3734, 0x03},
|
||||||
|
{0x3736, 0x03},
|
||||||
|
{0x3742, 0x03},
|
||||||
|
{0x3862, 0xE0},
|
||||||
|
{0x38CC, 0x30},
|
||||||
|
{0x38CD, 0x2F},
|
||||||
|
{0x395C, 0x0C},
|
||||||
|
{0x39A4, 0x07},
|
||||||
|
{0x39A8, 0x32},
|
||||||
|
{0x39AA, 0x32},
|
||||||
|
{0x39AC, 0x32},
|
||||||
|
{0x39AE, 0x32},
|
||||||
|
{0x39B0, 0x32},
|
||||||
|
{0x39B2, 0x2F},
|
||||||
|
{0x39B4, 0x2D},
|
||||||
|
{0x39B6, 0x28},
|
||||||
|
{0x39B8, 0x30},
|
||||||
|
{0x39BA, 0x30},
|
||||||
|
{0x39BC, 0x30},
|
||||||
|
{0x39BE, 0x30},
|
||||||
|
{0x39C0, 0x30},
|
||||||
|
{0x39C2, 0x2E},
|
||||||
|
{0x39C4, 0x2B},
|
||||||
|
{0x39C6, 0x25},
|
||||||
|
{0x3A42, 0xD1},
|
||||||
|
{0x3A4C, 0x77},
|
||||||
|
{0x3AE0, 0x02},
|
||||||
|
{0x3AEC, 0x0C},
|
||||||
|
{0x3B00, 0x2E},
|
||||||
|
{0x3B06, 0x29},
|
||||||
|
{0x3B98, 0x25},
|
||||||
|
{0x3B99, 0x21},
|
||||||
|
{0x3B9B, 0x13},
|
||||||
|
{0x3B9C, 0x13},
|
||||||
|
{0x3B9D, 0x13},
|
||||||
|
{0x3B9E, 0x13},
|
||||||
|
{0x3BA1, 0x00},
|
||||||
|
{0x3BA2, 0x06},
|
||||||
|
{0x3BA3, 0x0B},
|
||||||
|
{0x3BA4, 0x10},
|
||||||
|
{0x3BA5, 0x14},
|
||||||
|
{0x3BA6, 0x18},
|
||||||
|
{0x3BA7, 0x1A},
|
||||||
|
{0x3BA8, 0x1A},
|
||||||
|
{0x3BA9, 0x1A},
|
||||||
|
{0x3BAC, 0xED},
|
||||||
|
{0x3BAD, 0x01},
|
||||||
|
{0x3BAE, 0xF6},
|
||||||
|
{0x3BAF, 0x02},
|
||||||
|
{0x3BB0, 0xA2},
|
||||||
|
{0x3BB1, 0x03},
|
||||||
|
{0x3BB2, 0xE0},
|
||||||
|
{0x3BB3, 0x03},
|
||||||
|
{0x3BB4, 0xE0},
|
||||||
|
{0x3BB5, 0x03},
|
||||||
|
{0x3BB6, 0xE0},
|
||||||
|
{0x3BB7, 0x03},
|
||||||
|
{0x3BB8, 0xE0},
|
||||||
|
{0x3BBA, 0xE0},
|
||||||
|
{0x3BBC, 0xDA},
|
||||||
|
{0x3BBE, 0x88},
|
||||||
|
{0x3BC0, 0x44},
|
||||||
|
{0x3BC2, 0x7B},
|
||||||
|
{0x3BC4, 0xA2},
|
||||||
|
{0x3BC8, 0xBD},
|
||||||
|
{0x3BCA, 0xBD},
|
||||||
|
{0x4001, 0x01},
|
||||||
|
{0x4004, 0xC0},
|
||||||
|
{0x4005, 0x06},
|
||||||
|
{0x400C, 0x00},
|
||||||
|
{0x4018, 0x7F},
|
||||||
|
{0x401A, 0x37},
|
||||||
|
{0x401C, 0x37},
|
||||||
|
{0x401E, 0xF7},
|
||||||
|
{0x401F, 0x00},
|
||||||
|
{0x4020, 0x3F},
|
||||||
|
{0x4022, 0x6F},
|
||||||
|
{0x4024, 0x3F},
|
||||||
|
{0x4026, 0x5F},
|
||||||
|
{0x4028, 0x2F},
|
||||||
|
{0x4074, 0x01},
|
||||||
|
{0x3002, 0x00},
|
||||||
|
//{0x3000, 0x00},
|
||||||
|
{REG_DELAY, 0x1E},//wait_ms(30)
|
||||||
|
{REG_NULL, 0x00},
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Xclk 27Mhz
|
* Xclk 27Mhz
|
||||||
* 15fps
|
* 15fps
|
||||||
@@ -1080,6 +1262,25 @@ static const struct imx415_mode supported_modes[] = {
|
|||||||
* frame rate = 1 / (Vtt * 1H) = 1 / (VMAX * 1H)
|
* frame rate = 1 / (Vtt * 1H) = 1 / (VMAX * 1H)
|
||||||
* VMAX >= (PIX_VWIDTH / 2) + 46 = height + 46
|
* VMAX >= (PIX_VWIDTH / 2) + 46 = height + 46
|
||||||
*/
|
*/
|
||||||
|
{
|
||||||
|
.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
|
||||||
|
.width = 3864,
|
||||||
|
.height = 2192,
|
||||||
|
.max_fps = {
|
||||||
|
.numerator = 10000,
|
||||||
|
.denominator = 200000,
|
||||||
|
},
|
||||||
|
.exp_def = 0x08ca - 0x08,
|
||||||
|
.hts_def = 0x044c * IMX415_4LANES * 2,
|
||||||
|
.vts_def = 0x08ca,
|
||||||
|
.global_reg_list = imx415_global_10bit_3864x2192_regs,
|
||||||
|
.reg_list = imx415_linear_10bit_3864x2192_594M_regs,
|
||||||
|
.hdr_mode = NO_HDR,
|
||||||
|
.mipi_freq_idx = 1,
|
||||||
|
.bpp = 10,
|
||||||
|
.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
|
||||||
|
.xvclk = IMX415_XVCLK_FREQ_37M,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
|
.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
|
||||||
.width = 3864,
|
.width = 3864,
|
||||||
@@ -1337,6 +1538,26 @@ static const struct imx415_mode supported_modes_2lane[] = {
|
|||||||
.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
|
.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
|
||||||
.xvclk = IMX415_XVCLK_FREQ_27M,
|
.xvclk = IMX415_XVCLK_FREQ_27M,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
/* 1H period = (1100 clock) = (1100 * 1 / 74.25MHz) */
|
||||||
|
.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
|
||||||
|
.width = 3864,
|
||||||
|
.height = 2192,
|
||||||
|
.max_fps = {
|
||||||
|
.numerator = 10000,
|
||||||
|
.denominator = 150000,
|
||||||
|
},
|
||||||
|
.exp_def = 0x08ca - 0x08,
|
||||||
|
.hts_def = 0x0898 * IMX415_2LANES * 2,
|
||||||
|
.vts_def = 0x08ca,
|
||||||
|
.global_reg_list = NULL,
|
||||||
|
.reg_list = imx415_linear_10bit_3864x2192_891M_regs_2lane,
|
||||||
|
.hdr_mode = NO_HDR,
|
||||||
|
.mipi_freq_idx = 1,
|
||||||
|
.bpp = 10,
|
||||||
|
.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
|
||||||
|
.xvclk = IMX415_XVCLK_FREQ_37M,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const s64 link_freq_items[] = {
|
static const s64 link_freq_items[] = {
|
||||||
|
|||||||
1844
sysdrv/source/kernel/drivers/media/i2c/mia1321.c
Executable file
1844
sysdrv/source/kernel/drivers/media/i2c/mia1321.c
Executable file
File diff suppressed because it is too large
Load Diff
@@ -1076,6 +1076,7 @@ static int rkisp_hw_probe(struct platform_device *pdev)
|
|||||||
struct resource *res;
|
struct resource *res;
|
||||||
int i, ret, mult = 1;
|
int i, ret, mult = 1;
|
||||||
bool is_mem_reserved = true;
|
bool is_mem_reserved = true;
|
||||||
|
u32 unite_state;
|
||||||
u32 clk_rate = 0;
|
u32 clk_rate = 0;
|
||||||
|
|
||||||
match = of_match_node(rkisp_hw_of_match, node);
|
match = of_match_node(rkisp_hw_of_match, node);
|
||||||
@@ -1146,6 +1147,11 @@ static int rkisp_hw_probe(struct platform_device *pdev)
|
|||||||
hw_dev->isp_ver = match_data->isp_ver;
|
hw_dev->isp_ver = match_data->isp_ver;
|
||||||
if (match_data->unite) {
|
if (match_data->unite) {
|
||||||
hw_dev->unite = ISP_UNITE_TWO;
|
hw_dev->unite = ISP_UNITE_TWO;
|
||||||
|
} else if (!device_property_read_u32(dev, "rockchip,unite", &unite_state)) {
|
||||||
|
if ( unite_state == 1 ) {
|
||||||
|
hw_dev->unite = ISP_UNITE_ONE;
|
||||||
|
hw_dev->base_next_addr = hw_dev->base_addr;
|
||||||
|
}
|
||||||
} else if (device_property_read_bool(dev, "rockchip,unite-en")) {
|
} else if (device_property_read_bool(dev, "rockchip,unite-en")) {
|
||||||
hw_dev->unite = ISP_UNITE_ONE;
|
hw_dev->unite = ISP_UNITE_ONE;
|
||||||
hw_dev->base_next_addr = hw_dev->base_addr;
|
hw_dev->base_next_addr = hw_dev->base_addr;
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ BR2_PACKAGE_DTC=y
|
|||||||
BR2_PACKAGE_DTC_PROGRAMS=y
|
BR2_PACKAGE_DTC_PROGRAMS=y
|
||||||
BR2_PACKAGE_LIBV4L=y
|
BR2_PACKAGE_LIBV4L=y
|
||||||
BR2_PACKAGE_LIBV4L_UTILS=y
|
BR2_PACKAGE_LIBV4L_UTILS=y
|
||||||
|
BR2_PACKAGE_LIBRSYNC=y
|
||||||
BR2_PACKAGE_PCRE2=y
|
BR2_PACKAGE_PCRE2=y
|
||||||
BR2_PACKAGE_PCRE2_16=y
|
BR2_PACKAGE_PCRE2_16=y
|
||||||
BR2_PACKAGE_PCRE2_32=y
|
BR2_PACKAGE_PCRE2_32=y
|
||||||
@@ -48,6 +49,7 @@ BR2_PACKAGE_IPERF3=y
|
|||||||
BR2_PACKAGE_LRZSZ=y
|
BR2_PACKAGE_LRZSZ=y
|
||||||
BR2_PACKAGE_NTP=y
|
BR2_PACKAGE_NTP=y
|
||||||
BR2_PACKAGE_OPENSSH=y
|
BR2_PACKAGE_OPENSSH=y
|
||||||
|
BR2_PACKAGE_RSYNC=y
|
||||||
BR2_PACKAGE_SOCAT=y
|
BR2_PACKAGE_SOCAT=y
|
||||||
BR2_PACKAGE_BASH=y
|
BR2_PACKAGE_BASH=y
|
||||||
BR2_PACKAGE_BASH_LOADABLE_EXAMPLES=y
|
BR2_PACKAGE_BASH_LOADABLE_EXAMPLES=y
|
||||||
|
|||||||
Reference in New Issue
Block a user