add(media): add mipi switch and sensor sc202cs. [MIPI_SWITCH][CAMERA_V1.2]

This commit is contained in:
kangjun
2024-12-27 20:12:08 +08:00
parent fb4f7b3baf
commit a2ba6d78f2
32 changed files with 11557 additions and 182 deletions

View File

@@ -42,15 +42,15 @@
reserved-memory {
e907_fw: e907_fw {
reg = <0x0 0x43080000 0x0 0x00180000>;
reg = <0x0 0x43080000 0x0 0x00190000>;
};
isp_reserved: isp_reserved {
reg = <0x0 0x43200000 0x0 0x00a00000>;
reg = <0x0 0x43210000 0x0 0x01E00000>;
};
e907_dram: riscv_memserve {
reg = <0x0 0x43c00000 0x0 0x00400000>;
reg = <0x0 0x45010000 0x0 0x00530000>;
no-map;
};
@@ -164,12 +164,12 @@
status = "okay";
ch_id = <0>;//vipp_num
codec_type = <0>;//0//0:H264; 1:JPG; 2:H265
res_w = <640>;
res_h = <480>;
res_w = <1920>;
res_h = <1080>;
fps = <15>;
bit_rate = <1536>;//kb
gop = <40>;
vbr = <0>;//< operate venc. VBR=1, CBR=0
vbr = <1>;//< operate venc. VBR=1, CBR=0
init_qp = <35>;
i_min_qp = <25>;
i_max_qp = <45>;
@@ -189,12 +189,12 @@
status = "okay";
ch_id = <1>;//vipp_num
codec_type = <0>;//0//0:H264; 1:JPG; 2:H265
res_w = <640>;
res_h = <480>;
res_w = <1600>;
res_h = <1200>;
fps = <15>;
bit_rate = <1536>;//kb
gop = <40>;
vbr = <0>;//< operate venc. VBR=1, CBR=0
vbr = <1>;//< operate venc. VBR=1, CBR=0
init_qp = <35>;
i_min_qp = <25>;
i_max_qp = <45>;
@@ -209,17 +209,17 @@
};
sensor_2_venc: sensor_2_venc@2 {
status = "disabled";
status = "okay";
s2vencfg0: s2vencfg0@0 {
status = "disabled";
status = "okay";
ch_id = <2>;//vipp_num
codec_type = <0>;//0//0:H264; 1:JPG; 2:H265
res_w = <1920>;
res_h = <1080>;
res_w = <1600>;
res_h = <1200>;
fps = <15>;
bit_rate = <1536>;//kb
gop = <40>;
vbr = <0>;//< operate venc. VBR=1, CBR=0
vbr = <1>;//< operate venc. VBR=1, CBR=0
init_qp = <35>;
i_min_qp = <25>;
i_max_qp = <45>;
@@ -266,7 +266,9 @@
};
isp02:isp@2 {
status = "disabled";
rpbuf = <&rpbuf_controller0>;
iommus = <&mmu_aw 4 0>;
delay_init = <1>;
};
isp03:isp@3 {
@@ -275,6 +277,7 @@
isp10:isp@4 {
status = "disabled";
iommus = <&mmu_aw 4 0>;
};
scaler00:scaler@0 {
@@ -289,7 +292,8 @@
};
scaler02:scaler@2 {
status = "disabled";
iommus = <&mmu_aw 1 0>;
delay_init = <1>;
};
scaler03:scaler@3 {
@@ -308,7 +312,8 @@
};
scaler12:scaler@6 {
status = "disabled";
iommus = <&mmu_aw 1 0>;
delay_init = <1>;
};
scaler13:scaler@7 {
@@ -327,7 +332,8 @@
};
scaler22:scaler@10 {
status = "disabled";
iommus = <&mmu_aw 1 0>;
delay_init = <1>;
};
scaler23:scaler@11 {
@@ -346,7 +352,8 @@
};
scaler32:scaler@14 {
status = "disabled";
iommus = <&mmu_aw 1 0>;
delay_init = <1>;
};
scaler33:scaler@15 {
@@ -372,6 +379,12 @@
flash0_flvdd_vol = <>;
status = "disabled";
};
sensor_vsync0: sensor_vsync0@0 {
vsync_gpio = <&pio PE 11 1 0 1 0>;
switch_gpio = <&pio PF 3 1 0 1 0>;
};
/*
sensor0:sensor@0 {
device_type = "sensor0";
@@ -421,8 +434,6 @@
/* sensor0_dvdd-supply = <&reg_dldo2>; */
/* sensor0_dvdd_vol = <1200000>; */
/* sensor0_power_en = <>; */
/* sensor0_power_en = <&pio PF 3 1 0 1 0>; */
/* sensor0_reset = <&pio PD 20 1 0 1 0>; */
sensor0_pwdn = <&pio PE 8 1 0 1 0>;
sensor0_sm_hs = <>;
sensor0_sm_vs = <>;
@@ -431,12 +442,11 @@
status = "okay";
};
// right
sensor1:sensor@1 {
device_type = "sensor1";
sensor1_mname = "ov02b10_mipi";
sensor1_mname = "sc2356_mipi";
sensor1_twi_cci_id = <1>;
sensor1_twi_addr = <0x78>;
sensor1_twi_addr = <0x6c>;
sensor1_mclk_id = <1>;
sensor1_pos = "front";
sensor1_isp_used = <1>;
@@ -444,15 +454,15 @@
sensor1_stby_mode = <0>;
sensor1_vflip = <0>;
sensor1_hflip = <0>;
/* sensor1_iovdd-supply = <&reg_aldo2>; */
/* sensor1_iovdd_vol = <1800000>; */
/* sensor1_avdd-supply = <&reg_bldo2>; */
/* sensor1_avdd_vol = <2800000>; */
/* sensor1_dvdd-supply = <&reg_dldo2>; */
/* sensor1_dvdd_vol = <1200000>; */
sensor1_power_en = <&pio PF 3 1 0 1 0>;
/* sensor0_iovdd-supply = <&reg_aldo2>; */
/* sensor0_iovdd_vol = <1800000>; */
/* sensor0_avdd-supply = <&reg_bldo2>; */
/* sensor0_avdd_vol = <2800000>; */
/* sensor0_dvdd-supply = <&reg_dldo2>; */
/* sensor0_dvdd_vol = <1200000>; */
/* sensor0_power_en = <>; */
sensor1_reset = <&pio PE 6 1 0 1 0>;
sensor1_pwdn = <&pio PE 9 1 0 1 0>;
sensor1_pwdn = <&pio PE 7 1 0 1 0>;
sensor1_sm_hs = <>;
sensor1_sm_vs = <>;
flash_handle = <>;
@@ -460,36 +470,6 @@
status = "okay";
};
// left
// sensor1:sensor@1 {
// device_type = "sensor1";
// sensor1_mname = "ov02b10_mipi";
// sensor1_twi_cci_id = <1>;
// sensor1_twi_addr = <0x7A>;
// sensor1_mclk_id = <1>;
// sensor1_pos = "front";
// sensor1_isp_used = <1>;
// sensor1_fmt = <1>;
// sensor1_stby_mode = <0>;
// sensor1_vflip = <0>;
// sensor1_hflip = <0>;
// /* sensor1_iovdd-supply = <&reg_aldo2>; */
// /* sensor1_iovdd_vol = <1800000>; */
// /* sensor1_avdd-supply = <&reg_bldo2>; */
// /* sensor1_avdd_vol = <2800000>; */
// /* sensor1_dvdd-supply = <&reg_dldo2>; */
// /* sensor1_dvdd_vol = <1200000>; */
// /* sensor1_power_en = <>; */
// sensor1_power_en = <&pio PF 3 1 0 1 0>;
// sensor1_reset = <&pio PE 7 1 0 1 0>;
// sensor1_pwdn = <&pio PE 10 1 0 1 0>;
// sensor1_sm_hs = <>;
// sensor1_sm_vs = <>;
// flash_handle = <>;
// act_handle = <>;
// status = "okay";
// };
vinc00:vinc@0 {
vinc0_csi_sel = <0>;
vinc0_mipi_sel = <0>;
@@ -508,6 +488,7 @@
vinc01:vinc@1 {
vinc1_csi_sel = <1>;
vinc1_mipi_sel = <1>;
vinc1_csi_ch = <0x10>;
vinc1_isp_sel = <1>;
vinc1_isp_tx_ch = <0>;
vinc1_tdm_rx_sel = <1>;
@@ -520,15 +501,18 @@
};
vinc02:vinc@2 {
vinc2_csi_sel = <2>;
vinc2_mipi_sel = <0xff>;
vinc2_csi_sel = <1>;
vinc2_mipi_sel = <1>;
vinc2_csi_ch = <0x11>;
vinc2_isp_sel = <2>;
vinc2_isp_tx_ch = <2>;
vinc2_isp_tx_ch = <0>;
vinc2_tdm_rx_sel = <2>;
vinc2_rear_sensor_sel = <0>;
vinc2_front_sensor_sel = <0>;
vinc2_rear_sensor_sel = <1>;
vinc2_front_sensor_sel = <1>;
vinc2_sensor_list = <0>;
status = "disabled";
iommus = <&mmu_aw 1 0>;
delay_init = <1>;
status = "okay";
};
vinc03:vinc@3 {
@@ -561,6 +545,7 @@
vinc11:vinc@5 {
vinc5_csi_sel = <1>;
vinc5_mipi_sel = <1>;
vinc5_csi_ch = <0x10>;
vinc5_isp_sel = <1>;
vinc5_isp_tx_ch = <0>;
vinc5_tdm_rx_sel = <1>;
@@ -573,15 +558,18 @@
};
vinc12:vinc@6 {
vinc6_csi_sel = <2>;
vinc6_mipi_sel = <0xff>;
vinc6_isp_sel = <0>;
vinc6_csi_sel = <1>;
vinc6_mipi_sel = <1>;
vinc6_csi_ch = <0x11>;
vinc6_isp_sel = <2>;
vinc6_isp_tx_ch = <0>;
vinc6_tdm_rx_sel = <0>;
vinc6_rear_sensor_sel = <0>;
vinc6_front_sensor_sel = <0>;
vinc6_tdm_rx_sel = <2>;
vinc6_rear_sensor_sel = <1>;
vinc6_front_sensor_sel = <1>;
vinc6_sensor_list = <0>;
status = "disabled";
iommus = <&mmu_aw 1 0>;
delay_init = <1>;
status = "okay";
};
vinc13:vinc@7 {
@@ -598,7 +586,7 @@
vinc20:vinc@8 {
vinc8_csi_sel = <0>;
vinc8_mipi_sel = <0x0>;
vinc8_mipi_sel = <0>;
vinc8_isp_sel = <0>;
vinc8_isp_tx_ch = <0>;
vinc8_tdm_rx_sel = <0>;
@@ -614,6 +602,7 @@
vinc21:vinc@9 {
vinc9_csi_sel = <1>;
vinc9_mipi_sel = <1>;
vinc9_csi_ch = <0x10>;
vinc9_isp_sel = <1>;
vinc9_isp_tx_ch = <0>;
vinc9_tdm_rx_sel = <1>;
@@ -626,15 +615,18 @@
};
vinc22:vinc@10 {
vinc10_csi_sel = <2>;
vinc10_mipi_sel = <0xff>;
vinc10_isp_sel = <0>;
vinc10_csi_sel = <1>;
vinc10_mipi_sel = <1>;
vinc10_csi_ch = <0x11>;
vinc10_isp_sel = <2>;
vinc10_isp_tx_ch = <0>;
vinc10_tdm_rx_sel = <0>;
vinc10_rear_sensor_sel = <0>;
vinc10_front_sensor_sel = <0>;
vinc10_tdm_rx_sel = <2>;
vinc10_rear_sensor_sel = <1>;
vinc10_front_sensor_sel = <1>;
vinc10_sensor_list = <0>;
status = "disabled";
iommus = <&mmu_aw 1 0>;
delay_init = <1>;
status = "okay";
};
vinc23:vinc@11 {
@@ -651,7 +643,7 @@
vinc30:vinc@12 {
vinc12_csi_sel = <0>;
vinc12_mipi_sel = <0x0>;
vinc12_mipi_sel = <0>;
vinc12_isp_sel = <0>;
vinc12_isp_tx_ch = <0>;
vinc12_tdm_rx_sel = <0>;
@@ -667,6 +659,7 @@
vinc31:vinc@13 {
vinc13_csi_sel = <1>;
vinc13_mipi_sel = <1>;
vinc13_csi_ch = <0x10>;
vinc13_isp_sel = <1>;
vinc13_isp_tx_ch = <0>;
vinc13_tdm_rx_sel = <1>;
@@ -679,15 +672,18 @@
};
vinc32:vinc@14 {
vinc14_csi_sel = <2>;
vinc14_mipi_sel = <0xff>;
vinc14_isp_sel = <0>;
vinc14_csi_sel = <1>;
vinc14_mipi_sel = <1>;
vinc14_csi_ch = <0x11>;
vinc14_isp_sel = <2>;
vinc14_isp_tx_ch = <0>;
vinc14_tdm_rx_sel = <0>;
vinc14_rear_sensor_sel = <0>;
vinc14_front_sensor_sel = <0>;
vinc14_tdm_rx_sel = <2>;
vinc14_rear_sensor_sel = <1>;
vinc14_front_sensor_sel = <1>;
vinc14_sensor_list = <0>;
status = "disabled";
iommus = <&mmu_aw 1 0>;
delay_init = <1>;
status = "okay";
};
vinc33:vinc@15 {
@@ -939,8 +935,8 @@
};
mipib_pins_a: mipib@0 {
allwinner,pins = "PA8", "PA9", "PA10", "PA11";
allwinner,pname = "mipib_d1n", "mipib_d1p", "mipib_ck0n", "mipib_ck0p";
allwinner,pins = "PA10", "PA11";
allwinner,pname = "mipib_ck0n", "mipib_ck0p";
allwinner,function = "mipib_rx";
allwinner,muxsel = <2>;
allwinner,drive = <1>;
@@ -948,14 +944,14 @@
};
mipib_pins_b: mipib@1 {
allwinner,pins = "PA8", "PA9", "PA10", "PA11";
allwinner,pins = "PA10", "PA11";
allwinner,pname = "mipib_d1n", "mipib_d1p", "mipib_ck0n", "mipib_ck0p";
allwinner,function = "io_disabled";
allwinner,muxsel = <0xf>;
allwinner,drive = <1>;
allwinner,pull = <0>;
};
/*
mipib_4lane_pins_a: mipib_4lane@0 {
allwinner,pins = "PA8", "PA9";
allwinner,pname = "mipib_d1n", "mipib_d1p";
@@ -973,13 +969,13 @@
allwinner,drive = <1>;
allwinner,pull = <0>;
};
*/
twi0_pins_a: twi0@0 {
allwinner,pins = "PE4", "PE5";
allwinner,pname = "twi0_scl", "twi0_sda";
allwinner,function = "twi0";
allwinner,muxsel = <8>;
allwinner,drive = <1>;
allwinner,drive = <0>;
allwinner,pull = <1>;
};
@@ -987,7 +983,7 @@
allwinner,pins = "PE4", "PE5";
allwinner,function = "io_disabled";
allwinner,muxsel = <0xf>;
allwinner,drive = <1>;
allwinner,drive = <0>;
allwinner,pull = <0>;
};
@@ -996,7 +992,7 @@
allwinner,pname = "twi1_scl", "twi1_sda";
allwinner,function = "twi1";
allwinner,muxsel = <8>;
allwinner,drive = <1>;
allwinner,drive = <0>;
allwinner,pull = <1>;
};
@@ -1004,7 +1000,7 @@
allwinner,pins = "PE2", "PE3";
allwinner,function = "io_disabled";
allwinner,muxsel = <0xf>;
allwinner,drive = <1>;
allwinner,drive = <0>;
allwinner,pull = <0>;
};
@@ -1936,7 +1932,7 @@
memory-mappings =
/* DA len PA */
/* DDR for e907 */
< 0x43c00000 0x00400000 0x43c00000 >;
< 0x45010000 0x00530000 0x45010000 >;
// iommus = <&mmu_aw 5 1>;
fw-region = <&e907_fw>;

View File

@@ -1737,7 +1737,7 @@ CONFIG_VIDEO_V4L2=y
CONFIG_VIDEOBUF2_CORE=y
CONFIG_VIDEOBUF2_MEMOPS=y
CONFIG_VIDEOBUF2_DMA_CONTIG=y
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEOBUF2_VMALLOC=y
# CONFIG_TTPCI_EEPROM is not set
#
@@ -1759,11 +1759,11 @@ CONFIG_ENABLE_SENSOR_FLIP_OPTION=y
# CONFIG_PIPELINE_RESET is not set
# CONFIG_MULTI_FRAME is not set
CONFIG_SUPPORT_ISP_TDM=y
CONFIG_TDM_LBC_EN=y
# CONFIG_TDM_LBC_EN is not set
# CONFIG_TDM_ONE_BUFFER is not set
# CONFIG_TDM_OFFLINE_HANDLE_RAW is not set
# CONFIG_MIPI_VC is not set
# CONFIG_AVG_TDM_FIFO is not set
CONFIG_MIPI_VC=y
CONFIG_AVG_TDM_FIFO=y
# CONFIG_DISPPLAY_SYNC is not set
CONFIG_VIN_IOMMU=y
CONFIG_D3D=y
@@ -1773,7 +1773,7 @@ CONFIG_D3D_COMPRESS_EN=y
CONFIG_FRAMEDONE_TWO_BUFFER=y
CONFIG_ISP_SERVER_MELIS=y
CONFIG_VIN_INIT_MELIS=y
# CONFIG_SUPPORT_THREE_CAMERA_MELIS is not set
CONFIG_SUPPORT_THREE_CAMERA_MELIS=y
CONFIG_VIDEO_SUNXI_VIN_SPECIAL=y
#
@@ -1788,7 +1788,7 @@ CONFIG_VIDEO_SUNXI_VIN_SPECIAL=y
# CONFIG_SENSOR_OV7251_MIPI is not set
# CONFIG_SENSOR_OV2735_MIPI is not set
# CONFIG_SENSOR_OV7750_MIPI is not set
CONFIG_SENSOR_OV02B10_MIPI=y
# CONFIG_SENSOR_OV02B10_MIPI is not set
# CONFIG_SENSOR_OV5648 is not set
# CONFIG_SENSOR_OS02G10 is not set
# CONFIG_SENSOR_GC2145 is not set
@@ -1812,6 +1812,7 @@ CONFIG_SENSOR_GC2083_MIPI=y
# CONFIG_SENSOR_SC2336_MIPI is not set
# CONFIG_SENSOR_SC5336_MIPI is not set
# CONFIG_SENSOR_SC2355_MIPI is not set
CONFIG_SENSOR_SC2356_MIPI=y
# CONFIG_SENSOR_SC031GS_MIPI is not set
# CONFIG_SENSOR_SC500AI_MIPI is not set
# CONFIG_SENSOR_SC530AI_MIPI is not set
@@ -2024,8 +2025,8 @@ CONFIG_VIDEO_KERNEL_ENC_SUNXI=y
# CONFIG_VIDEO_GOOGLE_VP9_DECODER_SUNXI is not set
CONFIG_VIDEO_RT_MEDIA=y
# CONFIG_RT_MEDIA_SINGEL_SENSOR is not set
CONFIG_RT_MEDIA_DUAL_SENSOR=y
# CONFIG_RT_MEDIA_THREE_SENSOR is not set
# CONFIG_RT_MEDIA_DUAL_SENSOR is not set
CONFIG_RT_MEDIA_THREE_SENSOR=y
CONFIG_RT_MEDIA_CDC_LOG_LEVEL=3
# CONFIG_RT_MEDIA_SETUP_RECORDER_IN_KERNEL is not set
# CONFIG_AW_TSC is not set