commit d1edce71135cc6d98c0a4b5729774542b676e769 Author: sophgo-forum-service <forum_service@sophgo.com> Date: Fri Mar 15 16:07:33 2024 +0800 [fix] recommend using ssh method to clone repo. [fix] fix sensor driver repo branch name.
164 lines
4.5 KiB
Python
Executable File
164 lines
4.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# PYTHON_ARGCOMPLETE_OK
|
|
|
|
import os
|
|
import json
|
|
import build_helper
|
|
|
|
kconfig_tmpl = """
|
|
#
|
|
# Automatically generated by gen_sensor_config.py; DO NOT EDIT.
|
|
#
|
|
|
|
menu "Sensor settings"
|
|
menu "Sensor support list"
|
|
{0}
|
|
endmenu
|
|
|
|
menu "Sensor tuning param config"
|
|
{1}
|
|
endmenu
|
|
endmenu
|
|
"""
|
|
|
|
kconfig_sensor_tmpl = """
|
|
config SENSOR_{0}
|
|
bool "Choose sensor {1}"
|
|
default n
|
|
help
|
|
"y" Add sensor {1} to libsns_full.so.
|
|
"""
|
|
|
|
kconfig_param_config_menu_tmpl = """
|
|
if {0}
|
|
menu "{1}"
|
|
choice
|
|
prompt "sensor tuning param"
|
|
{2}
|
|
endchoice
|
|
endmenu
|
|
endif
|
|
"""
|
|
|
|
kconfig_param_config_tmpl = """
|
|
config SENSOR_TUNING_PARAM_{0}
|
|
bool "{1}"
|
|
"""
|
|
|
|
kconfig_param_config_str_tmpl = """
|
|
config SENSOR_TUNING_PARAM
|
|
string{0}"""
|
|
|
|
kconfig_param_config_str_item_tmpl = """
|
|
default "{1}" if SENSOR_TUNING_PARAM_{0}"""
|
|
|
|
kconfig_param_config_default_tmpl = """
|
|
menu "src"
|
|
choice
|
|
prompt "sensor tuning param"
|
|
|
|
config SENSOR_TUNING_PARAM_cv183x_src_sony_imx307
|
|
bool "sony_imx307"
|
|
|
|
endchoice
|
|
endmenu
|
|
|
|
config SENSOR_TUNING_PARAM
|
|
string
|
|
default "sony_imx307" if SENSOR_TUNING_PARAM_cv183x_src_sony_imx307
|
|
"""
|
|
|
|
|
|
def gen_sensor_support_list():
|
|
with open(build_helper.SENSOR_LIST_PATH, "r", encoding="utf-8") as fp:
|
|
sensor_list_json = json.load(fp)
|
|
|
|
sensor_list = sensor_list_json['sensor_list']
|
|
|
|
kconfig_sensor_list = ""
|
|
|
|
for sensor in sensor_list:
|
|
sensor_name_u = sensor.upper()
|
|
sensor_name_l = sensor.lower()
|
|
kconfig_sensor_list = (kconfig_sensor_list
|
|
+ kconfig_sensor_tmpl.format(sensor_name_u, sensor_name_l))
|
|
|
|
return kconfig_sensor_list
|
|
|
|
|
|
def gen_sensor_tuning_param_list():
|
|
menu_list = ""
|
|
param_str = ""
|
|
|
|
isp_tuning_path = os.path.normpath(os.path.join(build_helper.BUILD_REPO_DIR, "../isp_tuning"))
|
|
|
|
if not os.path.exists(isp_tuning_path):
|
|
print("isp_tuning_path: " + isp_tuning_path + " not exists....")
|
|
return kconfig_param_config_default_tmpl
|
|
|
|
chip_list = os.listdir(isp_tuning_path)
|
|
|
|
for arch in chip_list:
|
|
if os.path.isdir(os.path.join(isp_tuning_path, arch)) and arch != ".git":
|
|
temp_path = os.path.join(isp_tuning_path, arch)
|
|
customers_list = os.listdir(temp_path)
|
|
for customers in customers_list:
|
|
temp_path = os.path.join(isp_tuning_path, arch)
|
|
if os.path.isdir(os.path.join(temp_path, customers)):
|
|
param_config_list = ""
|
|
temp_path = os.path.join(temp_path, customers)
|
|
param_list = os.listdir(temp_path)
|
|
for param in param_list:
|
|
if os.path.isdir(os.path.join(temp_path, param)):
|
|
temp_str = kconfig_param_config_tmpl.format(
|
|
arch + "_" + customers + "_" + param,
|
|
param
|
|
)
|
|
param_config_list = param_config_list + temp_str
|
|
|
|
temp_str = kconfig_param_config_str_item_tmpl.format(
|
|
arch + "_" + customers + "_" + param,
|
|
param
|
|
)
|
|
param_str = param_str + temp_str
|
|
|
|
chips = build_helper.get_chip_list()
|
|
temp_chip_list = []
|
|
for chip_arch, xlist in chips.items():
|
|
if chip_arch.upper() == arch.upper():
|
|
for x in xlist:
|
|
temp_chip_list.append("CHIP_" + x)
|
|
|
|
if len(temp_chip_list) == 0:
|
|
print("Error: chip list is mismatch between isp_tuning and build/boards, pls check!!!")
|
|
return kconfig_param_config_default_tmpl
|
|
|
|
temp_str = kconfig_param_config_menu_tmpl.format(
|
|
" || ".join(temp_chip_list),
|
|
customers,
|
|
param_config_list
|
|
)
|
|
menu_list = menu_list + temp_str
|
|
|
|
param_str = kconfig_param_config_str_tmpl.format(param_str)
|
|
|
|
return (menu_list + param_str)
|
|
|
|
|
|
def main():
|
|
|
|
kconfig_sensor_list = gen_sensor_support_list()
|
|
kconfig_param_list = gen_sensor_tuning_param_list()
|
|
|
|
kconfig = kconfig_tmpl.format(
|
|
kconfig_sensor_list,
|
|
kconfig_param_list
|
|
)
|
|
|
|
with open(build_helper.SENSOR_KCONFIG_PATH, "w") as fp:
|
|
fp.write(kconfig)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|