msm: camera: isp: Add support for CSID 770
This change add support for - new CSID 770 HW - PDAF resource structure addition in header file. CRs-Fixed: 3387396 Change-Id: I85ce8a05039657bb7da251e9141e94c9d5d6843f Signed-off-by: Alok Chauhan <quic_alokc@quicinc.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
|
||||
@@ -8,6 +9,8 @@
|
||||
#include "cam_tfe_csid_core.h"
|
||||
#include "cam_tfe_csid530.h"
|
||||
#include "cam_tfe_csid640.h"
|
||||
#include "cam_tfe_csid640_210.h"
|
||||
#include "cam_tfe_csid770.h"
|
||||
#include "cam_tfe_csid_dev.h"
|
||||
#include "camera_main.h"
|
||||
|
||||
@@ -22,6 +25,14 @@ static const struct of_device_id cam_tfe_csid_dt_match[] = {
|
||||
.compatible = "qcom,csid640",
|
||||
.data = &cam_tfe_csid640_hw_info,
|
||||
},
|
||||
{
|
||||
.compatible = "qcom,csid640_210",
|
||||
.data = &cam_tfe_csid640_210_hw_info,
|
||||
},
|
||||
{
|
||||
.compatible = "qcom,csid770",
|
||||
.data = &cam_tfe_csid770_hw_info,
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
|
363
drivers/cam_isp/isp_hw_mgr/isp_hw/tfe_csid_hw/cam_tfe_csid770.h
Normal file
363
drivers/cam_isp/isp_hw_mgr/isp_hw/tfe_csid_hw/cam_tfe_csid770.h
Normal file
@@ -0,0 +1,363 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _CAM_TFE_CSID_770_H_
|
||||
#define _CAM_TFE_CSID_770_H_
|
||||
|
||||
#include "cam_tfe_csid_core.h"
|
||||
|
||||
#define CAM_TFE_CSID_VERSION_V770 0x70070000
|
||||
|
||||
static struct cam_tfe_csid_pxl_reg_offset cam_tfe_csid_770_ipp_reg_offset = {
|
||||
.csid_pxl_irq_status_addr = 0x30,
|
||||
.csid_pxl_irq_mask_addr = 0x34,
|
||||
.csid_pxl_irq_clear_addr = 0x38,
|
||||
.csid_pxl_irq_set_addr = 0x3c,
|
||||
|
||||
.csid_pxl_cfg0_addr = 0x200,
|
||||
.csid_pxl_cfg1_addr = 0x204,
|
||||
.csid_pxl_ctrl_addr = 0x208,
|
||||
.csid_pxl_frame_drop_pattern = 0x20c,
|
||||
.csid_pxl_frame_drop_period = 0x210,
|
||||
.csid_pxl_irq_subsample_pattern = 0x214,
|
||||
.csid_pxl_irq_subsample_period = 0x218,
|
||||
.csid_pxl_hcrop_addr = 0x21c,
|
||||
.csid_pxl_vcrop_addr = 0x220,
|
||||
.csid_pxl_rst_strobes_addr = 0x240,
|
||||
.csid_pxl_status_addr = 0x254,
|
||||
.csid_pxl_misr_val_addr = 0x258,
|
||||
.csid_pxl_format_measure_cfg0_addr = 0x270,
|
||||
.csid_pxl_format_measure_cfg1_addr = 0x274,
|
||||
.csid_pxl_format_measure0_addr = 0x278,
|
||||
.csid_pxl_format_measure1_addr = 0x27c,
|
||||
.csid_pxl_format_measure2_addr = 0x280,
|
||||
.csid_pxl_timestamp_curr0_sof_addr = 0x290,
|
||||
.csid_pxl_timestamp_curr1_sof_addr = 0x294,
|
||||
.csid_pxl_timestamp_perv0_sof_addr = 0x298,
|
||||
.csid_pxl_timestamp_perv1_sof_addr = 0x29c,
|
||||
.csid_pxl_timestamp_curr0_eof_addr = 0x2a0,
|
||||
.csid_pxl_timestamp_curr1_eof_addr = 0x2a4,
|
||||
.csid_pxl_timestamp_perv0_eof_addr = 0x2a8,
|
||||
.csid_pxl_timestamp_perv1_eof_addr = 0x2ac,
|
||||
.csid_pxl_err_recovery_cfg0_addr = 0x2d0,
|
||||
.csid_pxl_err_recovery_cfg1_addr = 0x2d4,
|
||||
.csid_pxl_err_recovery_cfg2_addr = 0x2d8,
|
||||
.csid_pxl_multi_vcdt_cfg0_addr = 0x2dc,
|
||||
|
||||
/* configurations */
|
||||
.pix_store_en_shift_val = 7,
|
||||
.early_eof_en_shift_val = 29,
|
||||
.halt_master_sel_shift = 4,
|
||||
.halt_mode_shift = 2,
|
||||
.halt_master_sel_master_val = 3,
|
||||
.halt_master_sel_slave_val = 0,
|
||||
.binning_supported = 3,
|
||||
.bin_qcfa_en_shift_val = 30,
|
||||
.bin_en_shift_val = 2,
|
||||
.is_multi_vc_dt_supported = true,
|
||||
.format_measure_en_shift_val = 0,
|
||||
.measure_en_hbi_vbi_cnt_val = 0xc,
|
||||
};
|
||||
|
||||
static struct cam_tfe_csid_pxl_reg_offset cam_tfe_csid_770_ppp_reg_offset = {
|
||||
.csid_pxl_irq_status_addr = 0xA0,
|
||||
.csid_pxl_irq_mask_addr = 0xA4,
|
||||
.csid_pxl_irq_clear_addr = 0xA8,
|
||||
.csid_pxl_irq_set_addr = 0xAc,
|
||||
|
||||
.csid_pxl_cfg0_addr = 0x700,
|
||||
.csid_pxl_cfg1_addr = 0x704,
|
||||
.csid_pxl_ctrl_addr = 0x708,
|
||||
.csid_pxl_frame_drop_pattern = 0x70c,
|
||||
.csid_pxl_frame_drop_period = 0x710,
|
||||
.csid_pxl_irq_subsample_pattern = 0x714,
|
||||
.csid_pxl_irq_subsample_period = 0x718,
|
||||
.csid_pxl_hcrop_addr = 0x71c,
|
||||
.csid_pxl_vcrop_addr = 0x720,
|
||||
.csid_pxl_rst_strobes_addr = 0x740,
|
||||
.csid_pxl_status_addr = 0x754,
|
||||
.csid_pxl_misr_val_addr = 0x758,
|
||||
.csid_pxl_format_measure_cfg0_addr = 0x770,
|
||||
.csid_pxl_format_measure_cfg1_addr = 0x774,
|
||||
.csid_pxl_format_measure0_addr = 0x778,
|
||||
.csid_pxl_format_measure1_addr = 0x77c,
|
||||
.csid_pxl_format_measure2_addr = 0x780,
|
||||
.csid_pxl_timestamp_curr0_sof_addr = 0x790,
|
||||
.csid_pxl_timestamp_curr1_sof_addr = 0x794,
|
||||
.csid_pxl_timestamp_perv0_sof_addr = 0x798,
|
||||
.csid_pxl_timestamp_perv1_sof_addr = 0x79c,
|
||||
.csid_pxl_timestamp_curr0_eof_addr = 0x7a0,
|
||||
.csid_pxl_timestamp_curr1_eof_addr = 0x7a4,
|
||||
.csid_pxl_timestamp_perv0_eof_addr = 0x7a8,
|
||||
.csid_pxl_timestamp_perv1_eof_addr = 0x7ac,
|
||||
.csid_pxl_ppp_sparse_pd_ext_cfg0 = 0x7c0,
|
||||
.csid_pxl_err_recovery_cfg0_addr = 0x7d0,
|
||||
.csid_pxl_err_recovery_cfg1_addr = 0x7d4,
|
||||
.csid_pxl_err_recovery_cfg2_addr = 0x7d8,
|
||||
.csid_pxl_multi_vcdt_cfg0_addr = 0x7dc,
|
||||
|
||||
/* configurations */
|
||||
.pix_store_en_shift_val = 7,
|
||||
.early_eof_en_shift_val = 29,
|
||||
.halt_master_sel_shift = 4,
|
||||
.halt_mode_shift = 2,
|
||||
.halt_master_sel_master_val = 3,
|
||||
.halt_master_sel_slave_val = 0,
|
||||
.binning_supported = 0,
|
||||
.bin_qcfa_en_shift_val = 30,
|
||||
.bin_en_shift_val = 2,
|
||||
.is_multi_vc_dt_supported = true,
|
||||
.format_measure_en_shift_val = 0,
|
||||
.measure_en_hbi_vbi_cnt_val = 0xc,
|
||||
};
|
||||
|
||||
static struct cam_tfe_csid_rdi_reg_offset cam_tfe_csid_770_rdi_0_reg_offset = {
|
||||
.csid_rdi_irq_status_addr = 0x40,
|
||||
.csid_rdi_irq_mask_addr = 0x44,
|
||||
.csid_rdi_irq_clear_addr = 0x48,
|
||||
.csid_rdi_irq_set_addr = 0x4c,
|
||||
|
||||
.csid_rdi_cfg0_addr = 0x300,
|
||||
.csid_rdi_cfg1_addr = 0x304,
|
||||
.csid_rdi_ctrl_addr = 0x308,
|
||||
.csid_rdi_frame_drop_pattern = 0x30c,
|
||||
.csid_rdi_frame_drop_period = 0x310,
|
||||
.csid_rdi_irq_subsample_pattern = 0x314,
|
||||
.csid_rdi_irq_subsample_period = 0x318,
|
||||
.csid_rdi_rst_strobes_addr = 0x340,
|
||||
.csid_rdi_status_addr = 0x350,
|
||||
.csid_rdi_misr_val0_addr = 0x354,
|
||||
.csid_rdi_misr_val1_addr = 0x358,
|
||||
.csid_rdi_misr_val2_addr = 0x35c,
|
||||
.csid_rdi_misr_val3_addr = 0x360,
|
||||
.csid_rdi_format_measure_cfg0_addr = 0x370,
|
||||
.csid_rdi_format_measure_cfg1_addr = 0x374,
|
||||
.csid_rdi_format_measure0_addr = 0x378,
|
||||
.csid_rdi_format_measure1_addr = 0x37c,
|
||||
.csid_rdi_format_measure2_addr = 0x380,
|
||||
.csid_rdi_timestamp_curr0_sof_addr = 0x390,
|
||||
.csid_rdi_timestamp_curr1_sof_addr = 0x394,
|
||||
.csid_rdi_timestamp_prev0_sof_addr = 0x398,
|
||||
.csid_rdi_timestamp_prev1_sof_addr = 0x39c,
|
||||
.csid_rdi_timestamp_curr0_eof_addr = 0x3a0,
|
||||
.csid_rdi_timestamp_curr1_eof_addr = 0x3a4,
|
||||
.csid_rdi_timestamp_prev0_eof_addr = 0x3a8,
|
||||
.csid_rdi_timestamp_prev1_eof_addr = 0x3ac,
|
||||
.csid_rdi_err_recovery_cfg0_addr = 0x3b0,
|
||||
.csid_rdi_err_recovery_cfg1_addr = 0x3b4,
|
||||
.csid_rdi_err_recovery_cfg2_addr = 0x3b8,
|
||||
.csid_rdi_byte_cntr_ping_addr = 0x3e0,
|
||||
.csid_rdi_byte_cntr_pong_addr = 0x3e4,
|
||||
.csid_rdi_multi_vcdt_cfg0_addr = 0x3bc,
|
||||
|
||||
/* configurations */
|
||||
.is_multi_vc_dt_supported = true,
|
||||
.format_measure_en_shift_val = 0,
|
||||
.measure_en_hbi_vbi_cnt_val = 0xc,
|
||||
};
|
||||
|
||||
static struct cam_tfe_csid_rdi_reg_offset cam_tfe_csid_770_rdi_1_reg_offset = {
|
||||
.csid_rdi_irq_status_addr = 0x50,
|
||||
.csid_rdi_irq_mask_addr = 0x54,
|
||||
.csid_rdi_irq_clear_addr = 0x58,
|
||||
.csid_rdi_irq_set_addr = 0x5c,
|
||||
|
||||
.csid_rdi_cfg0_addr = 0x400,
|
||||
.csid_rdi_cfg1_addr = 0x404,
|
||||
.csid_rdi_ctrl_addr = 0x408,
|
||||
.csid_rdi_frame_drop_pattern = 0x40c,
|
||||
.csid_rdi_frame_drop_period = 0x410,
|
||||
.csid_rdi_irq_subsample_pattern = 0x414,
|
||||
.csid_rdi_irq_subsample_period = 0x418,
|
||||
.csid_rdi_rst_strobes_addr = 0x440,
|
||||
.csid_rdi_status_addr = 0x450,
|
||||
.csid_rdi_misr_val0_addr = 0x454,
|
||||
.csid_rdi_misr_val1_addr = 0x458,
|
||||
.csid_rdi_misr_val2_addr = 0x45c,
|
||||
.csid_rdi_misr_val3_addr = 0x460,
|
||||
.csid_rdi_format_measure_cfg0_addr = 0x470,
|
||||
.csid_rdi_format_measure_cfg1_addr = 0x474,
|
||||
.csid_rdi_format_measure0_addr = 0x478,
|
||||
.csid_rdi_format_measure1_addr = 0x47c,
|
||||
.csid_rdi_format_measure2_addr = 0x480,
|
||||
.csid_rdi_timestamp_curr0_sof_addr = 0x490,
|
||||
.csid_rdi_timestamp_curr1_sof_addr = 0x494,
|
||||
.csid_rdi_timestamp_prev0_sof_addr = 0x498,
|
||||
.csid_rdi_timestamp_prev1_sof_addr = 0x49c,
|
||||
.csid_rdi_timestamp_curr0_eof_addr = 0x4a0,
|
||||
.csid_rdi_timestamp_curr1_eof_addr = 0x4a4,
|
||||
.csid_rdi_timestamp_prev0_eof_addr = 0x4a8,
|
||||
.csid_rdi_timestamp_prev1_eof_addr = 0x4ac,
|
||||
.csid_rdi_err_recovery_cfg0_addr = 0x4b0,
|
||||
.csid_rdi_err_recovery_cfg1_addr = 0x4b4,
|
||||
.csid_rdi_err_recovery_cfg2_addr = 0x4b8,
|
||||
.csid_rdi_byte_cntr_ping_addr = 0x4e0,
|
||||
.csid_rdi_byte_cntr_pong_addr = 0x4e4,
|
||||
.csid_rdi_multi_vcdt_cfg0_addr = 0x4bc,
|
||||
|
||||
/* configurations */
|
||||
.is_multi_vc_dt_supported = true,
|
||||
.format_measure_en_shift_val = 0,
|
||||
.measure_en_hbi_vbi_cnt_val = 0xc,
|
||||
};
|
||||
|
||||
static struct cam_tfe_csid_rdi_reg_offset cam_tfe_csid_770_rdi_2_reg_offset = {
|
||||
.csid_rdi_irq_status_addr = 0x60,
|
||||
.csid_rdi_irq_mask_addr = 0x64,
|
||||
.csid_rdi_irq_clear_addr = 0x68,
|
||||
.csid_rdi_irq_set_addr = 0x6c,
|
||||
|
||||
.csid_rdi_cfg0_addr = 0x500,
|
||||
.csid_rdi_cfg1_addr = 0x504,
|
||||
.csid_rdi_ctrl_addr = 0x508,
|
||||
.csid_rdi_frame_drop_pattern = 0x50c,
|
||||
.csid_rdi_frame_drop_period = 0x510,
|
||||
.csid_rdi_irq_subsample_pattern = 0x514,
|
||||
.csid_rdi_irq_subsample_period = 0x518,
|
||||
.csid_rdi_rst_strobes_addr = 0x540,
|
||||
.csid_rdi_status_addr = 0x550,
|
||||
.csid_rdi_misr_val0_addr = 0x554,
|
||||
.csid_rdi_misr_val1_addr = 0x558,
|
||||
.csid_rdi_misr_val2_addr = 0x55c,
|
||||
.csid_rdi_misr_val3_addr = 0x560,
|
||||
.csid_rdi_format_measure_cfg0_addr = 0x570,
|
||||
.csid_rdi_format_measure_cfg1_addr = 0x574,
|
||||
.csid_rdi_format_measure0_addr = 0x578,
|
||||
.csid_rdi_format_measure1_addr = 0x57c,
|
||||
.csid_rdi_format_measure2_addr = 0x580,
|
||||
.csid_rdi_timestamp_curr0_sof_addr = 0x590,
|
||||
.csid_rdi_timestamp_curr1_sof_addr = 0x594,
|
||||
.csid_rdi_timestamp_prev0_sof_addr = 0x598,
|
||||
.csid_rdi_timestamp_prev1_sof_addr = 0x59c,
|
||||
.csid_rdi_timestamp_curr0_eof_addr = 0x5a0,
|
||||
.csid_rdi_timestamp_curr1_eof_addr = 0x5a4,
|
||||
.csid_rdi_timestamp_prev0_eof_addr = 0x5a8,
|
||||
.csid_rdi_timestamp_prev1_eof_addr = 0x5ac,
|
||||
.csid_rdi_err_recovery_cfg0_addr = 0x5b0,
|
||||
.csid_rdi_err_recovery_cfg1_addr = 0x5b4,
|
||||
.csid_rdi_err_recovery_cfg2_addr = 0x5b8,
|
||||
.csid_rdi_byte_cntr_ping_addr = 0x5e0,
|
||||
.csid_rdi_byte_cntr_pong_addr = 0x5e4,
|
||||
.csid_rdi_multi_vcdt_cfg0_addr = 0x5bc,
|
||||
|
||||
/* configurations */
|
||||
.is_multi_vc_dt_supported = true,
|
||||
.format_measure_en_shift_val = 0,
|
||||
.measure_en_hbi_vbi_cnt_val = 0xc,
|
||||
};
|
||||
|
||||
static struct cam_tfe_csid_csi2_rx_reg_offset
|
||||
cam_tfe_csid_770_csi2_reg_offset = {
|
||||
.csid_csi2_rx_irq_status_addr = 0x20,
|
||||
.csid_csi2_rx_irq_mask_addr = 0x24,
|
||||
.csid_csi2_rx_irq_clear_addr = 0x28,
|
||||
.csid_csi2_rx_irq_set_addr = 0x2c,
|
||||
|
||||
/*CSI2 rx control */
|
||||
.phy_sel_base = 1,
|
||||
.csid_csi2_rx_cfg0_addr = 0x100,
|
||||
.csid_csi2_rx_cfg1_addr = 0x104,
|
||||
.csid_csi2_rx_capture_ctrl_addr = 0x108,
|
||||
.csid_csi2_rx_rst_strobes_addr = 0x110,
|
||||
.csid_csi2_rx_cap_unmap_long_pkt_hdr_0_addr = 0x120,
|
||||
.csid_csi2_rx_cap_unmap_long_pkt_hdr_1_addr = 0x124,
|
||||
.csid_csi2_rx_captured_short_pkt_0_addr = 0x128,
|
||||
.csid_csi2_rx_captured_short_pkt_1_addr = 0x12c,
|
||||
.csid_csi2_rx_captured_long_pkt_0_addr = 0x130,
|
||||
.csid_csi2_rx_captured_long_pkt_1_addr = 0x134,
|
||||
.csid_csi2_rx_captured_long_pkt_ftr_addr = 0x138,
|
||||
.csid_csi2_rx_captured_cphy_pkt_hdr_addr = 0x13c,
|
||||
.csid_csi2_rx_total_pkts_rcvd_addr = 0x160,
|
||||
.csid_csi2_rx_stats_ecc_addr = 0x164,
|
||||
.csid_csi2_rx_total_crc_err_addr = 0x168,
|
||||
|
||||
.phy_tpg_base_id = 0,
|
||||
.csi2_rst_srb_all = 0x3FFF,
|
||||
.csi2_rst_done_shift_val = 27,
|
||||
.csi2_irq_mask_all = 0xFFFFFFF,
|
||||
.csi2_misr_enable_shift_val = 6,
|
||||
.csi2_capture_long_pkt_en_shift = 0,
|
||||
.csi2_capture_short_pkt_en_shift = 1,
|
||||
.csi2_capture_cphy_pkt_en_shift = 2,
|
||||
.csi2_capture_long_pkt_dt_shift = 4,
|
||||
.csi2_capture_long_pkt_vc_shift = 10,
|
||||
.csi2_capture_short_pkt_vc_shift = 12,
|
||||
.csi2_capture_cphy_pkt_dt_shift = 14,
|
||||
.csi2_capture_cphy_pkt_vc_shift = 20,
|
||||
.csi2_rx_phy_num_mask = 0x7,
|
||||
.csi2_rx_long_pkt_hdr_rst_stb_shift = 0x1,
|
||||
.csi2_rx_short_pkt_hdr_rst_stb_shift = 0x2,
|
||||
.csi2_rx_cphy_pkt_hdr_rst_stb_shift = 0x3,
|
||||
};
|
||||
|
||||
static struct cam_tfe_csid_common_reg_offset
|
||||
cam_tfe_csid_770_cmn_reg_offset = {
|
||||
.csid_hw_version_addr = 0x0,
|
||||
.csid_cfg0_addr = 0x4,
|
||||
.csid_ctrl_addr = 0x8,
|
||||
.csid_rst_strobes_addr = 0x10,
|
||||
|
||||
.csid_test_bus_ctrl_addr = 0x14,
|
||||
.csid_top_irq_status_addr = 0x70,
|
||||
.csid_top_irq_mask_addr = 0x74,
|
||||
.csid_top_irq_clear_addr = 0x78,
|
||||
.csid_top_irq_set_addr = 0x7c,
|
||||
.csid_irq_cmd_addr = 0x80,
|
||||
|
||||
/*configurations */
|
||||
.major_version = 5,
|
||||
.minor_version = 3,
|
||||
.version_incr = 0,
|
||||
.num_rdis = 3,
|
||||
.num_pix = 1,
|
||||
.num_ppp = 1,
|
||||
.csid_reg_rst_stb = 1,
|
||||
.csid_rst_stb = 0x1e,
|
||||
.csid_rst_stb_sw_all = 0x1f,
|
||||
.ipp_path_rst_stb_all = 0x17,
|
||||
.ppp_path_rst_stb_all = 0x17,
|
||||
.rdi_path_rst_stb_all = 0x97,
|
||||
.path_rst_done_shift_val = 1,
|
||||
.path_en_shift_val = 31,
|
||||
.dt_id_shift_val = 27,
|
||||
.vc_shift_val = 22,
|
||||
.dt_shift_val = 16,
|
||||
.vc1_shift_val = 2,
|
||||
.dt1_shift_val = 7,
|
||||
.multi_vc_dt_en_shift_val = 0,
|
||||
.fmt_shift_val = 12,
|
||||
.plain_fmt_shit_val = 10,
|
||||
.crop_v_en_shift_val = 6,
|
||||
.crop_h_en_shift_val = 5,
|
||||
.crop_shift = 16,
|
||||
.ipp_irq_mask_all = 0x3FFFF,
|
||||
.ppp_irq_mask_all = 0x3FFFF,
|
||||
.rdi_irq_mask_all = 0x3FFFF,
|
||||
.top_tfe2_pix_pipe_fuse_reg = 0xFE4,
|
||||
.top_tfe2_fuse_reg = 0xFE8,
|
||||
.format_measure_support = true,
|
||||
.format_measure_height_shift_val = 16,
|
||||
.format_measure_height_mask_val = 0xe,
|
||||
.format_measure_width_mask_val = 0x10,
|
||||
};
|
||||
|
||||
static struct cam_tfe_csid_reg_offset cam_tfe_csid_770_reg_offset = {
|
||||
.cmn_reg = &cam_tfe_csid_770_cmn_reg_offset,
|
||||
.csi2_reg = &cam_tfe_csid_770_csi2_reg_offset,
|
||||
.ipp_reg = &cam_tfe_csid_770_ipp_reg_offset,
|
||||
.ppp_reg = &cam_tfe_csid_770_ppp_reg_offset,
|
||||
.rdi_reg = {
|
||||
&cam_tfe_csid_770_rdi_0_reg_offset,
|
||||
&cam_tfe_csid_770_rdi_1_reg_offset,
|
||||
&cam_tfe_csid_770_rdi_2_reg_offset,
|
||||
},
|
||||
};
|
||||
|
||||
static struct cam_tfe_csid_hw_info cam_tfe_csid770_hw_info = {
|
||||
.csid_reg = &cam_tfe_csid_770_reg_offset,
|
||||
.hw_dts_version = CAM_TFE_CSID_VERSION_V770,
|
||||
};
|
||||
|
||||
#endif /*_CAM_TFE_CSID_770_H_ */
|
@@ -56,8 +56,8 @@
|
||||
#define TFE_CSID_PATH_ERROR_PIX_COUNT BIT(13)
|
||||
#define TFE_CSID_PATH_ERROR_LINE_COUNT BIT(14)
|
||||
#define TFE_CSID_PATH_IPP_ERROR_CCIF_VIOLATION BIT(15)
|
||||
#define TFE_CSID_PATH_IPP_OVERFLOW_IRQ BIT(16)
|
||||
#define TFE_CSID_PATH_IPP_FRAME_DROP BIT(17)
|
||||
#define TFE_CSID_PATH_IPP_FRAME_DROP BIT(16)
|
||||
#define TFE_CSID_PATH_IPP_OVERFLOW_IRQ BIT(17)
|
||||
#define TFE_CSID_PATH_RDI_FRAME_DROP BIT(16)
|
||||
#define TFE_CSID_PATH_RDI_OVERFLOW_IRQ BIT(17)
|
||||
#define TFE_CSID_PATH_RDI_ERROR_CCIF_VIOLATION BIT(18)
|
||||
@@ -116,11 +116,20 @@ struct cam_tfe_csid_pxl_reg_offset {
|
||||
uint32_t csid_pxl_cfg0_addr;
|
||||
uint32_t csid_pxl_cfg1_addr;
|
||||
uint32_t csid_pxl_ctrl_addr;
|
||||
uint32_t csid_pxl_frame_drop_pattern;
|
||||
uint32_t csid_pxl_frame_drop_period;
|
||||
uint32_t csid_pxl_irq_subsample_pattern;
|
||||
uint32_t csid_pxl_irq_subsample_period;
|
||||
uint32_t csid_pxl_hcrop_addr;
|
||||
uint32_t csid_pxl_vcrop_addr;
|
||||
uint32_t csid_pxl_rst_strobes_addr;
|
||||
uint32_t csid_pxl_status_addr;
|
||||
uint32_t csid_pxl_misr_val_addr;
|
||||
uint32_t csid_pxl_format_measure_cfg0_addr;
|
||||
uint32_t csid_pxl_format_measure_cfg1_addr;
|
||||
uint32_t csid_pxl_format_measure0_addr;
|
||||
uint32_t csid_pxl_format_measure1_addr;
|
||||
uint32_t csid_pxl_format_measure2_addr;
|
||||
uint32_t csid_pxl_timestamp_curr0_sof_addr;
|
||||
uint32_t csid_pxl_timestamp_curr1_sof_addr;
|
||||
uint32_t csid_pxl_timestamp_perv0_sof_addr;
|
||||
@@ -129,15 +138,11 @@ struct cam_tfe_csid_pxl_reg_offset {
|
||||
uint32_t csid_pxl_timestamp_curr1_eof_addr;
|
||||
uint32_t csid_pxl_timestamp_perv0_eof_addr;
|
||||
uint32_t csid_pxl_timestamp_perv1_eof_addr;
|
||||
uint32_t csid_pxl_ppp_sparse_pd_ext_cfg0;
|
||||
uint32_t csid_pxl_err_recovery_cfg0_addr;
|
||||
uint32_t csid_pxl_err_recovery_cfg1_addr;
|
||||
uint32_t csid_pxl_err_recovery_cfg2_addr;
|
||||
uint32_t csid_pxl_multi_vcdt_cfg0_addr;
|
||||
uint32_t csid_pxl_format_measure_cfg0_addr;
|
||||
uint32_t csid_pxl_format_measure_cfg1_addr;
|
||||
uint32_t csid_pxl_format_measure0_addr;
|
||||
uint32_t csid_pxl_format_measure1_addr;
|
||||
uint32_t csid_pxl_format_measure2_addr;
|
||||
|
||||
/* configuration */
|
||||
uint32_t pix_store_en_shift_val;
|
||||
@@ -164,10 +169,21 @@ struct cam_tfe_csid_rdi_reg_offset {
|
||||
uint32_t csid_rdi_cfg0_addr;
|
||||
uint32_t csid_rdi_cfg1_addr;
|
||||
uint32_t csid_rdi_ctrl_addr;
|
||||
uint32_t csid_rdi_frame_drop_pattern;
|
||||
uint32_t csid_rdi_frame_drop_period;
|
||||
uint32_t csid_rdi_irq_subsample_pattern;
|
||||
uint32_t csid_rdi_irq_subsample_period;
|
||||
uint32_t csid_rdi_rst_strobes_addr;
|
||||
uint32_t csid_rdi_status_addr;
|
||||
uint32_t csid_rdi_misr_val0_addr;
|
||||
uint32_t csid_rdi_misr_val1_addr;
|
||||
uint32_t csid_rdi_misr_val2_addr;
|
||||
uint32_t csid_rdi_misr_val3_addr;
|
||||
uint32_t csid_rdi_format_measure_cfg0_addr;
|
||||
uint32_t csid_rdi_format_measure_cfg1_addr;
|
||||
uint32_t csid_rdi_format_measure0_addr;
|
||||
uint32_t csid_rdi_format_measure1_addr;
|
||||
uint32_t csid_rdi_format_measure2_addr;
|
||||
uint32_t csid_rdi_timestamp_curr0_sof_addr;
|
||||
uint32_t csid_rdi_timestamp_curr1_sof_addr;
|
||||
uint32_t csid_rdi_timestamp_prev0_sof_addr;
|
||||
@@ -182,11 +198,6 @@ struct cam_tfe_csid_rdi_reg_offset {
|
||||
uint32_t csid_rdi_byte_cntr_ping_addr;
|
||||
uint32_t csid_rdi_byte_cntr_pong_addr;
|
||||
uint32_t csid_rdi_multi_vcdt_cfg0_addr;
|
||||
uint32_t csid_rdi_format_measure_cfg0_addr;
|
||||
uint32_t csid_rdi_format_measure_cfg1_addr;
|
||||
uint32_t csid_rdi_format_measure0_addr;
|
||||
uint32_t csid_rdi_format_measure1_addr;
|
||||
uint32_t csid_rdi_format_measure2_addr;
|
||||
|
||||
/* configuration */
|
||||
uint32_t packing_format;
|
||||
@@ -259,10 +270,12 @@ struct cam_tfe_csid_common_reg_offset {
|
||||
uint32_t version_incr;
|
||||
uint32_t num_rdis;
|
||||
uint32_t num_pix;
|
||||
uint32_t num_ppp;
|
||||
uint32_t csid_reg_rst_stb;
|
||||
uint32_t csid_rst_stb;
|
||||
uint32_t csid_rst_stb_sw_all;
|
||||
uint32_t ipp_path_rst_stb_all;
|
||||
uint32_t ppp_path_rst_stb_all;
|
||||
uint32_t rdi_path_rst_stb_all;
|
||||
uint32_t path_rst_done_shift_val;
|
||||
uint32_t path_en_shift_val;
|
||||
@@ -278,6 +291,7 @@ struct cam_tfe_csid_common_reg_offset {
|
||||
uint32_t crop_h_en_shift_val;
|
||||
uint32_t crop_shift;
|
||||
uint32_t ipp_irq_mask_all;
|
||||
uint32_t ppp_irq_mask_all;
|
||||
uint32_t rdi_irq_mask_all;
|
||||
uint32_t top_tfe2_pix_pipe_fuse_reg;
|
||||
uint32_t top_tfe2_fuse_reg;
|
||||
@@ -301,6 +315,7 @@ struct cam_tfe_csid_reg_offset {
|
||||
const struct cam_tfe_csid_common_reg_offset *cmn_reg;
|
||||
const struct cam_tfe_csid_csi2_rx_reg_offset *csi2_reg;
|
||||
const struct cam_tfe_csid_pxl_reg_offset *ipp_reg;
|
||||
const struct cam_tfe_csid_pxl_reg_offset *ppp_reg;
|
||||
const struct cam_tfe_csid_rdi_reg_offset *rdi_reg[CAM_TFE_CSID_RDI_MAX];
|
||||
};
|
||||
|
||||
@@ -453,13 +468,13 @@ struct cam_csid_evt_payload {
|
||||
* @in_res_id: csid in resource type
|
||||
* @csi2_rx_cfg: csi2 rx decoder configuration for csid
|
||||
* @csi2_rx_reserve_cnt: csi2 reservations count value
|
||||
* pxl_pipe_enable: flag to specify if the hardware has IPP
|
||||
* @ipp_res: image pixel path resource
|
||||
* @rdi_res: raw dump image path resources
|
||||
* @cid_res: cid resources values
|
||||
* @csid_top_reset_complete: csid top reset completion
|
||||
* @csid_csi2_reset_complete: csi2 reset completion
|
||||
* @csid_ipp_reset_complete: ipp reset completion
|
||||
* @csid_ppp_complete: ppp reset completion
|
||||
* @csid_rdin_reset_complete: rdi n completion
|
||||
* @csid_debug: csid debug information to enable the SOT, EOT,
|
||||
* SOF, EOF, measure etc in the csid hw
|
||||
|
Reference in New Issue
Block a user