diff options
Diffstat (limited to 'drivers/staging/media/atomisp/i2c/imx/imx227.h')
-rw-r--r-- | drivers/staging/media/atomisp/i2c/imx/imx227.h | 726 |
1 files changed, 726 insertions, 0 deletions
diff --git a/drivers/staging/media/atomisp/i2c/imx/imx227.h b/drivers/staging/media/atomisp/i2c/imx/imx227.h new file mode 100644 index 0000000..10e5b86 --- /dev/null +++ b/drivers/staging/media/atomisp/i2c/imx/imx227.h @@ -0,0 +1,726 @@ +#ifndef __IMX227_H__ +#define __IMX227_H__ + +#include "common.h" + +#define IMX227_EMBEDDED_DATA_LINE_NUM 2 +#define IMX227_OUTPUT_DATA_FORMAT_REG 0x0112 +#define IMX227_OUTPUT_FORMAT_RAW10 0x0a0a + +/* AE Bracketing Registers */ +#define IMX227_BRACKETING_LUT_MODE_BIT_CONTINUE_STREAMING 0x1 +#define IMX227_BRACKETING_LUT_MODE_BIT_LOOP_MODE 0x2 + +#define IMX227_BRACKETING_LUT_CONTROL 0x0E00 +#define IMX227_BRACKETING_LUT_MODE 0x0E01 +#define IMX227_BRACKETING_LUT_ENTRY_CONTROL 0x0E02 + +/* + * The imx135 embedded data info: + * embedded data line num: 2 + * line 0 effective data size(byte): 76 + * line 1 effective data size(byte): 113 + */ +static const uint32_t +imx227_embedded_effective_size[IMX227_EMBEDDED_DATA_LINE_NUM] = {160, 62}; + +/************************** settings for imx *************************/ +/* Full Output Mode */ +static struct imx_reg const imx_STILL_6_5M_25fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x6259, 0x06}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xd0}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3f}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + +/* 4:3 Output Mode */ +static struct imx_reg const imx_STILL_5_5M_3X4_30fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x0344, 0x00}, + {IMX_8BIT, 0x0345, 0xb0}, + {IMX_8BIT, 0x0346, 0x00}, + {IMX_8BIT, 0x0347, 0x00}, + {IMX_8BIT, 0x0348, 0x08}, + {IMX_8BIT, 0x0349, 0xaf}, + {IMX_8BIT, 0x034a, 0x0a}, + {IMX_8BIT, 0x034b, 0x9f}, + {IMX_8BIT, 0x034c, 0x08}, + {IMX_8BIT, 0x034d, 0x00}, + {IMX_8BIT, 0x034e, 0x0a}, + {IMX_8BIT, 0x034f, 0xa0}, + + {IMX_8BIT, 0x6259, 0x05}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xd8}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3f}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + +/* Square Output Mode */ +static struct imx_reg const imx_STILL_5_7M_1X1_30fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x0344, 0x00}, + {IMX_8BIT, 0x0345, 0x00}, + {IMX_8BIT, 0x0346, 0x00}, + {IMX_8BIT, 0x0347, 0xa0}, + {IMX_8BIT, 0x0348, 0x09}, + {IMX_8BIT, 0x0349, 0x5f}, + {IMX_8BIT, 0x034a, 0x09}, + {IMX_8BIT, 0x034b, 0xff}, + {IMX_8BIT, 0x034c, 0x09}, + {IMX_8BIT, 0x034d, 0x60}, + {IMX_8BIT, 0x034e, 0x09}, + {IMX_8BIT, 0x034f, 0x60}, + + {IMX_8BIT, 0x6259, 0x06}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xd4}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3f}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + +/* Full Frame 1080P Mode (use ISP scaler)*/ +static struct imx_reg const imx_VIDEO_4M_9X16_30fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x6259, 0x05}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xdc}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3f}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + +/* Cropped 1080P Mode */ +static struct imx_reg const imx_VIDEO_2M_9X16_45fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x0112, 0x0a}, + {IMX_8BIT, 0x0113, 0x0a}, + {IMX_8BIT, 0x0344, 0x02}, + {IMX_8BIT, 0x0345, 0x8a}, + {IMX_8BIT, 0x0346, 0x01}, + {IMX_8BIT, 0x0347, 0x88}, + {IMX_8BIT, 0x0348, 0x06}, + {IMX_8BIT, 0x0349, 0xd1}, + {IMX_8BIT, 0x034a, 0x09}, + {IMX_8BIT, 0x034b, 0x17}, + {IMX_8BIT, 0x034c, 0x04}, + {IMX_8BIT, 0x034d, 0x48}, + {IMX_8BIT, 0x034e, 0x07}, + {IMX_8BIT, 0x034f, 0x90}, + + {IMX_8BIT, 0x0380, 0x00}, + {IMX_8BIT, 0x0381, 0x01}, + {IMX_8BIT, 0x0382, 0x00}, + {IMX_8BIT, 0x0383, 0x01}, + {IMX_8BIT, 0x0384, 0x00}, + {IMX_8BIT, 0x0385, 0x01}, + {IMX_8BIT, 0x0386, 0x00}, + {IMX_8BIT, 0x0387, 0x01}, + + {IMX_8BIT, 0x0408, 0x00}, + {IMX_8BIT, 0x0409, 0x00}, + {IMX_8BIT, 0x040a, 0x00}, + {IMX_8BIT, 0x040b, 0x00}, + {IMX_8BIT, 0x040c, 0x04}, + {IMX_8BIT, 0x040d, 0x48}, + {IMX_8BIT, 0x040e, 0x07}, + {IMX_8BIT, 0x040f, 0x90}, + + {IMX_8BIT, 0x0900, 0x00}, + {IMX_8BIT, 0x0901, 0x00}, + + {IMX_8BIT, 0x6259, 0x05}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xdc}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3c}, /* preset_en */ + + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + +/* Moment mode */ +static struct imx_reg const imx_VIDEO_1_3M_3X4_60fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x6259, 0x05}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xd9}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3f}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + +/* High Speed 3:4 mode */ +static struct imx_reg const imx_VIDEO_VGA_3X4_120fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x9004, 0xca}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3f}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + + +/* Binned 720P mode */ +static struct imx_reg const imx_VIDEO_1M_9X16_60fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x0112, 0x0a}, + {IMX_8BIT, 0x0113, 0x0a}, + {IMX_8BIT, 0x0344, 0x01}, + {IMX_8BIT, 0x0345, 0xd0}, + {IMX_8BIT, 0x0346, 0x00}, + {IMX_8BIT, 0x0347, 0x40}, + {IMX_8BIT, 0x0348, 0x07}, + {IMX_8BIT, 0x0349, 0x8f}, + {IMX_8BIT, 0x034a, 0x0a}, + {IMX_8BIT, 0x034b, 0x5f}, + {IMX_8BIT, 0x034c, 0x02}, + {IMX_8BIT, 0x034d, 0xe0}, + {IMX_8BIT, 0x034e, 0x05}, + {IMX_8BIT, 0x034f, 0x10}, + + {IMX_8BIT, 0x0380, 0x00}, + {IMX_8BIT, 0x0381, 0x01}, + {IMX_8BIT, 0x0382, 0x00}, + {IMX_8BIT, 0x0383, 0x01}, + {IMX_8BIT, 0x0384, 0x00}, + {IMX_8BIT, 0x0385, 0x01}, + {IMX_8BIT, 0x0386, 0x00}, + {IMX_8BIT, 0x0387, 0x01}, + + {IMX_8BIT, 0x0408, 0x00}, + {IMX_8BIT, 0x0409, 0x00}, + {IMX_8BIT, 0x040a, 0x00}, + {IMX_8BIT, 0x040b, 0x00}, + {IMX_8BIT, 0x040c, 0x02}, + {IMX_8BIT, 0x040d, 0xe0}, + {IMX_8BIT, 0x040e, 0x05}, + {IMX_8BIT, 0x040f, 0x10}, + + {IMX_8BIT, 0x0900, 0x01}, + {IMX_8BIT, 0x0901, 0x22}, + + {IMX_8BIT, 0x6259, 0x05}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xdd}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3c}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + +/* Binned 496x868 mode */ +static struct imx_reg const imx_VIDEO_496x868_30fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x0112, 0x0a}, + {IMX_8BIT, 0x0113, 0x0a}, + {IMX_8BIT, 0x0344, 0x02}, + {IMX_8BIT, 0x0345, 0xc0}, + {IMX_8BIT, 0x0346, 0x01}, + {IMX_8BIT, 0x0347, 0xec}, + {IMX_8BIT, 0x0348, 0x06}, + {IMX_8BIT, 0x0349, 0x9f}, + {IMX_8BIT, 0x034a, 0x08}, + {IMX_8BIT, 0x034b, 0xb3}, + {IMX_8BIT, 0x034c, 0x01}, + {IMX_8BIT, 0x034d, 0xf0}, + {IMX_8BIT, 0x034e, 0x03}, + {IMX_8BIT, 0x034f, 0x64}, + + {IMX_8BIT, 0x0380, 0x00}, + {IMX_8BIT, 0x0381, 0x01}, + {IMX_8BIT, 0x0382, 0x00}, + {IMX_8BIT, 0x0383, 0x01}, + {IMX_8BIT, 0x0384, 0x00}, + {IMX_8BIT, 0x0385, 0x01}, + {IMX_8BIT, 0x0386, 0x00}, + {IMX_8BIT, 0x0387, 0x01}, + + {IMX_8BIT, 0x0408, 0x00}, + {IMX_8BIT, 0x0409, 0x00}, + {IMX_8BIT, 0x040a, 0x00}, + {IMX_8BIT, 0x040b, 0x00}, + {IMX_8BIT, 0x040c, 0x01}, + {IMX_8BIT, 0x040d, 0xf0}, + {IMX_8BIT, 0x040e, 0x03}, + {IMX_8BIT, 0x040f, 0x64}, + + {IMX_8BIT, 0x0900, 0x01}, + {IMX_8BIT, 0x0901, 0x22}, + + {IMX_8BIT, 0x6259, 0x05}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xdd}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3c}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + + +/* Hangout mode */ +static struct imx_reg const imx_PREVIEW_374X652_30fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x0112, 0x0a}, + {IMX_8BIT, 0x0113, 0x0a}, + {IMX_8BIT, 0x0344, 0x01}, + {IMX_8BIT, 0x0345, 0xc0}, + {IMX_8BIT, 0x0346, 0x00}, + {IMX_8BIT, 0x0347, 0x30}, + {IMX_8BIT, 0x0348, 0x07}, + {IMX_8BIT, 0x0349, 0x9f}, + {IMX_8BIT, 0x034a, 0x0a}, + {IMX_8BIT, 0x034b, 0x6f}, + {IMX_8BIT, 0x034c, 0x01}, + {IMX_8BIT, 0x034d, 0x78}, + {IMX_8BIT, 0x034e, 0x02}, + {IMX_8BIT, 0x034f, 0x90}, + + {IMX_8BIT, 0x0380, 0x00}, + {IMX_8BIT, 0x0381, 0x01}, + {IMX_8BIT, 0x0382, 0x00}, + {IMX_8BIT, 0x0383, 0x03}, + {IMX_8BIT, 0x0384, 0x00}, + {IMX_8BIT, 0x0385, 0x01}, + {IMX_8BIT, 0x0386, 0x00}, + {IMX_8BIT, 0x0387, 0x03}, + + {IMX_8BIT, 0x0408, 0x00}, + {IMX_8BIT, 0x0409, 0x00}, + {IMX_8BIT, 0x040a, 0x00}, + {IMX_8BIT, 0x040b, 0x02}, + {IMX_8BIT, 0x040c, 0x01}, + {IMX_8BIT, 0x040d, 0x76}, + {IMX_8BIT, 0x040e, 0x02}, + {IMX_8BIT, 0x040f, 0x8c}, + + {IMX_8BIT, 0x0900, 0x01}, + {IMX_8BIT, 0x0901, 0x22}, + + {IMX_8BIT, 0x6259, 0x05}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xde}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3c}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + +static struct imx_reg const imx_VIDEO_NHD_9X16_30fps[] = { + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x0112, 0x0a}, + {IMX_8BIT, 0x0113, 0x0a}, + {IMX_8BIT, 0x0344, 0x01}, + {IMX_8BIT, 0x0345, 0xc0}, + {IMX_8BIT, 0x0346, 0x00}, + {IMX_8BIT, 0x0347, 0x30}, + {IMX_8BIT, 0x0348, 0x07}, + {IMX_8BIT, 0x0349, 0x9f}, + {IMX_8BIT, 0x034a, 0x0a}, + {IMX_8BIT, 0x034b, 0x6f}, + {IMX_8BIT, 0x034c, 0x01}, + {IMX_8BIT, 0x034d, 0x78}, + {IMX_8BIT, 0x034e, 0x02}, + {IMX_8BIT, 0x034f, 0x90}, + + {IMX_8BIT, 0x0380, 0x00}, + {IMX_8BIT, 0x0381, 0x01}, + {IMX_8BIT, 0x0382, 0x00}, + {IMX_8BIT, 0x0383, 0x03}, + {IMX_8BIT, 0x0384, 0x00}, + {IMX_8BIT, 0x0385, 0x01}, + {IMX_8BIT, 0x0386, 0x00}, + {IMX_8BIT, 0x0387, 0x03}, + + {IMX_8BIT, 0x0408, 0x00}, + {IMX_8BIT, 0x0409, 0x00}, + {IMX_8BIT, 0x040a, 0x00}, + {IMX_8BIT, 0x040b, 0x00}, + {IMX_8BIT, 0x040c, 0x01}, + {IMX_8BIT, 0x040d, 0x78}, + {IMX_8BIT, 0x040e, 0x02}, + {IMX_8BIT, 0x040f, 0x90}, + + {IMX_8BIT, 0x0900, 0x01}, + {IMX_8BIT, 0x0901, 0x22}, + + {IMX_8BIT, 0x6259, 0x05}, /* latency ctrl */ + {IMX_8BIT, 0x9004, 0xde}, /* preset_sel */ + {IMX_8BIT, 0x9005, 0x3c}, /* preset_en */ + {IMX_8BIT, 0x0136, 0x13}, + {IMX_8BIT, 0x0137, 0x33}, + {IMX_TOK_TERM, 0, 0} +}; + + +static struct imx_reg const imx227_init_settings[] = { + {IMX_8BIT, 0x0100, 0x00}, /* mode_select */ + GROUPED_PARAMETER_HOLD_ENABLE, + {IMX_8BIT, 0x0306, 0x00}, + {IMX_8BIT, 0x0307, 0xBB}, + {IMX_8BIT, 0x030E, 0x03}, + {IMX_8BIT, 0x030F, 0x0D}, + {IMX_8BIT, 0x463b, 0x30}, + {IMX_8BIT, 0x463e, 0x05}, + {IMX_8BIT, 0x4612, 0x66}, + {IMX_8BIT, 0x4815, 0x65}, + {IMX_8BIT, 0x4991, 0x00}, + {IMX_8BIT, 0x4992, 0x01}, + {IMX_8BIT, 0x4993, 0xff}, + {IMX_8BIT, 0x458b, 0x00}, + {IMX_8BIT, 0x452a, 0x02}, + {IMX_8BIT, 0x4a7c, 0x00}, + {IMX_8BIT, 0x4a7d, 0x1c}, + {IMX_8BIT, 0x4a7e, 0x00}, + {IMX_8BIT, 0x4a7f, 0x17}, + {IMX_8BIT, 0x462C, 0x2E}, + {IMX_8BIT, 0x461B, 0x28}, + {IMX_8BIT, 0x4663, 0x29}, + {IMX_8BIT, 0x461A, 0x7C}, + {IMX_8BIT, 0x4619, 0x28}, + {IMX_8BIT, 0x4667, 0x22}, + {IMX_8BIT, 0x466B, 0x23}, + {IMX_8BIT, 0x40AD, 0xFF}, + {IMX_8BIT, 0x40BE, 0x00}, + {IMX_8BIT, 0x40BF, 0x6E}, + {IMX_8BIT, 0x40CE, 0x00}, + {IMX_8BIT, 0x40CF, 0x0A}, + {IMX_8BIT, 0x40CA, 0x00}, + {IMX_8BIT, 0x40CB, 0x1F}, + {IMX_8BIT, 0x4D16, 0x00}, + {IMX_8BIT, 0x6204, 0x01}, + {IMX_8BIT, 0x6209, 0x00}, + {IMX_8BIT, 0x621F, 0x01}, + {IMX_8BIT, 0x621E, 0x10}, + GROUPED_PARAMETER_HOLD_DISABLE, + {IMX_TOK_TERM, 0, 0} +}; + +/* TODO settings of preview/still/video will be updated with new use case */ +struct imx_resolution imx227_res_preview[] = { + { + .desc = "imx_PREVIEW_374X652_30fps", + .regs = imx_PREVIEW_374X652_30fps, + .width = 374, + .height = 652, + .bin_factor_x = 2, + .bin_factor_y = 2, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 30, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0C0A, + }, + { + } + }, + }, + { + .desc = "imx_VIDEO_496x868_30fps", + .regs = imx_VIDEO_496x868_30fps, + .width = 496, + .height = 868, + .bin_factor_x = 1, + .bin_factor_y = 1, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 30, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0C08, + }, + { + } + }, + }, + { + .desc = "imx_STILL_5_5M_3X4_30fps", + .regs = imx_STILL_5_5M_3X4_30fps, + .width = 2048, + .height = 2720, + .bin_factor_x = 0, + .bin_factor_y = 0, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 30, + .pixels_per_line = 0x0ED8, + .lines_per_frame = 0x0BB8, + }, + { + } + }, + + }, + { + .desc = "imx_STILL_5_7M_1X1_30fps", + .regs = imx_STILL_5_7M_1X1_30fps, + .width = 2400, + .height = 2400, + .bin_factor_x = 0, + .bin_factor_y = 0, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 30, + .pixels_per_line = 0x1130, + .lines_per_frame = 0x0A1E, + }, + { + } + }, + + }, + { + .desc = "imx_STILL_6_5M_25fps", + .regs = imx_STILL_6_5M_25fps, + .width = 2400, + .height = 2720, + .bin_factor_x = 0, + .bin_factor_y = 0, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 25, + .pixels_per_line = 0x1130, + .lines_per_frame = 0x0C24, + }, + { + } + }, + } +}; + +struct imx_resolution imx227_res_still[] = { + { + .desc = "imx_STILL_5_5M_3X4_30fps", + .regs = imx_STILL_5_5M_3X4_30fps, + .width = 2048, + .height = 2720, + .bin_factor_x = 0, + .bin_factor_y = 0, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 6, + .pixels_per_line = 0x2130, + .lines_per_frame = 0x1A22, + }, + { + .fps = 30, + .pixels_per_line = 0x0ED8, + .lines_per_frame = 0x0BB8, + }, + { + } + }, + + }, + { + .desc = "imx_STILL_5_7M_1X1_30fps", + .regs = imx_STILL_5_7M_1X1_30fps, + .width = 2400, + .height = 2400, + .bin_factor_x = 0, + .bin_factor_y = 0, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 6, + .pixels_per_line = 0x266E, + .lines_per_frame = 0x1704, + }, + { + .fps = 30, + .pixels_per_line = 0x1130, + .lines_per_frame = 0x0A1E, + }, + { + } + }, + + }, + { + .desc = "imx_STILL_6_5M_25fps", + .regs = imx_STILL_6_5M_25fps, + .width = 2400, + .height = 2720, + .bin_factor_x = 0, + .bin_factor_y = 0, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 25, + .pixels_per_line = 0x1130, + .lines_per_frame = 0x0C24, + }, + { + } + }, + }, +}; + +struct imx_resolution imx227_res_video[] = { + { + .desc = "imx_VIDEO_4M_9X16_30fps", + .regs = imx_VIDEO_4M_9X16_30fps, + .width = 1536, + .height = 2720, + .bin_factor_x = 0, + .bin_factor_y = 0, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 30, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0C08, + }, + { + } + }, + + }, + { + .desc = "imx_VIDEO_2M_9X16_45fps", + .regs = imx_VIDEO_2M_9X16_45fps, + .width = 1096, + .height = 1936, + .bin_factor_x = 0, + .bin_factor_y = 0, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 30, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0C08, + }, + { + .fps = 45, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0800, + }, + { + } + }, + + }, + { + .desc = "imx_VIDEO_1_3M_3X4_60fps", + .regs = imx_VIDEO_1_3M_3X4_60fps, + .width = 1024, + .height = 1360, + .bin_factor_x = 1, + .bin_factor_y = 1, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 60, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0604, + }, + { + } + }, + }, + { + .desc = "imx_VIDEO_496x868_30fps", + .regs = imx_VIDEO_496x868_30fps, + .width = 496, + .height = 868, + .bin_factor_x = 1, + .bin_factor_y = 1, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 30, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0C08, + }, + { + } + }, + }, + { + .desc = "imx_VIDEO_1M_9X16_60fps", + .regs = imx_VIDEO_1M_9X16_60fps, + .width = 736, + .height = 1296, + .bin_factor_x = 1, + .bin_factor_y = 1, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 60, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0604, + }, + { + .fps = 30, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0C10, + }, + { + } + }, + }, + { + .desc = "imx_VIDEO_VGA_3X4_120fps", + .regs = imx_VIDEO_VGA_3X4_120fps, + .width = 512, + .height = 680, + .bin_factor_x = 2, + .bin_factor_y = 2, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 120, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0302, + }, + { + .fps = 30, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0C08, + }, + { + } + }, + }, + { + .desc = "imx_VIDEO_NHD_9X16_30fps", + .regs = imx_VIDEO_NHD_9X16_30fps, + .width = 376, + .height = 656, + .bin_factor_x = 2, + .bin_factor_y = 2, + .mipi_freq = 499000, + .used = 0, + .fps_options = { + { + .fps = 30, + .pixels_per_line = 0x0E70, + .lines_per_frame = 0x0C0A, + }, + { + } + }, + }, +}; + +#endif /* __IMX227_H__ */ |