|
@@ -6,6 +6,7 @@
|
|
|
|
|
|
#ifndef _CAM_TFE770_H_
|
|
|
#define _CAM_TFE770_H_
|
|
|
+#include <media/cam_isp_tfe.h>
|
|
|
#include "cam_tfe_core.h"
|
|
|
#include "cam_tfe_bus.h"
|
|
|
|
|
@@ -241,6 +242,37 @@ static struct cam_tfe_rdi_reg_data tfe770_rdi2_reg_data = {
|
|
|
|
|
|
};
|
|
|
|
|
|
+static struct cam_tfe_ppp_reg tfe770_ppp_reg = {
|
|
|
+ .ppp_hw_version = 0x00002400,
|
|
|
+ .ppp_hw_status = 0x00002404,
|
|
|
+ .ppp_module_config = 0x00002460,
|
|
|
+ .ppp_skip_period = 0x00002468,
|
|
|
+ .ppp_irq_subsample_pattern = 0x0000246C,
|
|
|
+ .ppp_epoch_irq = 0x00002470,
|
|
|
+ .ppp_debug_1 = 0x000025F0,
|
|
|
+ .ppp_debug_0 = 0x000025F4,
|
|
|
+ .ppp_test_bus_ctrl = 0x000025F8,
|
|
|
+ .ppp_spare = 0x000025FC,
|
|
|
+ .reg_update_cmd = 0x0000182C,
|
|
|
+};
|
|
|
+
|
|
|
+static struct cam_tfe_ppp_reg_data tfe770_ppp_reg_data = {
|
|
|
+ .sof_irq_mask = 0x00000000,
|
|
|
+ .epoch0_irq_mask = 0x00000000,
|
|
|
+ .epoch1_irq_mask = 0x00000000,
|
|
|
+ .eof_irq_mask = 0x00000000,
|
|
|
+ .subscribe_irq_mask = {
|
|
|
+ 0x00000000,
|
|
|
+ 0x00000000,
|
|
|
+ 0x00000000,
|
|
|
+ },
|
|
|
+ .enable_diagnostic_hw = 0x1,
|
|
|
+ .diag_sensor_sel = 0x4,
|
|
|
+ .diag_sensor_shift = 0x1,
|
|
|
+ .pdaf_path_en_shift = 24,
|
|
|
+ .lcr_dis_en_shift = 23,
|
|
|
+};
|
|
|
+
|
|
|
static struct cam_tfe_clc_hw_status tfe770_clc_hw_info[CAM_TFE_MAX_CLC] = {
|
|
|
{
|
|
|
.name = "CLC_CAMIF",
|
|
@@ -428,11 +460,16 @@ static struct cam_tfe_top_hw_info tfe770_top_hw_info = {
|
|
|
.reg_data = &tfe770_rdi2_reg_data,
|
|
|
},
|
|
|
},
|
|
|
+ .ppp_hw_info = {
|
|
|
+ .ppp_reg = &tfe770_ppp_reg,
|
|
|
+ .reg_data = &tfe770_ppp_reg_data,
|
|
|
+ },
|
|
|
.in_port = {
|
|
|
CAM_TFE_CAMIF_VER_1_0,
|
|
|
CAM_TFE_RDI_VER_1_0,
|
|
|
CAM_TFE_RDI_VER_1_0,
|
|
|
- CAM_TFE_RDI_VER_1_0
|
|
|
+ CAM_TFE_RDI_VER_1_0,
|
|
|
+ CAM_TFE_PDLIB_VER_1_0
|
|
|
},
|
|
|
.reg_dump_data = {
|
|
|
.num_reg_dump_entries = 19,
|
|
@@ -535,6 +572,12 @@ static struct cam_tfe_top_hw_info tfe770_top_hw_info = {
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
+ .num_path_port_map = 3,
|
|
|
+ .path_port_map = {
|
|
|
+ {CAM_ISP_HW_TFE_IN_PDLIB, CAM_ISP_TFE_OUT_RES_PD_LCR_STATS},
|
|
|
+ {CAM_ISP_HW_TFE_IN_PDLIB, CAM_ISP_TFE_OUT_RES_PD_PREPROCESSED},
|
|
|
+ {CAM_ISP_HW_TFE_IN_PDLIB, CAM_ISP_TFE_OUT_RES_PD_PARSED},
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static struct cam_tfe_bus_hw_info tfe770_bus_hw_info = {
|
|
@@ -1149,7 +1192,7 @@ static struct cam_tfe_bus_hw_info tfe770_bus_hw_info = {
|
|
|
.client_name = "PD PARSED",
|
|
|
},
|
|
|
},
|
|
|
- .num_out = 15,
|
|
|
+ .num_out = 18,
|
|
|
.tfe_out_hw_info = {
|
|
|
{
|
|
|
.tfe_out_id = CAM_TFE_BUS_TFE_OUT_RDI0,
|
|
@@ -1272,8 +1315,32 @@ static struct cam_tfe_bus_hw_info tfe770_bus_hw_info = {
|
|
|
.mid[0] = 24,
|
|
|
.mid[1] = 25,
|
|
|
},
|
|
|
+ {
|
|
|
+ .tfe_out_id = CAM_TFE_BUS_TFE_OUT_PD_LCR_STATS,
|
|
|
+ .max_width = -1,
|
|
|
+ .max_height = -1,
|
|
|
+ .composite_group = CAM_TFE_BUS_COMP_GRP_11,
|
|
|
+ .rup_group_id = CAM_TFE_BUS_RUP_GRP_4,
|
|
|
+ .mid[0] = 21,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .tfe_out_id = CAM_TFE_BUS_TFE_OUT_PD_PREPROCESSED,
|
|
|
+ .max_width = -1,
|
|
|
+ .max_height = -1,
|
|
|
+ .composite_group = CAM_TFE_BUS_COMP_GRP_11,
|
|
|
+ .rup_group_id = CAM_TFE_BUS_RUP_GRP_4,
|
|
|
+ .mid[0] = 20,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .tfe_out_id = CAM_TFE_BUS_TFE_OUT_PD_PARSED,
|
|
|
+ .max_width = -1,
|
|
|
+ .max_height = -1,
|
|
|
+ .composite_group = CAM_TFE_BUS_COMP_GRP_11,
|
|
|
+ .rup_group_id = CAM_TFE_BUS_RUP_GRP_4,
|
|
|
+ .mid[0] = 22,
|
|
|
+ },
|
|
|
},
|
|
|
- .num_comp_grp = 11,
|
|
|
+ .num_comp_grp = 12,
|
|
|
.max_wm_per_comp_grp = 3,
|
|
|
.comp_done_shift = 8,
|
|
|
.top_bus_wr_irq_shift = 1,
|
|
@@ -1331,9 +1398,9 @@ struct cam_tfe_hw_info cam_tfe770 = {
|
|
|
0x00000000,
|
|
|
},
|
|
|
.error_irq_mask = {
|
|
|
- 0x000F0F00,
|
|
|
+ 0x001F1F00,
|
|
|
0x00000000,
|
|
|
- 0x0000003F,
|
|
|
+ 0x000000FF,
|
|
|
},
|
|
|
.bus_reg_irq_mask = {
|
|
|
0x00000002,
|