[no ci] Sigmastar: add infinity6c osdrv package

pull/1165/head
Viktor 2023-11-28 01:13:54 +01:00
parent 5d0f86b4e1
commit 65b34aadc9
41 changed files with 157 additions and 165 deletions

View File

@ -95,6 +95,7 @@ BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
# BR2_PACKAGE_RTL8188FU_OPENIPC is not set
# Debug
# BR2_PACKAGE_HOST_GDB is not set

View File

@ -93,6 +93,7 @@ source "$BR2_EXTERNAL_GENERAL_PATH/package/rtw-hostapd/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-motors/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-infinity6/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-infinity6b0/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-infinity6c/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-infinity6e/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-msc313e/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-sensors/Config.in"

View File

@ -1,81 +0,0 @@
#!/bin/sh
# DAY mode
ir_cut_enable() {
# Pin_mux
[ ! -d /sys/class/gpio/gpio$gpio_0 ] && echo "$gpio_0" >/sys/class/gpio/export
[ ! -d /sys/class/gpio/gpio$gpio_1 ] && echo "$gpio_1" >/sys/class/gpio/export
# Dir
echo "out" >/sys/class/gpio/gpio$gpio_0/direction
echo "out" >/sys/class/gpio/gpio$gpio_1/direction
# Data, gpio_1: 0, gpio_0: 1 (day mode)
echo "1" >/sys/class/gpio/gpio$gpio_0/value
echo "0" >/sys/class/gpio/gpio$gpio_1/value
# Sleep 1s
sleep 1
# Back to original
echo "0" >/sys/class/gpio/gpio$gpio_0/value
echo "0" >/sys/class/gpio/gpio$gpio_1/value
}
# NIGHT mode
ir_cut_disable() {
# Pin_mux
[ ! -d /sys/class/gpio/gpio$gpio_0 ] && echo "$gpio_0" >/sys/class/gpio/export
[ ! -d /sys/class/gpio/gpio$gpio_1 ] && echo "$gpio_1" >/sys/class/gpio/export
# Dir
echo "out" >/sys/class/gpio/gpio$gpio_0/direction
echo "out" >/sys/class/gpio/gpio$gpio_1/direction
# Data, gpio_1: 1, gpio_0: 0 (night mode)
echo "0" >/sys/class/gpio/gpio$gpio_0/value
echo "1" >/sys/class/gpio/gpio$gpio_1/value
# Sleep 1s
sleep 1
# Back to original
echo "0" >/sys/class/gpio/gpio$gpio_0/value
echo "0" >/sys/class/gpio/gpio$gpio_1/value
}
gpio_0=0
gpio_1=0
if [ $# -lt 2 ]; then
echo "Usage: ircut_demo <vendor> <mode>"
echo "For example:"
echo "NIGHT : ircut_demo anjoy 1"
else
if [ $1 = "anjoy" ]; then
gpio_0=78
gpio_1=79
elif [ $1 = "brovotech" ]; then
gpio_0=78
gpio_1=79
elif [ $1 = "gospell" ]; then
gpio_0=78
gpio_1=79
elif [ $1 = "uniview" ]; then
gpio_0=78
gpio_1=79
else
echo -e "Wrong vendor name: $1\nPlease select: anjoy, brovotech, gospell, uniview"
exit
fi
if [ $2 -eq 0 ]; then
echo "DAY mode, ir_cut on"
ir_cut_enable >/dev/null
elif [ $2 -eq 1 ]; then
echo "NIGHT mode, ir_cut off"
ir_cut_disable >/dev/null
else
echo "Invalid mode, please slect 0 or 1"
fi
fi

View File

@ -0,0 +1,5 @@
config BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6C
bool "sigmastar-osdrv-infinity6c"
select BR2_PACKAGE_SIGMASTAR_OSDRV_SENSORS
help
Sigmastar infinity6c kernel modules

View File

@ -0,0 +1,36 @@
{
"mi_fb": {
"fb_device_disp_path": [
{
"fb_hwlayer_id": 2,
"fb_hwwin_id": 0,
"fb_hwlayer_dst": 3,
"fb_hwwin_format": 5,
"fb_hwlayer_outputcolor": 0,
"fb_width": 1024,
"fb_height": 600,
"fb_timing_width": 1024,
"fb_timing_height": 600,
"fb_mmap_name": "E_MMAP_ID_FB",
"fb_buffer_len": 8192
}
],
"fb_device_video_path": [
{
"fb_buf_id_path": {
"fb_gwin_id": 7,
"fb_mod": 34,
"fb_dev": 1,
"fb_chn": 0,
"fb_port": 0
},
"fb_hwwin_format": 6,
"fb_width": 1920,
"fb_height": 1080,
"fb_timing_width": 1920,
"fb_timing_height": 1080,
"fb_buf_cnt": 3
}
]
}
}

View File

@ -0,0 +1,24 @@
{
"E_MI_MODULE_ID_SYS" :
{
"cmdQBufSize" : 400
},
"E_MI_MODULE_ID_DISP" :
{
"threadPriority" : 98,
"debugFilePath" : "",
"u64CpuMaskAffinity" : "0x0"
},
"E_MI_MODULE_ID_MIPITX" :
{
"threadPriority" : 70
},
"E_MI_MODULE_ID_PANEL" :
{
"debugFilePath" : ""
},
"E_MI_MODULE_ID_FB" :
{
"default_reserved_mem_name": "fb"
}
}

View File

@ -0,0 +1,61 @@
#!/bin/sh
#
# OpenIPC.org | 2023.11.01
#
PATH_MODULE=/lib/modules/5.10.61/sigmastar
PATH_SENSOR=${PATH_MODULE}/sensor
SENSOR=$(fw_printenv -n sensor)
detect_sensor() {
#devmem 0x1F2079A4 16 0x0111
#devmem 0x1F207188 16 0x0001
#devmem 0x1F2608FC 16 0x0003
SENSOR=$(ipcinfo -s)
fw_setenv sensor ${SENSOR}
}
set_sensor() {
case ${SENSOR} in
sc401ai)
insmod ${PATH_SENSOR}/sensor_${SENSOR}_mipi.ko chmap=1
;;
*)
echo -e "\n\e[1;31mUNSUPPORTED sensor - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC
;;
esac
}
insert_ko() {
insmod ${PATH_MODULE}/mi_common.ko g_ModParamPath=${PATH_MODULE}/param.json config_json_path=/${PATH_MODULE}/config.json
insmod ${PATH_MODULE}/mi_isp.ko
insmod ${PATH_MODULE}/mi_rgn.ko
insmod ${PATH_MODULE}/mi_sensor.ko
insmod ${PATH_MODULE}/mi_sys.ko
insmod ${PATH_MODULE}/mi_vcodec.ko drv_codec40_common.fw_load_path=/etc/firmware/chagall.bin
insmod ${PATH_MODULE}/mi_venc.ko
insmod ${PATH_MODULE}/mi_vif.ko
major=$(awk '$2=="mi_poll" {print $1}' /proc/devices)
mknod /dev/mi_poll c $major 0
echo isproot /etc/firmware > /dev/ispmid
}
if [ ! -e /dev/mi_poll ]; then
insert_ko
fi
if [ -z ${SENSOR} ]; then
echo -e "\n\e[1;33mAutodetect sensor\e[0m\n" | logger -s -t OpenIPC
detect_sensor
fi
if [ -z ${SENSOR} ]; then
echo -e "\n\e[1;31mSensor parameter MISSING\e[0m\n" | logger -s -t OpenIPC
exit 1
else
echo -e "\n\e[1;32mSensor assigned - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC
$(lsmod | grep -q ${SENSOR}) || set_sensor
fi
exit 0

View File

@ -0,0 +1,29 @@
################################################################################
#
# sigmastar-osdrv-infinity6c
#
################################################################################
SIGMASTAR_OSDRV_INFINITY6C_VERSION =
SIGMASTAR_OSDRV_INFINITY6C_SITE =
SIGMASTAR_OSDRV_INFINITY6C_LICENSE = MIT
SIGMASTAR_OSDRV_INFINITY6C_LICENSE_FILES = LICENSE
define SIGMASTAR_OSDRV_INFINITY6C_INSTALL_TARGET_CMDS
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/5.10.61/sigmastar
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/5.10.61/sigmastar $(SIGMASTAR_OSDRV_INFINITY6C_PKGDIR)/files/kmod/*
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/firmware
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/firmware $(SIGMASTAR_OSDRV_INFINITY6C_PKGDIR)/files/sensor/firmware/*
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(SIGMASTAR_OSDRV_INFINITY6C_PKGDIR)/files/sensor/configs/*
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(SIGMASTAR_OSDRV_INFINITY6C_PKGDIR)/files/lib/*
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(SIGMASTAR_OSDRV_INFINITY6C_PKGDIR)/files/script/*
endef
$(eval $(generic-package))

View File

@ -1,84 +0,0 @@
#!/bin/sh
# DAY mode
ir_cut_enable() {
# Pin_mux
[ ! -d /sys/class/gpio/gpio$gpio_0 ] && echo "$gpio_0" >/sys/class/gpio/export
[ ! -d /sys/class/gpio/gpio$gpio_1 ] && echo "$gpio_1" >/sys/class/gpio/export
# Dir
echo "out" >/sys/class/gpio/gpio$gpio_0/direction
echo "out" >/sys/class/gpio/gpio$gpio_1/direction
# Data, gpio_1: 0, gpio_0: 1 (day mode)
echo "1" >/sys/class/gpio/gpio$gpio_0/value
echo "0" >/sys/class/gpio/gpio$gpio_1/value
# Sleep 1s
sleep 1
# Back to original
echo "0" >/sys/class/gpio/gpio$gpio_0/value
echo "0" >/sys/class/gpio/gpio$gpio_1/value
}
# NIGHT mode
ir_cut_disable() {
# Pin_mux
[ ! -d /sys/class/gpio/gpio$gpio_0 ] && echo "$gpio_0" >/sys/class/gpio/export
[ ! -d /sys/class/gpio/gpio$gpio_1 ] && echo "$gpio_1" >/sys/class/gpio/export
# Dir
echo "out" >/sys/class/gpio/gpio$gpio_0/direction
echo "out" >/sys/class/gpio/gpio$gpio_1/direction
# Data, gpio_1: 1, gpio_0: 0 (night mode)
echo "0" >/sys/class/gpio/gpio$gpio_0/value
echo "1" >/sys/class/gpio/gpio$gpio_1/value
# Sleep 1s
sleep 1
# Back to original
echo "0" >/sys/class/gpio/gpio$gpio_0/value
echo "0" >/sys/class/gpio/gpio$gpio_1/value
}
gpio_0=0
gpio_1=0
if [ $# -lt 2 ]; then
echo "Usage: ircut_demo <vendor> <mode>"
echo "For example:"
echo "NIGHT: ircut_demo anjoy 1"
else
if [ $1 = "anjoy" ]; then
gpio_0=78
gpio_1=79
elif [ $1 = "brovotech" ]; then
gpio_0=78
gpio_1=79
elif [ $1 = "camhi" ]; then
gpio_0=23
gpio_1=24
elif [ $1 = "gospell" ]; then
gpio_0=78
gpio_1=79
elif [ $1 = "uniview" ]; then
gpio_0=78
gpio_1=79
else
echo -e "Wrong vendor name: $1\nPlease select: anjoy, brovotech, camhi, gospell, uniview"
exit
fi
if [ $2 -eq 0 ]; then
echo "DAY mode, ir_cut on"
ir_cut_enable >/dev/null
elif [ $2 -eq 1 ]; then
echo "NIGHT mode, ir_cut off"
ir_cut_disable >/dev/null
else
echo "Invalid mode, please slect 0 or 1"
fi
fi