| #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__ */ |