全志平臺camera驅動開發(5)NVP6134芯片8路模擬視頻BT1120輸入

前言

1. 調試平臺: 全志V5/T7等有BT1120的並行接口,理論有DVP接口的一般都支持

2. NVP6134可使用多路視頻同時輸入

 
硬件連接

      模擬camera1

      模擬camera2     

      模擬camera3

      模擬camera4    NVP6134   ------>NVCSI0

                                                                                               V5/T7

      模擬camera5

      模擬camera6    

      模擬camera7

      模擬camera8    NVP6134   ------>NVCSI1

 

配置調試環境

1. 配置CSI 2/3 GPIO 配置

   不管使用BT656還是BT1120輸入,都是這套GPIO配置

  【BT1120使用16位信號輸入】

[vind0/csi2]
csi2_used               = 1
csi2_pck                = port:PE00<2><default><default><default>
csi2_hsync              = port:PE02<2><default><default><default>
csi2_vsync              = port:PE03<2><default><default><default>
csi2_d0                 = port:PE04<2><default><default><default>
csi2_d1                 = port:PE05<2><default><default><default>
csi2_d2                 = port:PE06<2><default><default><default>
csi2_d3                 = port:PE07<2><default><default><default>
csi2_d4                 = port:PE08<2><default><default><default>
csi2_d5                 = port:PE09<2><default><default><default>
csi2_d6                 = port:PE10<2><default><default><default>
csi2_d7                 = port:PE11<2><default><default><default>
csi2_d8                 = port:PE12<2><default><default><default>
csi2_d9                 = port:PE13<2><default><default><default>
csi2_d10                = port:PE14<2><default><default><default>
csi2_d11                = port:PE15<2><default><default><default>
csi2_d12                = port:PI07<2><default><default><default>
csi2_d13                = port:PI08<2><default><default><default>
csi2_d14                = port:PI09<2><default><default><default>
csi2_d15                = port:PI10<2><default><default><default>
 
[vind0/csi3]
csi3_used               = 1
csi3_pck                = port:PJ00<2><default><default><default>
csi3_hsync              = port:PJ02<2><default><default><default>
csi3_vsync              = port:PJ03<2><default><default><default>
csi3_d0                 = port:PJ04<2><default><default><default>
csi3_d1                 = port:PJ05<2><default><default><default>
csi3_d2                 = port:PJ06<2><default><default><default>
csi3_d3                 = port:PJ07<2><default><default><default>
csi3_d4                 = port:PJ08<2><default><default><default>
csi3_d5                 = port:PJ09<2><default><default><default>
csi3_d6                 = port:PJ10<2><default><default><default>
csi3_d7                 = port:PJ11<2><default><default><default>
csi3_d8                 = port:PJ12<2><default><default><default>
csi3_d9                 = port:PJ13<2><default><default><default>
csi3_d10                = port:PJ14<2><default><default><default>
csi3_d11                = port:PJ15<2><default><default><default>
csi3_d12                = port:PI13<2><default><default><default>
csi3_d13                = port:PI14<2><default><default><default>
csi3_d14                = port:PI15<2><default><default><default>
csi3_d15                = port:PI16<2><default><default><default>

2.添加驅動

    obj-m                             += nvp6134/
     
    obj-m                            += nvp6134_2/

          一個nvp6134驅動可以支持一個PARSER四通道

3. 加載驅動
 

insmod /lib/modules/4.4.55/videobuf2-dma-contig.ko
 
insmod /lib/modules/4.4.55/vin_io.ko
 
insmod /lib/modules/4.4.55/nvp6134.ko
 
insmod /lib/modules/4.4.55/nvp6134_2.ko
 
insmod /lib/modules/4.4.55/vin_v4l2.ko

 

BT1120 四通道+八路輸入

 

實現原理:

    a.每個NVP6134通過四路模擬camera交織輸入, 兩個NVP6134即8路camera

    b. 在主控端對四路camera交織輸入進行解交織

    c. V5/T7有兩個ISP,每個ISP有四個子通道,即8個通道;

        每個解交織後的單路camera數據通過ISP的子通道輸入

 

1.通道設置

(1)配置6134內部四通道mode

(2)配置mbus

static int sensor_g_mbus_config(struct v4l2_subdev *sd,
				struct v4l2_mbus_config *cfg)
{
	cfg->type = V4L2_MBUS_BT656;
 
	cfg->flags = CLK_POL | CSI_CH_0 | CSI_CH_1 | CSI_CH_2 | CSI_CH_3;
	return 0;
}

2.格式設置

YUV的格式順序並不影響圖像採集,只是影響圖像色彩;

 所以不太確定YUV順序的話,可以先把圖像通路調通後,再根據圖像色彩校準YUV順序

static struct sensor_format_struct sensor_formats[] = {
	{
	.desc = "BT656 4CH",
	.mbus_code = MEDIA_BUS_FMT_VYUY8_1X16,
	.regs = NULL,
	.regs_size = 0,
	.bpp = 2,
	},

3. sysconfig配置

(1)配置sensor

        主要是id、I2C ID、isp配置、pmu供電配置、reset管腳;

        注意: 由於是ISP 需要bypss,所以需要將isp_used關閉

[vind0/sensor0]
sensor0_used          = 1
sensor0_mname         = "nvp6134"
sensor0_twi_cci_id    = 2
sensor0_twi_addr      = 0x60
sensor0_mclk_id       = 0
sensor0_pos           = "front"
sensor0_isp_used      = 0
sensor0_fmt           = 0
sensor0_stby_mode     = 0
sensor0_vflip         = 0
sensor0_hflip         = 0
sensor0_iovdd         = "iovdd-csi"
sensor0_iovdd_vol     = 2800000
sensor0_avdd          = ""
sensor0_avdd_vol      = 2800000
sensor0_dvdd          = ""
sensor0_dvdd_vol      = 1800000
sensor0_power_en      =
sensor0_reset         = port:PI1<1><0><1><0>
sensor0_pwdn          = port:PI3<1><0><1><0>
 
[vind0/sensor1]
sensor1_used          = 1
sensor1_mname         = "nvp6134_2"
sensor1_twi_cci_id    = 3
sensor1_twi_addr      = 0x60
sensor1_mclk_id       = 1
sensor1_pos           = "rear"
sensor1_isp_used      = 0
sensor1_fmt           = 0
sensor1_stby_mode     = 0
sensor1_vflip         = 0
sensor1_hflip         = 0
sensor1_iovdd         = "iovdd-csi"
sensor1_iovdd_vol     = 2800000
sensor1_avdd          = ""
sensor1_avdd_vol      = 2800000
sensor1_dvdd          = ""
sensor1_dvdd_vol      = 1800000
sensor1_power_en      =
sensor1_reset         = port:PI2<1><0><1><0>
sensor1_pwdn          = port:PI4<1><0><1><0>

 

(2)配置pipeline

    這裏只列舉了兩組pipeline;

    csi_sel 需要和實際使用的NVCSI id匹配上;

    isp_sel  需要和實際使用的ISP id匹配上 (V5和T7平臺都有兩個ISP);

    isp_tx_ch 這個是ISP的子通道,因爲NVP6134的交織圖像需要ISP做解交織;
 

[vind0/vinc0]
vinc0_used		= 1
vinc0_csi_sel		= 2
vinc0_mipi_sel		= 0xff
vinc0_isp_sel		= 0
vinc0_isp_tx_ch		= 0
vinc0_rear_sensor_sel	= 0
vinc0_front_sensor_sel	= 0
vinc0_sensor_list	= 0

[vind0/vinc1]
vinc1_used		= 1
vinc1_csi_sel		= 2
vinc1_mipi_sel		= 0xff
vinc1_isp_sel		= 0
vinc1_isp_tx_ch		= 1
vinc1_rear_sensor_sel	= 0
vinc1_front_sensor_sel	= 0
vinc1_sensor_list	= 0

[vind0/vinc2]
vinc2_used		= 1
vinc2_csi_sel		= 2
vinc2_mipi_sel		= 0xff
vinc2_isp_sel		= 0
vinc2_isp_tx_ch		= 2
vinc2_rear_sensor_sel	= 0
vinc2_front_sensor_sel	= 0
vinc2_sensor_list	= 0

[vind0/vinc3]
vinc3_used		= 1
vinc3_csi_sel		= 2
vinc3_mipi_sel		= 0xff
vinc3_isp_sel		= 0
vinc3_isp_tx_ch		= 3
vinc3_rear_sensor_sel	= 0
vinc3_front_sensor_sel	= 0
vinc3_sensor_list	= 0

[vind0/vinc4]
vinc4_used		= 1
vinc4_csi_sel		= 3
vinc4_mipi_sel		= 0xff
vinc4_isp_sel		= 2
vinc4_isp_tx_ch		= 0
vinc4_rear_sensor_sel	= 1
vinc4_front_sensor_sel	= 1
vinc4_sensor_list	= 0

[vind0/vinc5]
vinc5_used		= 1
vinc5_csi_sel		= 3
vinc5_mipi_sel		= 0xff
vinc5_isp_sel		= 2
vinc5_isp_tx_ch		= 1
vinc5_rear_sensor_sel	= 1
vinc5_front_sensor_sel	= 1
vinc5_sensor_list	= 0

[vind0/vinc6]
vinc6_used		= 1
vinc6_csi_sel		= 3
vinc6_mipi_sel		= 0xff
vinc6_isp_sel		= 2
vinc6_isp_tx_ch		= 2
vinc6_rear_sensor_sel	= 1
vinc6_front_sensor_sel	= 1
vinc6_sensor_list	= 0

[vind0/vinc7]
vinc7_used		= 1
vinc7_csi_sel		= 3
vinc7_mipi_sel		= 0xff
vinc7_isp_sel		= 2
vinc7_isp_tx_ch		= 3
vinc7_rear_sensor_sel	= 1
vinc7_front_sensor_sel	= 1
vinc7_sensor_list	= 0

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章