diff options
Diffstat (limited to 'drivers/media/i2c/smiapp/smiapp-limits.c')
-rw-r--r-- | drivers/media/i2c/smiapp/smiapp-limits.c | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/drivers/media/i2c/smiapp/smiapp-limits.c b/drivers/media/i2c/smiapp/smiapp-limits.c new file mode 100644 index 000000000000..fb2f81ad8c3b --- /dev/null +++ b/drivers/media/i2c/smiapp/smiapp-limits.c | |||
@@ -0,0 +1,132 @@ | |||
1 | /* | ||
2 | * drivers/media/i2c/smiapp/smiapp-limits.c | ||
3 | * | ||
4 | * Generic driver for SMIA/SMIA++ compliant camera modules | ||
5 | * | ||
6 | * Copyright (C) 2011--2012 Nokia Corporation | ||
7 | * Contact: Sakari Ailus <sakari.ailus@maxwell.research.nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License | ||
11 | * version 2 as published by the Free Software Foundation. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, but | ||
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
16 | * General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
21 | * 02110-1301 USA | ||
22 | * | ||
23 | */ | ||
24 | |||
25 | #include "smiapp.h" | ||
26 | |||
27 | struct smiapp_reg_limits smiapp_reg_limits[] = { | ||
28 | { SMIAPP_REG_U16_ANALOGUE_GAIN_CAPABILITY, "analogue_gain_capability" }, /* 0 */ | ||
29 | { SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_MIN, "analogue_gain_code_min" }, | ||
30 | { SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_MAX, "analogue_gain_code_max" }, | ||
31 | { SMIAPP_REG_U8_THS_ZERO_MIN, "ths_zero_min" }, | ||
32 | { SMIAPP_REG_U8_TCLK_TRAIL_MIN, "tclk_trail_min" }, | ||
33 | { SMIAPP_REG_U16_INTEGRATION_TIME_CAPABILITY, "integration_time_capability" }, /* 5 */ | ||
34 | { SMIAPP_REG_U16_COARSE_INTEGRATION_TIME_MIN, "coarse_integration_time_min" }, | ||
35 | { SMIAPP_REG_U16_COARSE_INTEGRATION_TIME_MAX_MARGIN, "coarse_integration_time_max_margin" }, | ||
36 | { SMIAPP_REG_U16_FINE_INTEGRATION_TIME_MIN, "fine_integration_time_min" }, | ||
37 | { SMIAPP_REG_U16_FINE_INTEGRATION_TIME_MAX_MARGIN, "fine_integration_time_max_margin" }, | ||
38 | { SMIAPP_REG_U16_DIGITAL_GAIN_CAPABILITY, "digital_gain_capability" }, /* 10 */ | ||
39 | { SMIAPP_REG_U16_DIGITAL_GAIN_MIN, "digital_gain_min" }, | ||
40 | { SMIAPP_REG_U16_DIGITAL_GAIN_MAX, "digital_gain_max" }, | ||
41 | { SMIAPP_REG_F32_MIN_EXT_CLK_FREQ_HZ, "min_ext_clk_freq_hz" }, | ||
42 | { SMIAPP_REG_F32_MAX_EXT_CLK_FREQ_HZ, "max_ext_clk_freq_hz" }, | ||
43 | { SMIAPP_REG_U16_MIN_PRE_PLL_CLK_DIV, "min_pre_pll_clk_div" }, /* 15 */ | ||
44 | { SMIAPP_REG_U16_MAX_PRE_PLL_CLK_DIV, "max_pre_pll_clk_div" }, | ||
45 | { SMIAPP_REG_F32_MIN_PLL_IP_FREQ_HZ, "min_pll_ip_freq_hz" }, | ||
46 | { SMIAPP_REG_F32_MAX_PLL_IP_FREQ_HZ, "max_pll_ip_freq_hz" }, | ||
47 | { SMIAPP_REG_U16_MIN_PLL_MULTIPLIER, "min_pll_multiplier" }, | ||
48 | { SMIAPP_REG_U16_MAX_PLL_MULTIPLIER, "max_pll_multiplier" }, /* 20 */ | ||
49 | { SMIAPP_REG_F32_MIN_PLL_OP_FREQ_HZ, "min_pll_op_freq_hz" }, | ||
50 | { SMIAPP_REG_F32_MAX_PLL_OP_FREQ_HZ, "max_pll_op_freq_hz" }, | ||
51 | { SMIAPP_REG_U16_MIN_VT_SYS_CLK_DIV, "min_vt_sys_clk_div" }, | ||
52 | { SMIAPP_REG_U16_MAX_VT_SYS_CLK_DIV, "max_vt_sys_clk_div" }, | ||
53 | { SMIAPP_REG_F32_MIN_VT_SYS_CLK_FREQ_HZ, "min_vt_sys_clk_freq_hz" }, /* 25 */ | ||
54 | { SMIAPP_REG_F32_MAX_VT_SYS_CLK_FREQ_HZ, "max_vt_sys_clk_freq_hz" }, | ||
55 | { SMIAPP_REG_F32_MIN_VT_PIX_CLK_FREQ_HZ, "min_vt_pix_clk_freq_hz" }, | ||
56 | { SMIAPP_REG_F32_MAX_VT_PIX_CLK_FREQ_HZ, "max_vt_pix_clk_freq_hz" }, | ||
57 | { SMIAPP_REG_U16_MIN_VT_PIX_CLK_DIV, "min_vt_pix_clk_div" }, | ||
58 | { SMIAPP_REG_U16_MAX_VT_PIX_CLK_DIV, "max_vt_pix_clk_div" }, /* 30 */ | ||
59 | { SMIAPP_REG_U16_MIN_FRAME_LENGTH_LINES, "min_frame_length_lines" }, | ||
60 | { SMIAPP_REG_U16_MAX_FRAME_LENGTH_LINES, "max_frame_length_lines" }, | ||
61 | { SMIAPP_REG_U16_MIN_LINE_LENGTH_PCK, "min_line_length_pck" }, | ||
62 | { SMIAPP_REG_U16_MAX_LINE_LENGTH_PCK, "max_line_length_pck" }, | ||
63 | { SMIAPP_REG_U16_MIN_LINE_BLANKING_PCK, "min_line_blanking_pck" }, /* 35 */ | ||
64 | { SMIAPP_REG_U16_MIN_FRAME_BLANKING_LINES, "min_frame_blanking_lines" }, | ||
65 | { SMIAPP_REG_U8_MIN_LINE_LENGTH_PCK_STEP_SIZE, "min_line_length_pck_step_size" }, | ||
66 | { SMIAPP_REG_U16_MIN_OP_SYS_CLK_DIV, "min_op_sys_clk_div" }, | ||
67 | { SMIAPP_REG_U16_MAX_OP_SYS_CLK_DIV, "max_op_sys_clk_div" }, | ||
68 | { SMIAPP_REG_F32_MIN_OP_SYS_CLK_FREQ_HZ, "min_op_sys_clk_freq_hz" }, /* 40 */ | ||
69 | { SMIAPP_REG_F32_MAX_OP_SYS_CLK_FREQ_HZ, "max_op_sys_clk_freq_hz" }, | ||
70 | { SMIAPP_REG_U16_MIN_OP_PIX_CLK_DIV, "min_op_pix_clk_div" }, | ||
71 | { SMIAPP_REG_U16_MAX_OP_PIX_CLK_DIV, "max_op_pix_clk_div" }, | ||
72 | { SMIAPP_REG_F32_MIN_OP_PIX_CLK_FREQ_HZ, "min_op_pix_clk_freq_hz" }, | ||
73 | { SMIAPP_REG_F32_MAX_OP_PIX_CLK_FREQ_HZ, "max_op_pix_clk_freq_hz" }, /* 45 */ | ||
74 | { SMIAPP_REG_U16_X_ADDR_MIN, "x_addr_min" }, | ||
75 | { SMIAPP_REG_U16_Y_ADDR_MIN, "y_addr_min" }, | ||
76 | { SMIAPP_REG_U16_X_ADDR_MAX, "x_addr_max" }, | ||
77 | { SMIAPP_REG_U16_Y_ADDR_MAX, "y_addr_max" }, | ||
78 | { SMIAPP_REG_U16_MIN_X_OUTPUT_SIZE, "min_x_output_size" }, /* 50 */ | ||
79 | { SMIAPP_REG_U16_MIN_Y_OUTPUT_SIZE, "min_y_output_size" }, | ||
80 | { SMIAPP_REG_U16_MAX_X_OUTPUT_SIZE, "max_x_output_size" }, | ||
81 | { SMIAPP_REG_U16_MAX_Y_OUTPUT_SIZE, "max_y_output_size" }, | ||
82 | { SMIAPP_REG_U16_MIN_EVEN_INC, "min_even_inc" }, | ||
83 | { SMIAPP_REG_U16_MAX_EVEN_INC, "max_even_inc" }, /* 55 */ | ||
84 | { SMIAPP_REG_U16_MIN_ODD_INC, "min_odd_inc" }, | ||
85 | { SMIAPP_REG_U16_MAX_ODD_INC, "max_odd_inc" }, | ||
86 | { SMIAPP_REG_U16_SCALING_CAPABILITY, "scaling_capability" }, | ||
87 | { SMIAPP_REG_U16_SCALER_M_MIN, "scaler_m_min" }, | ||
88 | { SMIAPP_REG_U16_SCALER_M_MAX, "scaler_m_max" }, /* 60 */ | ||
89 | { SMIAPP_REG_U16_SCALER_N_MIN, "scaler_n_min" }, | ||
90 | { SMIAPP_REG_U16_SCALER_N_MAX, "scaler_n_max" }, | ||
91 | { SMIAPP_REG_U16_SPATIAL_SAMPLING_CAPABILITY, "spatial_sampling_capability" }, | ||
92 | { SMIAPP_REG_U8_DIGITAL_CROP_CAPABILITY, "digital_crop_capability" }, | ||
93 | { SMIAPP_REG_U16_COMPRESSION_CAPABILITY, "compression_capability" }, /* 65 */ | ||
94 | { SMIAPP_REG_U8_FIFO_SUPPORT_CAPABILITY, "fifo_support_capability" }, | ||
95 | { SMIAPP_REG_U8_DPHY_CTRL_CAPABILITY, "dphy_ctrl_capability" }, | ||
96 | { SMIAPP_REG_U8_CSI_LANE_MODE_CAPABILITY, "csi_lane_mode_capability" }, | ||
97 | { SMIAPP_REG_U8_CSI_SIGNALLING_MODE_CAPABILITY, "csi_signalling_mode_capability" }, | ||
98 | { SMIAPP_REG_U8_FAST_STANDBY_CAPABILITY, "fast_standby_capability" }, /* 70 */ | ||
99 | { SMIAPP_REG_U8_CCI_ADDRESS_CONTROL_CAPABILITY, "cci_address_control_capability" }, | ||
100 | { SMIAPP_REG_U32_MAX_PER_LANE_BITRATE_1_LANE_MODE_MBPS, "max_per_lane_bitrate_1_lane_mode_mbps" }, | ||
101 | { SMIAPP_REG_U32_MAX_PER_LANE_BITRATE_2_LANE_MODE_MBPS, "max_per_lane_bitrate_2_lane_mode_mbps" }, | ||
102 | { SMIAPP_REG_U32_MAX_PER_LANE_BITRATE_3_LANE_MODE_MBPS, "max_per_lane_bitrate_3_lane_mode_mbps" }, | ||
103 | { SMIAPP_REG_U32_MAX_PER_LANE_BITRATE_4_LANE_MODE_MBPS, "max_per_lane_bitrate_4_lane_mode_mbps" }, /* 75 */ | ||
104 | { SMIAPP_REG_U8_TEMP_SENSOR_CAPABILITY, "temp_sensor_capability" }, | ||
105 | { SMIAPP_REG_U16_MIN_FRAME_LENGTH_LINES_BIN, "min_frame_length_lines_bin" }, | ||
106 | { SMIAPP_REG_U16_MAX_FRAME_LENGTH_LINES_BIN, "max_frame_length_lines_bin" }, | ||
107 | { SMIAPP_REG_U16_MIN_LINE_LENGTH_PCK_BIN, "min_line_length_pck_bin" }, | ||
108 | { SMIAPP_REG_U16_MAX_LINE_LENGTH_PCK_BIN, "max_line_length_pck_bin" }, /* 80 */ | ||
109 | { SMIAPP_REG_U16_MIN_LINE_BLANKING_PCK_BIN, "min_line_blanking_pck_bin" }, | ||
110 | { SMIAPP_REG_U16_FINE_INTEGRATION_TIME_MIN_BIN, "fine_integration_time_min_bin" }, | ||
111 | { SMIAPP_REG_U16_FINE_INTEGRATION_TIME_MAX_MARGIN_BIN, "fine_integration_time_max_margin_bin" }, | ||
112 | { SMIAPP_REG_U8_BINNING_CAPABILITY, "binning_capability" }, | ||
113 | { SMIAPP_REG_U8_BINNING_WEIGHTING_CAPABILITY, "binning_weighting_capability" }, /* 85 */ | ||
114 | { SMIAPP_REG_U8_DATA_TRANSFER_IF_CAPABILITY, "data_transfer_if_capability" }, | ||
115 | { SMIAPP_REG_U8_SHADING_CORRECTION_CAPABILITY, "shading_correction_capability" }, | ||
116 | { SMIAPP_REG_U8_GREEN_IMBALANCE_CAPABILITY, "green_imbalance_capability" }, | ||
117 | { SMIAPP_REG_U8_BLACK_LEVEL_CAPABILITY, "black_level_capability" }, | ||
118 | { SMIAPP_REG_U8_MODULE_SPECIFIC_CORRECTION_CAPABILITY, "module_specific_correction_capability" }, /* 90 */ | ||
119 | { SMIAPP_REG_U16_DEFECT_CORRECTION_CAPABILITY, "defect_correction_capability" }, | ||
120 | { SMIAPP_REG_U16_DEFECT_CORRECTION_CAPABILITY_2, "defect_correction_capability_2" }, | ||
121 | { SMIAPP_REG_U8_EDOF_CAPABILITY, "edof_capability" }, | ||
122 | { SMIAPP_REG_U8_COLOUR_FEEDBACK_CAPABILITY, "colour_feedback_capability" }, | ||
123 | { SMIAPP_REG_U8_ESTIMATION_MODE_CAPABILITY, "estimation_mode_capability" }, /* 95 */ | ||
124 | { SMIAPP_REG_U8_ESTIMATION_ZONE_CAPABILITY, "estimation_zone_capability" }, | ||
125 | { SMIAPP_REG_U16_CAPABILITY_TRDY_MIN, "capability_trdy_min" }, | ||
126 | { SMIAPP_REG_U8_FLASH_MODE_CAPABILITY, "flash_mode_capability" }, | ||
127 | { SMIAPP_REG_U8_ACTUATOR_CAPABILITY, "actuator_capability" }, | ||
128 | { SMIAPP_REG_U8_BRACKETING_LUT_CAPABILITY_1, "bracketing_lut_capability_1" }, /* 100 */ | ||
129 | { SMIAPP_REG_U8_BRACKETING_LUT_CAPABILITY_2, "bracketing_lut_capability_2" }, | ||
130 | { SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_STEP, "analogue_gain_code_step" }, | ||
131 | { 0, NULL }, | ||
132 | }; | ||