From 0f30c4a2bc26e9598ffd152aa61fb6c6a8f11911 Mon Sep 17 00:00:00 2001 From: Dmitry Ermakov Date: Sun, 2 Jan 2022 19:03:10 +0300 Subject: [PATCH] Add IMX291 DC for Hi3516Dv100 --- .../files/script/load_hisilicon | 9 ++- .../sensor/config/imx291_i2c_dc_1080p.ini | 76 ++++++++++++++++++ .../files/sensor/libsns_imx291.so | Bin 0 -> 25272 bytes .../files/sensor/libsns_imx291_dc.so | Bin 0 -> 25272 bytes 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 general/package/hisilicon-osdrv-hi3516av100/files/sensor/config/imx291_i2c_dc_1080p.ini create mode 100755 general/package/hisilicon-osdrv-hi3516av100/files/sensor/libsns_imx291.so create mode 100755 general/package/hisilicon-osdrv-hi3516av100/files/sensor/libsns_imx291_dc.so diff --git a/general/package/hisilicon-osdrv-hi3516av100/files/script/load_hisilicon b/general/package/hisilicon-osdrv-hi3516av100/files/script/load_hisilicon index e11aee22..c0330ffc 100755 --- a/general/package/hisilicon-osdrv-hi3516av100/files/script/load_hisilicon +++ b/general/package/hisilicon-osdrv-hi3516av100/files/script/load_hisilicon @@ -180,6 +180,13 @@ insert_sns() { insmod sensor_spi.ko ;; + imx291) + devmem 0x200f0050 32 0x2 # i2c0_scl + devmem 0x200f0054 32 0x2 # i2c0_sda + + devmem 0x2003002c 32 0x90005 # sensor unreset, clk 37.125MHz, VI 148MHz + ;; + imx117) devmem 0x200f0050 32 0x1 # spi0_sclk devmem 0x200f0054 32 0x1 # spi0_sdo @@ -287,7 +294,7 @@ insert_ko() { insert_audio insmod hi_mipi.ko - insmod wdt.ko + #insmod wdt.ko echo "==== Your input Sensor type is $SENSOR ====" } diff --git a/general/package/hisilicon-osdrv-hi3516av100/files/sensor/config/imx291_i2c_dc_1080p.ini b/general/package/hisilicon-osdrv-hi3516av100/files/sensor/config/imx291_i2c_dc_1080p.ini new file mode 100644 index 00000000..9f7060d6 --- /dev/null +++ b/general/package/hisilicon-osdrv-hi3516av100/files/sensor/config/imx291_i2c_dc_1080p.ini @@ -0,0 +1,76 @@ +[sensor] +Sensor_type=imx291 +Mode=WDR_MODE_NONE +DllFile=libsns_imx291_dc.so + +[mode] +input_mode=INPUT_MODE_CMOS_18V +dev_attr=0 + +[isp_image] +Isp_FrameRate=30 +Isp_Bayer=BAYER_GBRG + +[vi_dev] +Input_mod=VI_MODE_DIGITAL_CAMERA +Work_mod =0 ;VI_WORK_MODE_1Multiplex = 0 + ;VI_WORK_MODE_2Multiplex, + ;VI_WORK_MODE_4Multiplex +Combine_mode =0 ;Y/C composite or separation mode + ;VI_COMBINE_COMPOSITE = 0 /*Composite mode */ + ;VI_COMBINE_SEPARATE, /*Separate mode */ +Comp_mode =0 ;Component mode (single-component or dual-component) + ;VI_COMP_MODE_SINGLE = 0, /*single component mode */ + ;VI_COMP_MODE_DOUBLE = 1, /*double component mode */ +Clock_edge =1 ;Clock edge mode (sampling on the rising or falling edge) + ;VI_CLK_EDGE_SINGLE_UP=0, /*rising edge */ + ;VI_CLK_EDGE_SINGLE_DOWN, /*falling edge */ +Mask_num =2 ;Component mask +Mask_0 =0xFFF0000 +Mask_1 =0x0 +Scan_mode = 1;VI_SCAN_INTERLACED = 0 + ;VI_SCAN_PROGRESSIVE, +Data_seq =2 ;data sequence (ONLY for YUV format) + ;----2th component U/V sequence in bt1120 + ; VI_INPUT_DATA_VUVU = 0, + ; VI_INPUT_DATA_UVUV, + ;----input sequence for yuv + ; VI_INPUT_DATA_UYVY = 0, + ; VI_INPUT_DATA_VYUY, + ; VI_INPUT_DATA_YUYV, + ; VI_INPUT_DATA_YVYU + +Vsync =1 ; vertical synchronization signal + ;VI_VSYNC_FIELD = 0, + ;VI_VSYNC_PULSE, +VsyncNeg=0 ;Polarity of the vertical synchronization signal + ;VI_VSYNC_NEG_HIGH = 0, + ;VI_VSYNC_NEG_LOW /*if VIU_VSYNC_E +Hsync =0 ;Attribute of the horizontal synchronization signal + ;VI_HSYNC_VALID_SINGNAL = 0, + ;VI_HSYNC_PULSE, +HsyncNeg =0 ;Polarity of the horizontal synchronization signal + ;VI_HSYNC_NEG_HIGH = 0, + ;VI_HSYNC_NEG_LOW +VsyncValid =1 ;Attribute of the valid vertical synchronization signal + ;VI_VSYNC_NORM_PULSE = 0, + ;VI_VSYNC_VALID_SINGAL, +VsyncValidNeg =0;Polarity of the valid vertical synchronization signal + ;VI_VSYNC_VALID_NEG_HIGH = 0, + ;VI_VSYNC_VALID_NEG_LOW +Timingblank_HsyncHfb =0 ;Horizontal front blanking width +Timingblank_HsyncAct =1920 ;Horizontal effetive width +Timingblank_HsyncHbb =0 ;Horizontal back blanking width +Timingblank_VsyncVfb =0 ;Vertical front blanking height +Timingblank_VsyncVact =1080 ;Vertical effetive width +Timingblank_VsyncVbb=0 ;Vertical back blanking height +Timingblank_VsyncVbfb =0 ;Even-field vertical front blanking height(interlace, invalid progressive) +Timingblank_VsyncVbact=0 ;Even-field vertical effetive width(interlace, invalid progressive) +Timingblank_VsyncVbbb =0 ;Even-field vertical back blanking height(interlace, invalid progressive) +DataPath=1 +InputDataType=1 ;VI_DATA_TYPE_YUV = 0,VI_DATA_TYPE_RGB = 1, +DataRev =FALSE ;Data reverse. FALSE = 0; TRUE = 1 +DevRect_x=0 +DevRect_y=30 +DevRect_w=1920 +DevRect_h=1080 diff --git a/general/package/hisilicon-osdrv-hi3516av100/files/sensor/libsns_imx291.so b/general/package/hisilicon-osdrv-hi3516av100/files/sensor/libsns_imx291.so new file mode 100755 index 0000000000000000000000000000000000000000..9587993900ec5b8801ad4602e30ac4b0dc5fe1df GIT binary patch literal 25272 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 cOntm|J9&wWT&8ZZJKl#O_po_m