#include "fimc-is-cis.h"
#include "fimc-is-cis-2p6.h"
-const u32 sensor_2p6_setfile_A_Global[] = {
-/*TODO*/
-};
+/* This setfile A is PDAF setting */
+/* Reference : S5K2P6SX_EVT0_Ver_0.12_20171026.xlsx */
-/* 4:3 16x10 margin, EXTCLK 26Mhz */
-const u32 sensor_2p6_setfile_A_4608x3456_30fps[] = {
+const u32 sensor_2p6_setfile_A_Global[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
0x0100, 0x0000, 0x02,
0x3856, 0x0008, 0x02,
0x3858, 0x0008, 0x02,
0x385A, 0x0008, 0x02,
- 0x30CE, 0x0000, 0x02,
0xF440, 0x002F, 0x02,
- 0x37F6, 0x0021, 0x02,
- 0x3198, 0x0007, 0x02,
- 0x319A, 0x0100, 0x02,
0x319C, 0x0130, 0x02,
- 0x3056, 0x0100, 0x02,
0x602A, 0x1266, 0x02,
0x6F12, 0x0001, 0x02,
0x6F12, 0x0000, 0x02,
- 0x602A, 0x1BB0, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
0x30D4, 0x0001, 0x02,
- 0x30D8, 0x0100, 0x02,
+ 0x30D6, 0x002B, 0x02,
0xB138, 0x0000, 0x02,
- 0x31B0, 0x0008, 0x02,
- 0x0340, 0x0E1A, 0x02,
- 0x0342, 0x1428, 0x02,
0x0344, 0x0018, 0x02,
- 0x0346, 0x0010, 0x02,
0x0348, 0x1217, 0x02,
- 0x034A, 0x0D8F, 0x02,
- 0x034C, 0x1200, 0x02,
- 0x034E, 0x0D80, 0x02,
- 0x0900, 0x0011, 0x02,
0x0380, 0x0001, 0x02,
0x0382, 0x0001, 0x02,
0x0384, 0x0001, 0x02,
- 0x0386, 0x0001, 0x02,
- 0x0400, 0x0000, 0x02,
- 0x0404, 0x0000, 0x02,
0x0408, 0x0000, 0x02,
0x040A, 0x0000, 0x02,
0x0136, 0x1A00, 0x02,
0x0300, 0x0003, 0x02,
0x0302, 0x0001, 0x02,
0x0304, 0x0006, 0x02,
- 0x0306, 0x0061, 0x02,
- 0x1130, 0x440E, 0x02,
0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
0x300A, 0x0000, 0x02,
0x0200, 0x0200, 0x02,
- 0x0202, 0x0E10, 0x02,
- 0x021E, 0x0E10, 0x02,
0x0204, 0x0080, 0x02,
0x37C0, 0x0002, 0x02,
0x37C2, 0x0103, 0x02,
0x3004, 0x0003, 0x02,
0x0114, 0x0300, 0x02,
0x304C, 0x0000, 0x02,
- 0x0216, 0x0100, 0x02,
0x3AC4, 0x0100, 0x02,
0x3E04, 0x0100, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
+ 0x3B02, 0x000F, 0x02,
+ 0x3B34, 0x0000, 0x02,
+ 0x3AD0, 0x0066, 0x02,
+ 0x3B0C, 0x0000, 0x02,
+ 0x3B3E, 0x001E, 0x02,
+ 0x3ADA, 0x0085, 0x02,
+ 0x3B16, 0x000F, 0x02,
+ 0x3B48, 0x0046, 0x02,
+ 0x3AE4, 0x00AD, 0x02,
+ 0x3B20, 0xFFE2, 0x02,
+ 0x3B52, 0x0000, 0x02,
+ 0x3AEE, 0x0085, 0x02,
+ 0x3E0E, 0x0FEF, 0x02,
+ 0x3E18, 0x1010, 0x02,
+ 0x3E22, 0x1018, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 16:9 16x10 margin, EXTCLK 26Mhz */
-const u32 sensor_2p6_setfile_A_4608x2592_30fps[] = {
+/* 1. 4608 x 3456 / No-Bin, 4:3, 30fps / Support PDAF Tail, EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_A_4608x3456_30fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
+ 0x30CE, 0x0000, 0x02,
+ 0x37F6, 0x0021, 0x02,
+ 0x3198, 0x0007, 0x02,
+ 0x319A, 0x0100, 0x02,
+ 0x3056, 0x0100, 0x02,
+ 0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
+ 0x0B0E, 0x0100, 0x02,
+ 0x30D8, 0x0100, 0x02,
+ 0x31B0, 0x0008, 0x02,
+ 0x0340, 0x0E1A, 0x02,
+ 0x0342, 0x1428, 0x02,
+ 0x0346, 0x0010, 0x02,
+ 0x034A, 0x0D8F, 0x02,
+ 0x034C, 0x1200, 0x02,
+ 0x034E, 0x0D80, 0x02,
+ 0x0900, 0x0011, 0x02,
+ 0x0386, 0x0001, 0x02,
+ 0x0400, 0x0000, 0x02,
+ 0x0404, 0x0000, 0x02,
+ 0x0306, 0x0061, 0x02,
+ 0x1130, 0x440E, 0x02,
+ 0x030E, 0x006F, 0x02,
+ 0x0202, 0x0E10, 0x02,
+ 0x021E, 0x0E10, 0x02,
+ 0x0216, 0x0000, 0x02,
+ 0x6214, 0x7970, 0x02,
+};
+
+/* 2. 4608 x 2624 / No-Bin, 16:9, 30fps / Support PDAF Tail , EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_A_4608x2624_30fps[] = {
+ 0xFCFC, 0x4000, 0x02,
+ 0x6028, 0x2000, 0x02,
+ 0x6214, 0x7971, 0x02,
+ 0x6218, 0x7150, 0x02,
0x30CE, 0x0000, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0021, 0x02,
0x3198, 0x0007, 0x02,
0x319A, 0x0100, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0100, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
+ 0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
+ 0x0B0E, 0x0100, 0x02,
+ 0x30D8, 0x0100, 0x02,
+ 0x31B0, 0x0008, 0x02,
+ 0x0340, 0x0E1A, 0x02,
+ 0x0342, 0x1428, 0x02,
+ 0x0346, 0x01B0, 0x02,
+ 0x034A, 0x0BEF, 0x02,
+ 0x034C, 0x1200, 0x02,
+ 0x034E, 0x0A40, 0x02,
+ 0x0900, 0x0011, 0x02,
+ 0x0386, 0x0001, 0x02,
+ 0x0400, 0x0000, 0x02,
+ 0x0404, 0x0000, 0x02,
+ 0x0306, 0x0061, 0x02,
+ 0x1130, 0x440E, 0x02,
+ 0x030E, 0x006F, 0x02,
+ 0x0202, 0x0E10, 0x02,
+ 0x021E, 0x0E10, 0x02,
+ 0x0216, 0x0000, 0x02,
+ 0x6214, 0x7970, 0x02,
+};
+
+/* 3. 4608 x 2240 / No-Bin, 18.5:9, 30fps / Support PDAF Tail , EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_A_4608x2240_30fps[] = {
+ 0xFCFC, 0x4000, 0x02,
+ 0x6028, 0x2000, 0x02,
+ 0x6214, 0x7971, 0x02,
+ 0x6218, 0x7150, 0x02,
+ 0x30CE, 0x0000, 0x02,
+ 0x37F6, 0x0021, 0x02,
+ 0x3198, 0x0007, 0x02,
+ 0x319A, 0x0100, 0x02,
+ 0x3056, 0x0100, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
- 0x30D4, 0x0001, 0x02,
+ 0x0B0E, 0x0100, 0x02,
0x30D8, 0x0100, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0008, 0x02,
0x0340, 0x0E1A, 0x02,
0x0342, 0x1428, 0x02,
- 0x0344, 0x0018, 0x02,
- 0x0346, 0x01C0, 0x02,
- 0x0348, 0x1217, 0x02,
- 0x034A, 0x0BDF, 0x02,
+ 0x0346, 0x0270, 0x02,
+ 0x034A, 0x0B2F, 0x02,
0x034C, 0x1200, 0x02,
- 0x034E, 0x0A20, 0x02,
+ 0x034E, 0x08C0, 0x02,
0x0900, 0x0011, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0001, 0x02,
0x0400, 0x0000, 0x02,
0x0404, 0x0000, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0061, 0x02,
0x1130, 0x440E, 0x02,
- 0x030C, 0x0004, 0x02,
0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
0x0202, 0x0E10, 0x02,
0x021E, 0x0E10, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
- 0x0216, 0x0100, 0x02,
- 0x3AC4, 0x0100, 0x02,
- 0x3E04, 0x0100, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
+ 0x0216, 0x0000, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 4:3 16x10 margin, EXTCLK 26Mhz */
+/* 4. 2304 x 1728 / 2-Bin, 4:3, 30fps / Support PDAF Tail, EXTCLK 26Mhz */
const u32 sensor_2p6_setfile_A_2304x1728_30fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0031, 0x02,
0x3198, 0x0066, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0100, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x6F12, 0x0000, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
- 0x30D4, 0x0001, 0x02,
+ 0x0B0E, 0x0100, 0x02,
0x30D8, 0x0100, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0004, 0x02,
0x0340, 0x0E1A, 0x02,
0x0342, 0x1428, 0x02,
- 0x0344, 0x0018, 0x02,
0x0346, 0x0010, 0x02,
- 0x0348, 0x1217, 0x02,
0x034A, 0x0D8f, 0x02,
0x034C, 0x0900, 0x02,
0x034E, 0x06C0, 0x02,
0x0900, 0x0112, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0003, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0020, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0061, 0x02,
0x1130, 0x440E, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x0E10, 0x02,
0x021E, 0x0E10, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 4:3 16x10 margin, EXTCLK 26Mhz */
+/* 5. 2304 x 1728 / 2-Bin, 4:3, 15fps / Support PDAF Tail, EXTCLK 26Mhz */
const u32 sensor_2p6_setfile_A_2304x1728_15fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0031, 0x02,
0x3198, 0x0066, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0100, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x6F12, 0x0000, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
- 0x30D4, 0x0001, 0x02,
+ 0x0B0E, 0x0100, 0x02,
0x30D8, 0x0100, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0004, 0x02,
0x0340, 0x1C34, 0x02,
0x0342, 0x1428, 0x02,
- 0x0344, 0x0018, 0x02,
0x0346, 0x0010, 0x02,
- 0x0348, 0x1217, 0x02,
0x034A, 0x0D8f, 0x02,
0x034C, 0x0900, 0x02,
0x034E, 0x06C0, 0x02,
0x0900, 0x0112, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0003, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0020, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0061, 0x02,
0x1130, 0x440E, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x1C2A, 0x02,
0x021E, 0x1C2A, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 16:9 16x10 margin, EXTCLK 26Mhz */
-const u32 sensor_2p6_setfile_A_2304x1296_30fps[] = {
+/* 6. 2304 x 1312 / 2-Bin, 16:9, 30fps / Support Tail Mode, EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_A_2304x1312_30fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0031, 0x02,
0x3198, 0x0066, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0100, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
+ 0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
+ 0x0B0E, 0x0100, 0x02,
+ 0x30D8, 0x0100, 0x02,
+ 0x31B0, 0x0004, 0x02,
+ 0x0340, 0x0AAA, 0x02,
+ 0x0342, 0x1AA8, 0x02,
+ 0x0346, 0x01B0, 0x02,
+ 0x034A, 0x0BEF, 0x02,
+ 0x034C, 0x0900, 0x02,
+ 0x034E, 0x0520, 0x02,
+ 0x0900, 0x0112, 0x02,
+ 0x0386, 0x0003, 0x02,
+ 0x0400, 0x0001, 0x02,
+ 0x0404, 0x0020, 0x02,
+ 0x0306, 0x0061, 0x02,
+ 0x1130, 0x440E, 0x02,
+ 0x030E, 0x0068, 0x02,
+ 0x0202, 0x0E10, 0x02,
+ 0x021E, 0x0E10, 0x02,
+ 0x0216, 0x0000, 0x02,
+ 0x6214, 0x7970, 0x02,
+};
+
+/* 7. 2304 x 1120 / 2-Bin, 18.5:9, 30fps / Support PDAF Tail , EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_A_2304x1120_30fps[] = {
+ 0xFCFC, 0x4000, 0x02,
+ 0x6028, 0x2000, 0x02,
+ 0x6214, 0x7971, 0x02,
+ 0x6218, 0x7150, 0x02,
+ 0x30CE, 0x0040, 0x02,
+ 0x37F6, 0x0031, 0x02,
+ 0x3198, 0x0066, 0x02,
+ 0x319A, 0x0000, 0x02,
+ 0x3056, 0x0100, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
- 0x30D4, 0x0001, 0x02,
+ 0x0B0E, 0x0100, 0x02,
0x30D8, 0x0100, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0004, 0x02,
- 0x0340, 0x0E1A, 0x02,
- 0x0342, 0x1428, 0x02,
- 0x0344, 0x0018, 0x02,
- 0x0346, 0x01C0, 0x02,
- 0x0348, 0x1217, 0x02,
- 0x034A, 0x0BDF, 0x02,
+ 0x0340, 0x0937, 0x02,
+ 0x0342, 0x1ED8, 0x02,
+ 0x0346, 0x0270, 0x02,
+ 0x034A, 0x0B2F, 0x02,
0x034C, 0x0900, 0x02,
- 0x034E, 0x0510, 0x02,
+ 0x034E, 0x0460, 0x02,
0x0900, 0x0112, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0003, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0020, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0061, 0x02,
0x1130, 0x440E, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x0E10, 0x02,
0x021E, 0x0E10, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 4:3 4x4 margin, EXTCLK 26Mhz */
+/* 8. 1152 x 864 / 4-Bin, 4:3, 120fps, EXTCLK 26Mhz */
const u32 sensor_2p6_setfile_A_1152x864_120fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0001, 0x02,
0x3198, 0x00CC, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0000, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x6F12, 0x0000, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0100, 0x02,
0x0B0E, 0x0100, 0x02,
- 0x30D4, 0x0001, 0x02,
0x30D8, 0x0000, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0002, 0x02,
0x0340, 0x0398, 0x02,
0x0342, 0x1438, 0x02,
- 0x0344, 0x0010, 0x02,
0x0346, 0x0010, 0x02,
- 0x0348, 0x1217, 0x02,
0x034A, 0x0D8F, 0x02,
0x034C, 0x0480, 0x02,
0x034E, 0x0360, 0x02,
0x0900, 0x0114, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0007, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0040, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0063, 0x02,
0x1130, 0x4411, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x038E, 0x02,
0x021E, 0x038E, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 16:9 4x4 margin, EXTCLK 26Mhz */
-const u32 sensor_2p6_setfile_A_1152x648_120fps[] = {
+/* 9. 1152 x 656 / 4-Bin, 16:9, 120fps, EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_A_1152x656_120fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0001, 0x02,
0x3198, 0x00CC, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0000, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x6F12, 0x0000, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0100, 0x02,
0x0B0E, 0x0100, 0x02,
- 0x30D4, 0x0001, 0x02,
0x30D8, 0x0000, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0002, 0x02,
0x0340, 0x0398, 0x02,
0x0342, 0x1438, 0x02,
- 0x0344, 0x0018, 0x02,
- 0x0346, 0x01C0, 0x02,
- 0x0348, 0x1217, 0x02,
- 0x034A, 0x0BDF, 0x02,
+ 0x0346, 0x01B0, 0x02,
+ 0x034A, 0x0BEF, 0x02,
0x034C, 0x0480, 0x02,
- 0x034E, 0x0288, 0x02,
+ 0x034E, 0x0290, 0x02,
0x0900, 0x0114, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0007, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0040, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0063, 0x02,
0x1130, 0x4411, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x038E, 0x02,
0x021E, 0x038E, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_4608x2592_30fps = {
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_4608x2624_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
1443 * 1000 * 1000, /* mipi_datarate */
560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_2304x1728_30fps = {
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_4608x2240_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
1443 * 1000 * 1000, /* mipi_datarate */
560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x1428, /* line_length_pck (0x0342) */
};
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_2304x1728_30fps = {
+ EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
+ 1352 * 1000 * 1000, /* mipi_datarate */
+ 560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
+ 0x0E1A, /* frame_length_lines (0x0340) */
+ 0x1428, /* line_length_pck (0x0342) */
+};
+
const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_2304x1728_15fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
- 1443 * 1000 * 1000, /* mipi_datarate */
+ 1352 * 1000 * 1000, /* mipi_datarate */
560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x1C34, /* frame_length_lines (0x0340) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_2304x1296_30fps = {
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_2304x1312_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
- 1443 * 1000 * 1000, /* mipi_datarate */
+ 1352 * 1000 * 1000, /* mipi_datarate */
560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
- 0x0E1A, /* frame_length_lines (0x0340) */
- 0x1428, /* line_length_pck (0x0342) */
+ 0x0AAA, /* frame_length_lines (0x0340) */
+ 0x1AA8, /* line_length_pck (0x0342) */
+};
+
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_2304x1120_30fps = {
+ EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
+ 1352 * 1000 * 1000, /* mipi_datarate */
+ 560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
+ 0x0937, /* frame_length_lines (0x0340) */
+ 0x1ED8, /* line_length_pck (0x0342) */
};
const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_1152x864_120fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
- 1443 * 1000 * 1000, /* mipi_datarate */
+ 1352 * 1000 * 1000, /* mipi_datarate */
572000000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x0398, /* frame_length_lines (0x0340) */
0x1438, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_1152x648_120fps = {
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_A_1152x656_120fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
- 1443 * 1000 * 1000, /* mipi_datarate */
+ 1352 * 1000 * 1000, /* mipi_datarate */
572000000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x0398, /* frame_length_lines (0x0340) */
0x1438, /* line_length_pck (0x0342) */
};
-
#else
-const struct sensor_pll_info sensor_2p6_pllinfo_A_4608x3468_30fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_A_4608x3456_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
0x6F, /* secnd_pll_multiplier (0x030E) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info sensor_2p6_pllinfo_A_4608x2592_30fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_A_4608x2624_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
0x6F, /* secnd_pll_multiplier (0x030E) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info sensor_2p6_pllinfo_A_2304x1728_30fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_A_4608x2240_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
0x6F, /* secnd_pll_multiplier (0x030E) */
- 0x1C34, /* frame_length_lines (0x0340) */
+ 0x0E1A, /* frame_length_lines (0x0340) */
+ 0x1428, /* line_length_pck (0x0342) */
+};
+
+const struct sensor_pll_info sensor_2p6_pllinfo_A_2304x1728_30fps = {
+ EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
+ 0x03, /* vt_pix_clk_div (0x0300) */
+ 0x01, /* vt_sys_clk_div (0x0302) */
+ 0x06, /* pre_pll_clk_div(0x0304) */
+ 0x61, /* pll_multiplier (0x0306) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
+
+ 0x04, /* secnd_pre_pll_clk_div(0x030C) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
+ 0x0E1A, /* frame_length_lines (0x0340) */
0x1428, /* line_length_pck (0x0342) */
};
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
- 0x6F, /* secnd_pll_multiplier (0x030E) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
0x1C34, /* frame_length_lines (0x0340) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info sensor_2p6_pllinfo_A_2304x1296_30fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_A_2304x1312_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
- 0x6F, /* secnd_pll_multiplier (0x030E) */
- 0x0E1A, /* frame_length_lines (0x0340) */
- 0x1428, /* line_length_pck (0x0342) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
+ 0x0AAA, /* frame_length_lines (0x0340) */
+ 0x1AA8, /* line_length_pck (0x0342) */
+};
+
+const struct sensor_pll_info sensor_2p6_pllinfo_A_2304x1120_30fps = {
+ EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
+ 0x03, /* vt_pix_clk_div (0x0300) */
+ 0x01, /* vt_sys_clk_div (0x0302) */
+ 0x06, /* pre_pll_clk_div(0x0304) */
+ 0x61, /* pll_multiplier (0x0306) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
+
+ 0x04, /* secnd_pre_pll_clk_div(0x030C) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
+ 0x0937, /* frame_length_lines (0x0340) */
+ 0x1ED8, /* line_length_pck (0x0342) */
};
const struct sensor_pll_info sensor_2p6_pllinfo_A_1152x864_120fps = {
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x63, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
- 0x6F, /* secnd_pll_multiplier (0x030E) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
0x0398, /* frame_length_lines (0x0340) */
0x1438, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info sensor_2p6_pllinfo_A_1152x648_120fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_A_1152x656_120fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x63, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
- 0x6F, /* secnd_pll_multiplier (0x030E) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
0x0398, /* frame_length_lines (0x0340) */
0x1438, /* line_length_pck (0x0342) */
};
static const u32 *sensor_2p6_setfiles_A[] = {
/* 16x12 margin */
sensor_2p6_setfile_A_4608x3456_30fps,
- sensor_2p6_setfile_A_4608x2592_30fps,
+ sensor_2p6_setfile_A_4608x2624_30fps,
+ sensor_2p6_setfile_A_4608x2240_30fps,
sensor_2p6_setfile_A_2304x1728_30fps,
sensor_2p6_setfile_A_2304x1728_15fps,
- sensor_2p6_setfile_A_2304x1296_30fps,
+ sensor_2p6_setfile_A_2304x1312_30fps,
+ sensor_2p6_setfile_A_2304x1120_30fps,
sensor_2p6_setfile_A_1152x864_120fps,
- sensor_2p6_setfile_A_1152x648_120fps,
+ sensor_2p6_setfile_A_1152x656_120fps,
};
static const u32 sensor_2p6_setfile_A_sizes[] = {
/* 16x12 margin */
sizeof(sensor_2p6_setfile_A_4608x3456_30fps) / sizeof(sensor_2p6_setfile_A_4608x3456_30fps[0]),
- sizeof(sensor_2p6_setfile_A_4608x2592_30fps) / sizeof(sensor_2p6_setfile_A_4608x2592_30fps[0]),
+ sizeof(sensor_2p6_setfile_A_4608x2624_30fps) / sizeof(sensor_2p6_setfile_A_4608x2624_30fps[0]),
+ sizeof(sensor_2p6_setfile_A_4608x2240_30fps) / sizeof(sensor_2p6_setfile_A_4608x2240_30fps[0]),
sizeof(sensor_2p6_setfile_A_2304x1728_30fps) / sizeof(sensor_2p6_setfile_A_2304x1728_30fps[0]),
sizeof(sensor_2p6_setfile_A_2304x1728_15fps) / sizeof(sensor_2p6_setfile_A_2304x1728_15fps[0]),
- sizeof(sensor_2p6_setfile_A_2304x1296_30fps) / sizeof(sensor_2p6_setfile_A_2304x1296_30fps[0]),
+ sizeof(sensor_2p6_setfile_A_2304x1312_30fps) / sizeof(sensor_2p6_setfile_A_2304x1312_30fps[0]),
+ sizeof(sensor_2p6_setfile_A_2304x1120_30fps) / sizeof(sensor_2p6_setfile_A_2304x1120_30fps[0]),
sizeof(sensor_2p6_setfile_A_1152x864_120fps) / sizeof(sensor_2p6_setfile_A_1152x864_120fps[0]),
- sizeof(sensor_2p6_setfile_A_1152x648_120fps) / sizeof(sensor_2p6_setfile_A_1152x648_120fps[0]),
+ sizeof(sensor_2p6_setfile_A_1152x656_120fps) / sizeof(sensor_2p6_setfile_A_1152x656_120fps[0]),
};
#ifdef S5K2P6_USE_COMPACT_PLL_INFO
-static const struct sensor_pll_info_compact *sensor_2p6_pllinfos_A[] = {
+static const struct sensor_pll_info_compact *sensor_2p6_pllinfos_A[] =
#else
-static const struct sensor_pll_info *sensor_2p6_pllinfos_A[] = {
+static const struct sensor_pll_info *sensor_2p6_pllinfos_A[] =
#endif
+{
/* 16x12 margin */
&sensor_2p6_pllinfo_A_4608x3456_30fps,
- &sensor_2p6_pllinfo_A_4608x2592_30fps,
+ &sensor_2p6_pllinfo_A_4608x2624_30fps,
+ &sensor_2p6_pllinfo_A_4608x2240_30fps,
&sensor_2p6_pllinfo_A_2304x1728_30fps,
&sensor_2p6_pllinfo_A_2304x1728_15fps,
- &sensor_2p6_pllinfo_A_2304x1296_30fps,
+ &sensor_2p6_pllinfo_A_2304x1312_30fps,
+ &sensor_2p6_pllinfo_A_2304x1120_30fps,
&sensor_2p6_pllinfo_A_1152x864_120fps,
- &sensor_2p6_pllinfo_A_1152x648_120fps,
+ &sensor_2p6_pllinfo_A_1152x656_120fps,
};
#endif
#include "fimc-is-cis.h"
#include "fimc-is-cis-2p6.h"
-const u32 sensor_2p6_setfile_B_Global[] = {
-/*TODO*/
-};
+/* This setfile B is PDAF setting */
+/* Reference : S5K2P6SX_EVT0_Ver_0.12_20171026.xlsx */
-/* 4:3 16x10 margin, EXTCLK 26Mhz */
-const u32 sensor_2p6_setfile_B_4608x3456_30fps[] = {
+const u32 sensor_2p6_setfile_B_Global[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
0x0100, 0x0000, 0x02,
0x3856, 0x0008, 0x02,
0x3858, 0x0008, 0x02,
0x385A, 0x0008, 0x02,
- 0x30CE, 0x0000, 0x02,
0xF440, 0x002F, 0x02,
- 0x37F6, 0x0021, 0x02,
- 0x3198, 0x0007, 0x02,
- 0x319A, 0x0100, 0x02,
0x319C, 0x0130, 0x02,
- 0x3056, 0x0100, 0x02,
0x602A, 0x1266, 0x02,
0x6F12, 0x0001, 0x02,
0x6F12, 0x0000, 0x02,
- 0x602A, 0x1BB0, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
0x30D4, 0x0001, 0x02,
- 0x30D8, 0x0100, 0x02,
+ 0x30D6, 0x002B, 0x02,
0xB138, 0x0000, 0x02,
- 0x31B0, 0x0008, 0x02,
- 0x0340, 0x0E1A, 0x02,
- 0x0342, 0x1428, 0x02,
0x0344, 0x0018, 0x02,
- 0x0346, 0x0010, 0x02,
0x0348, 0x1217, 0x02,
- 0x034A, 0x0D8F, 0x02,
- 0x034C, 0x1200, 0x02,
- 0x034E, 0x0D80, 0x02,
- 0x0900, 0x0011, 0x02,
0x0380, 0x0001, 0x02,
0x0382, 0x0001, 0x02,
0x0384, 0x0001, 0x02,
- 0x0386, 0x0001, 0x02,
- 0x0400, 0x0000, 0x02,
- 0x0404, 0x0000, 0x02,
0x0408, 0x0000, 0x02,
0x040A, 0x0000, 0x02,
0x0136, 0x1A00, 0x02,
0x0300, 0x0003, 0x02,
0x0302, 0x0001, 0x02,
0x0304, 0x0006, 0x02,
- 0x0306, 0x0061, 0x02,
- 0x1130, 0x440E, 0x02,
0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
0x300A, 0x0000, 0x02,
0x0200, 0x0200, 0x02,
- 0x0202, 0x0E10, 0x02,
- 0x021E, 0x0E10, 0x02,
0x0204, 0x0080, 0x02,
0x37C0, 0x0002, 0x02,
0x37C2, 0x0103, 0x02,
0x3004, 0x0003, 0x02,
0x0114, 0x0300, 0x02,
0x304C, 0x0000, 0x02,
- 0x0216, 0x0100, 0x02,
0x3AC4, 0x0100, 0x02,
0x3E04, 0x0100, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
+ 0x3B02, 0x000F, 0x02,
+ 0x3B34, 0x0000, 0x02,
+ 0x3AD0, 0x0066, 0x02,
+ 0x3B0C, 0x0000, 0x02,
+ 0x3B3E, 0x001E, 0x02,
+ 0x3ADA, 0x0085, 0x02,
+ 0x3B16, 0x000F, 0x02,
+ 0x3B48, 0x0046, 0x02,
+ 0x3AE4, 0x00AD, 0x02,
+ 0x3B20, 0xFFE2, 0x02,
+ 0x3B52, 0x0000, 0x02,
+ 0x3AEE, 0x0085, 0x02,
+ 0x3E0E, 0x0FEF, 0x02,
+ 0x3E18, 0x1010, 0x02,
+ 0x3E22, 0x1018, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 16:9 16x10 margin, EXTCLK 26Mhz */
-const u32 sensor_2p6_setfile_B_4608x2592_30fps[] = {
+/* 1. 4608 x 3456 / No-Bin, 4:3, 30fps / Support PDAF Tail, EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_B_4608x3456_30fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
+ 0x30CE, 0x0000, 0x02,
+ 0x37F6, 0x0021, 0x02,
+ 0x3198, 0x0007, 0x02,
+ 0x319A, 0x0100, 0x02,
+ 0x3056, 0x0100, 0x02,
+ 0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
+ 0x0B0E, 0x0100, 0x02,
+ 0x30D8, 0x0100, 0x02,
+ 0x31B0, 0x0008, 0x02,
+ 0x0340, 0x0E1A, 0x02,
+ 0x0342, 0x1428, 0x02,
+ 0x0346, 0x0010, 0x02,
+ 0x034A, 0x0D8F, 0x02,
+ 0x034C, 0x1200, 0x02,
+ 0x034E, 0x0D80, 0x02,
+ 0x0900, 0x0011, 0x02,
+ 0x0386, 0x0001, 0x02,
+ 0x0400, 0x0000, 0x02,
+ 0x0404, 0x0000, 0x02,
+ 0x0306, 0x0061, 0x02,
+ 0x1130, 0x440E, 0x02,
+ 0x030E, 0x006F, 0x02,
+ 0x0202, 0x0E10, 0x02,
+ 0x021E, 0x0E10, 0x02,
+ 0x0216, 0x0000, 0x02,
+ 0x6214, 0x7970, 0x02,
+};
+
+/* 2. 4608 x 2624 / No-Bin, 16:9, 30fps / Support PDAF Tail , EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_B_4608x2624_30fps[] = {
+ 0xFCFC, 0x4000, 0x02,
+ 0x6028, 0x2000, 0x02,
+ 0x6214, 0x7971, 0x02,
+ 0x6218, 0x7150, 0x02,
0x30CE, 0x0000, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0021, 0x02,
0x3198, 0x0007, 0x02,
0x319A, 0x0100, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0100, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
+ 0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
+ 0x0B0E, 0x0100, 0x02,
+ 0x30D8, 0x0100, 0x02,
+ 0x31B0, 0x0008, 0x02,
+ 0x0340, 0x0E1A, 0x02,
+ 0x0342, 0x1428, 0x02,
+ 0x0346, 0x01B0, 0x02,
+ 0x034A, 0x0BEF, 0x02,
+ 0x034C, 0x1200, 0x02,
+ 0x034E, 0x0A40, 0x02,
+ 0x0900, 0x0011, 0x02,
+ 0x0386, 0x0001, 0x02,
+ 0x0400, 0x0000, 0x02,
+ 0x0404, 0x0000, 0x02,
+ 0x0306, 0x0061, 0x02,
+ 0x1130, 0x440E, 0x02,
+ 0x030E, 0x006F, 0x02,
+ 0x0202, 0x0E10, 0x02,
+ 0x021E, 0x0E10, 0x02,
+ 0x0216, 0x0000, 0x02,
+ 0x6214, 0x7970, 0x02,
+};
+
+/* 3. 4608 x 2240 / No-Bin, 18.5:9, 30fps / Support PDAF Tail , EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_B_4608x2240_30fps[] = {
+ 0xFCFC, 0x4000, 0x02,
+ 0x6028, 0x2000, 0x02,
+ 0x6214, 0x7971, 0x02,
+ 0x6218, 0x7150, 0x02,
+ 0x30CE, 0x0000, 0x02,
+ 0x37F6, 0x0021, 0x02,
+ 0x3198, 0x0007, 0x02,
+ 0x319A, 0x0100, 0x02,
+ 0x3056, 0x0100, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
- 0x30D4, 0x0001, 0x02,
+ 0x0B0E, 0x0100, 0x02,
0x30D8, 0x0100, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0008, 0x02,
0x0340, 0x0E1A, 0x02,
0x0342, 0x1428, 0x02,
- 0x0344, 0x0018, 0x02,
- 0x0346, 0x01C0, 0x02,
- 0x0348, 0x1217, 0x02,
- 0x034A, 0x0BDF, 0x02,
+ 0x0346, 0x0270, 0x02,
+ 0x034A, 0x0B2F, 0x02,
0x034C, 0x1200, 0x02,
- 0x034E, 0x0A20, 0x02,
+ 0x034E, 0x08C0, 0x02,
0x0900, 0x0011, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0001, 0x02,
0x0400, 0x0000, 0x02,
0x0404, 0x0000, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0061, 0x02,
0x1130, 0x440E, 0x02,
- 0x030C, 0x0004, 0x02,
0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
0x0202, 0x0E10, 0x02,
0x021E, 0x0E10, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
- 0x0216, 0x0100, 0x02,
- 0x3AC4, 0x0100, 0x02,
- 0x3E04, 0x0100, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
+ 0x0216, 0x0000, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 4:3 16x10 margin, EXTCLK 26Mhz */
+/* 4. 2304 x 1728 / 2-Bin, 4:3, 30fps / Support PDAF Tail, EXTCLK 26Mhz */
const u32 sensor_2p6_setfile_B_2304x1728_30fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0031, 0x02,
0x3198, 0x0066, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0100, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x6F12, 0x0000, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
- 0x30D4, 0x0001, 0x02,
+ 0x0B0E, 0x0100, 0x02,
0x30D8, 0x0100, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0004, 0x02,
0x0340, 0x0E1A, 0x02,
0x0342, 0x1428, 0x02,
- 0x0344, 0x0018, 0x02,
0x0346, 0x0010, 0x02,
- 0x0348, 0x1217, 0x02,
0x034A, 0x0D8f, 0x02,
0x034C, 0x0900, 0x02,
0x034E, 0x06C0, 0x02,
0x0900, 0x0112, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0003, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0020, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0061, 0x02,
0x1130, 0x440E, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x0E10, 0x02,
0x021E, 0x0E10, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 4:3 16x10 margin, EXTCLK 26Mhz */
+/* 5. 2304 x 1728 / 2-Bin, 4:3, 15fps / Support PDAF Tail, EXTCLK 26Mhz */
const u32 sensor_2p6_setfile_B_2304x1728_15fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0031, 0x02,
0x3198, 0x0066, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0100, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x6F12, 0x0000, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
- 0x30D4, 0x0001, 0x02,
+ 0x0B0E, 0x0100, 0x02,
0x30D8, 0x0100, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0004, 0x02,
0x0340, 0x1C34, 0x02,
0x0342, 0x1428, 0x02,
- 0x0344, 0x0018, 0x02,
0x0346, 0x0010, 0x02,
- 0x0348, 0x1217, 0x02,
0x034A, 0x0D8f, 0x02,
0x034C, 0x0900, 0x02,
0x034E, 0x06C0, 0x02,
0x0900, 0x0112, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0003, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0020, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0061, 0x02,
0x1130, 0x440E, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x1C2A, 0x02,
0x021E, 0x1C2A, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 16:9 16x10 margin, EXTCLK 26Mhz */
-const u32 sensor_2p6_setfile_B_2304x1296_30fps[] = {
+/* 6. 2304 x 1312 / 2-Bin, 16:9, 30fps / Support Tail Mode, EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_B_2304x1312_30fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0031, 0x02,
0x3198, 0x0066, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0100, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
+ 0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
+ 0x0B0E, 0x0100, 0x02,
+ 0x30D8, 0x0100, 0x02,
+ 0x31B0, 0x0004, 0x02,
+ 0x0340, 0x0AAA, 0x02,
+ 0x0342, 0x1AA8, 0x02,
+ 0x0346, 0x01B0, 0x02,
+ 0x034A, 0x0BEF, 0x02,
+ 0x034C, 0x0900, 0x02,
+ 0x034E, 0x0520, 0x02,
+ 0x0900, 0x0112, 0x02,
+ 0x0386, 0x0003, 0x02,
+ 0x0400, 0x0001, 0x02,
+ 0x0404, 0x0020, 0x02,
+ 0x0306, 0x0061, 0x02,
+ 0x1130, 0x440E, 0x02,
+ 0x030E, 0x0068, 0x02,
+ 0x0202, 0x0E10, 0x02,
+ 0x021E, 0x0E10, 0x02,
+ 0x0216, 0x0000, 0x02,
+ 0x6214, 0x7970, 0x02,
+};
+
+/* 7. 2304 x 1120 / 2-Bin, 18.5:9, 30fps / Support PDAF Tail , EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_B_2304x1120_30fps[] = {
+ 0xFCFC, 0x4000, 0x02,
+ 0x6028, 0x2000, 0x02,
+ 0x6214, 0x7971, 0x02,
+ 0x6218, 0x7150, 0x02,
+ 0x30CE, 0x0040, 0x02,
+ 0x37F6, 0x0031, 0x02,
+ 0x3198, 0x0066, 0x02,
+ 0x319A, 0x0000, 0x02,
+ 0x3056, 0x0100, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0000, 0x02,
- 0x0B0E, 0x0000, 0x02,
- 0x30D4, 0x0001, 0x02,
+ 0x0B0E, 0x0100, 0x02,
0x30D8, 0x0100, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0004, 0x02,
- 0x0340, 0x0E1A, 0x02,
- 0x0342, 0x1428, 0x02,
- 0x0344, 0x0018, 0x02,
- 0x0346, 0x01C0, 0x02,
- 0x0348, 0x1217, 0x02,
- 0x034A, 0x0BDF, 0x02,
+ 0x0340, 0x0937, 0x02,
+ 0x0342, 0x1ED8, 0x02,
+ 0x0346, 0x0270, 0x02,
+ 0x034A, 0x0B2F, 0x02,
0x034C, 0x0900, 0x02,
- 0x034E, 0x0510, 0x02,
+ 0x034E, 0x0460, 0x02,
0x0900, 0x0112, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0003, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0020, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0061, 0x02,
0x1130, 0x440E, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x0E10, 0x02,
0x021E, 0x0E10, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 4:3 4x4 margin, EXTCLK 26Mhz */
+/* 8. 1152 x 864 / 4-Bin, 4:3, 120fps, EXTCLK 26Mhz */
const u32 sensor_2p6_setfile_B_1152x864_120fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0001, 0x02,
0x3198, 0x00CC, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0000, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x6F12, 0x0000, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0100, 0x02,
0x0B0E, 0x0100, 0x02,
- 0x30D4, 0x0001, 0x02,
0x30D8, 0x0000, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0002, 0x02,
0x0340, 0x0398, 0x02,
0x0342, 0x1438, 0x02,
- 0x0344, 0x0010, 0x02,
0x0346, 0x0010, 0x02,
- 0x0348, 0x1217, 0x02,
0x034A, 0x0D8F, 0x02,
0x034C, 0x0480, 0x02,
0x034E, 0x0360, 0x02,
0x0900, 0x0114, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0007, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0040, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0063, 0x02,
0x1130, 0x4411, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x038E, 0x02,
0x021E, 0x038E, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
-/* 16:9 4x4 margin, EXTCLK 26Mhz */
-const u32 sensor_2p6_setfile_B_1152x648_120fps[] = {
+/* 9. 1152 x 656 / 4-Bin, 16:9, 120fps, EXTCLK 26Mhz */
+const u32 sensor_2p6_setfile_B_1152x656_120fps[] = {
0xFCFC, 0x4000, 0x02,
0x6028, 0x2000, 0x02,
- 0x0100, 0x0000, 0x02,
0x6214, 0x7971, 0x02,
0x6218, 0x7150, 0x02,
- 0xF43A, 0x000C, 0x02,
- 0xF470, 0x000D, 0x02,
- 0x602A, 0x1C50, 0x02,
- 0x6F12, 0x15FF, 0x02,
- 0x3092, 0x0000, 0x02,
- 0x3088, 0x0101, 0x02,
- 0x602A, 0x13CE, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0000, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x6F12, 0x0004, 0x02,
- 0x602A, 0x196C, 0x02,
- 0x6F12, 0x8010, 0x02,
- 0x31D2, 0x0220, 0x02,
- 0x602A, 0x195E, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x3816, 0x0140, 0x02,
- 0x3818, 0x0140, 0x02,
- 0x3854, 0x0008, 0x02,
- 0x3856, 0x0008, 0x02,
- 0x3858, 0x0008, 0x02,
- 0x385A, 0x0008, 0x02,
0x30CE, 0x0040, 0x02,
- 0xF440, 0x002F, 0x02,
0x37F6, 0x0001, 0x02,
0x3198, 0x00CC, 0x02,
0x319A, 0x0000, 0x02,
- 0x319C, 0x0130, 0x02,
0x3056, 0x0000, 0x02,
- 0x602A, 0x1266, 0x02,
- 0x6F12, 0x0001, 0x02,
- 0x6F12, 0x0000, 0x02,
0x602A, 0x1BB0, 0x02,
0x6F12, 0x0100, 0x02,
0x0B0E, 0x0100, 0x02,
- 0x30D4, 0x0001, 0x02,
0x30D8, 0x0000, 0x02,
- 0xB138, 0x0000, 0x02,
0x31B0, 0x0002, 0x02,
0x0340, 0x0398, 0x02,
0x0342, 0x1438, 0x02,
- 0x0344, 0x0018, 0x02,
- 0x0346, 0x01C0, 0x02,
- 0x0348, 0x1217, 0x02,
- 0x034A, 0x0BDF, 0x02,
+ 0x0346, 0x01B0, 0x02,
+ 0x034A, 0x0BEF, 0x02,
0x034C, 0x0480, 0x02,
- 0x034E, 0x0288, 0x02,
+ 0x034E, 0x0290, 0x02,
0x0900, 0x0114, 0x02,
- 0x0380, 0x0001, 0x02,
- 0x0382, 0x0001, 0x02,
- 0x0384, 0x0001, 0x02,
0x0386, 0x0007, 0x02,
0x0400, 0x0001, 0x02,
0x0404, 0x0040, 0x02,
- 0x0408, 0x0000, 0x02,
- 0x040A, 0x0000, 0x02,
- 0x0136, 0x1A00, 0x02,
- 0x0300, 0x0003, 0x02,
- 0x0302, 0x0001, 0x02,
- 0x0304, 0x0006, 0x02,
0x0306, 0x0063, 0x02,
0x1130, 0x4411, 0x02,
- 0x030C, 0x0004, 0x02,
- 0x030E, 0x006F, 0x02,
- 0x300A, 0x0000, 0x02,
- 0x0200, 0x0200, 0x02,
+ 0x030E, 0x0068, 0x02,
0x0202, 0x038E, 0x02,
0x021E, 0x038E, 0x02,
- 0x0204, 0x0080, 0x02,
- 0x37C0, 0x0002, 0x02,
- 0x37C2, 0x0103, 0x02,
- 0x3004, 0x0003, 0x02,
- 0x0114, 0x0300, 0x02,
- 0x304C, 0x0000, 0x02,
0x0216, 0x0000, 0x02,
- 0x3AC4, 0x0000, 0x02,
- 0x3E04, 0x0000, 0x02,
- 0x3B02, 0xFFCD, 0x02,
- 0x3B34, 0x0033, 0x02,
- 0x3AD0, 0x0099, 0x02,
- 0x3B0C, 0xFFE2, 0x02,
- 0x3B3E, 0x0028, 0x02,
- 0x3ADA, 0x0099, 0x02,
- 0x3B16, 0xFFCD, 0x02,
- 0x3B48, 0x0033, 0x02,
- 0x3AE4, 0x0099, 0x02,
- 0x3B20, 0x0014, 0x02,
- 0x3B52, 0x0066, 0x02,
- 0x3AEE, 0x0099, 0x02,
- 0x3E18, 0x1014, 0x02,
- 0x3E22, 0x1014, 0x02,
0x6214, 0x7970, 0x02,
};
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_4608x2592_30fps = {
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_4608x2624_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
1443 * 1000 * 1000, /* mipi_datarate */
560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_2304x1728_30fps = {
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_4608x2240_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
1443 * 1000 * 1000, /* mipi_datarate */
560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x1428, /* line_length_pck (0x0342) */
};
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_2304x1728_30fps = {
+ EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
+ 1352 * 1000 * 1000, /* mipi_datarate */
+ 560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
+ 0x0E1A, /* frame_length_lines (0x0340) */
+ 0x1428, /* line_length_pck (0x0342) */
+};
+
const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_2304x1728_15fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
- 1443 * 1000 * 1000, /* mipi_datarate */
+ 1352 * 1000 * 1000, /* mipi_datarate */
560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x1C34, /* frame_length_lines (0x0340) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_2304x1296_30fps = {
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_2304x1312_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
- 1443 * 1000 * 1000, /* mipi_datarate */
+ 1352 * 1000 * 1000, /* mipi_datarate */
560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
- 0x0E1A, /* frame_length_lines (0x0340) */
- 0x1428, /* line_length_pck (0x0342) */
+ 0x0AAA, /* frame_length_lines (0x0340) */
+ 0x1AA8, /* line_length_pck (0x0342) */
+};
+
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_2304x1120_30fps = {
+ EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
+ 1352 * 1000 * 1000, /* mipi_datarate */
+ 560440000, /* pclk = VT pix CLK * 4(this value is different by cis) */
+ 0x0937, /* frame_length_lines (0x0340) */
+ 0x1ED8, /* line_length_pck (0x0342) */
};
const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_1152x864_120fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
- 1443 * 1000 * 1000, /* mipi_datarate */
+ 1352 * 1000 * 1000, /* mipi_datarate */
572000000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x0398, /* frame_length_lines (0x0340) */
0x1438, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_1152x648_120fps = {
+const struct sensor_pll_info_compact sensor_2p6_pllinfo_B_1152x656_120fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
- 1443 * 1000 * 1000, /* mipi_datarate */
+ 1352 * 1000 * 1000, /* mipi_datarate */
572000000, /* pclk = VT pix CLK * 4(this value is different by cis) */
0x0398, /* frame_length_lines (0x0340) */
0x1438, /* line_length_pck (0x0342) */
};
-
#else
-const struct sensor_pll_info sensor_2p6_pllinfo_B_4608x3468_30fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_B_4608x3456_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
0x6F, /* secnd_pll_multiplier (0x030E) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info sensor_2p6_pllinfo_B_4608x2592_30fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_B_4608x2624_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
0x6F, /* secnd_pll_multiplier (0x030E) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info sensor_2p6_pllinfo_B_2304x1728_30fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_B_4608x2240_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
0x6F, /* secnd_pll_multiplier (0x030E) */
- 0x1C34, /* frame_length_lines (0x0340) */
+ 0x0E1A, /* frame_length_lines (0x0340) */
+ 0x1428, /* line_length_pck (0x0342) */
+};
+
+const struct sensor_pll_info sensor_2p6_pllinfo_B_2304x1728_30fps = {
+ EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
+ 0x03, /* vt_pix_clk_div (0x0300) */
+ 0x01, /* vt_sys_clk_div (0x0302) */
+ 0x06, /* pre_pll_clk_div(0x0304) */
+ 0x61, /* pll_multiplier (0x0306) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
+
+ 0x04, /* secnd_pre_pll_clk_div(0x030C) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
+ 0x0E1A, /* frame_length_lines (0x0340) */
0x1428, /* line_length_pck (0x0342) */
};
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
- 0x6F, /* secnd_pll_multiplier (0x030E) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
0x1C34, /* frame_length_lines (0x0340) */
0x1428, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info sensor_2p6_pllinfo_B_2304x1296_30fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_B_2304x1312_30fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x61, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
- 0x6F, /* secnd_pll_multiplier (0x030E) */
- 0x0E1A, /* frame_length_lines (0x0340) */
- 0x1428, /* line_length_pck (0x0342) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
+ 0x0AAA, /* frame_length_lines (0x0340) */
+ 0x1AA8, /* line_length_pck (0x0342) */
+};
+
+const struct sensor_pll_info sensor_2p6_pllinfo_B_2304x1120_30fps = {
+ EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
+ 0x03, /* vt_pix_clk_div (0x0300) */
+ 0x01, /* vt_sys_clk_div (0x0302) */
+ 0x06, /* pre_pll_clk_div(0x0304) */
+ 0x61, /* pll_multiplier (0x0306) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
+
+ 0x04, /* secnd_pre_pll_clk_div(0x030C) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
+ 0x0937, /* frame_length_lines (0x0340) */
+ 0x1ED8, /* line_length_pck (0x0342) */
};
const struct sensor_pll_info sensor_2p6_pllinfo_B_1152x864_120fps = {
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x63, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
- 0x6F, /* secnd_pll_multiplier (0x030E) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
0x0398, /* frame_length_lines (0x0340) */
0x1438, /* line_length_pck (0x0342) */
};
-const struct sensor_pll_info sensor_2p6_pllinfo_B_1152x648_120fps = {
+const struct sensor_pll_info sensor_2p6_pllinfo_B_1152x656_120fps = {
EXT_CLK_Mhz * 1000 * 1000, /* ext_clk */
0x03, /* vt_pix_clk_div (0x0300) */
0x01, /* vt_sys_clk_div (0x0302) */
0x06, /* pre_pll_clk_div(0x0304) */
0x63, /* pll_multiplier (0x0306) */
-/*TODO*/ 0x08, /* op_pix_clk_div (0x0308) */
-/*TODO*/ 0x01, /* op_sys_clk_div (0x030A) */
+ 0x08, /* op_pix_clk_div (0x0308) */
+ 0x01, /* op_sys_clk_div (0x030A) */
0x04, /* secnd_pre_pll_clk_div(0x030C) */
- 0x6F, /* secnd_pll_multiplier (0x030E) */
+ 0x68, /* secnd_pll_multiplier (0x030E) */
0x0398, /* frame_length_lines (0x0340) */
0x1438, /* line_length_pck (0x0342) */
};
static const u32 *sensor_2p6_setfiles_B[] = {
/* 16x12 margin */
sensor_2p6_setfile_B_4608x3456_30fps,
- sensor_2p6_setfile_B_4608x2592_30fps,
+ sensor_2p6_setfile_B_4608x2624_30fps,
+ sensor_2p6_setfile_B_4608x2240_30fps,
sensor_2p6_setfile_B_2304x1728_30fps,
sensor_2p6_setfile_B_2304x1728_15fps,
- sensor_2p6_setfile_B_2304x1296_30fps,
+ sensor_2p6_setfile_B_2304x1312_30fps,
+ sensor_2p6_setfile_B_2304x1120_30fps,
sensor_2p6_setfile_B_1152x864_120fps,
- sensor_2p6_setfile_B_1152x648_120fps,
+ sensor_2p6_setfile_B_1152x656_120fps,
};
static const u32 sensor_2p6_setfile_B_sizes[] = {
/* 16x12 margin */
sizeof(sensor_2p6_setfile_B_4608x3456_30fps) / sizeof(sensor_2p6_setfile_B_4608x3456_30fps[0]),
- sizeof(sensor_2p6_setfile_B_4608x2592_30fps) / sizeof(sensor_2p6_setfile_B_4608x2592_30fps[0]),
+ sizeof(sensor_2p6_setfile_B_4608x2624_30fps) / sizeof(sensor_2p6_setfile_B_4608x2624_30fps[0]),
+ sizeof(sensor_2p6_setfile_B_4608x2240_30fps) / sizeof(sensor_2p6_setfile_B_4608x2240_30fps[0]),
sizeof(sensor_2p6_setfile_B_2304x1728_30fps) / sizeof(sensor_2p6_setfile_B_2304x1728_30fps[0]),
sizeof(sensor_2p6_setfile_B_2304x1728_15fps) / sizeof(sensor_2p6_setfile_B_2304x1728_15fps[0]),
- sizeof(sensor_2p6_setfile_B_2304x1296_30fps) / sizeof(sensor_2p6_setfile_B_2304x1296_30fps[0]),
+ sizeof(sensor_2p6_setfile_B_2304x1312_30fps) / sizeof(sensor_2p6_setfile_B_2304x1312_30fps[0]),
+ sizeof(sensor_2p6_setfile_B_2304x1120_30fps) / sizeof(sensor_2p6_setfile_B_2304x1120_30fps[0]),
sizeof(sensor_2p6_setfile_B_1152x864_120fps) / sizeof(sensor_2p6_setfile_B_1152x864_120fps[0]),
- sizeof(sensor_2p6_setfile_B_1152x648_120fps) / sizeof(sensor_2p6_setfile_B_1152x648_120fps[0]),
+ sizeof(sensor_2p6_setfile_B_1152x656_120fps) / sizeof(sensor_2p6_setfile_B_1152x656_120fps[0]),
};
#ifdef S5K2P6_USE_COMPACT_PLL_INFO
-static const struct sensor_pll_info_compact *sensor_2p6_pllinfos_B[] = {
+static const struct sensor_pll_info_compact *sensor_2p6_pllinfos_B[] =
#else
-static const struct sensor_pll_info *sensor_2p6_pllinfos_B[] = {
+static const struct sensor_pll_info *sensor_2p6_pllinfos_B[] =
#endif
+{
/* 16x12 margin */
&sensor_2p6_pllinfo_B_4608x3456_30fps,
- &sensor_2p6_pllinfo_B_4608x2592_30fps,
+ &sensor_2p6_pllinfo_B_4608x2624_30fps,
+ &sensor_2p6_pllinfo_B_4608x2240_30fps,
&sensor_2p6_pllinfo_B_2304x1728_30fps,
&sensor_2p6_pllinfo_B_2304x1728_15fps,
- &sensor_2p6_pllinfo_B_2304x1296_30fps,
+ &sensor_2p6_pllinfo_B_2304x1312_30fps,
+ &sensor_2p6_pllinfo_B_2304x1120_30fps,
&sensor_2p6_pllinfo_B_1152x864_120fps,
- &sensor_2p6_pllinfo_B_1152x648_120fps,
+ &sensor_2p6_pllinfo_B_1152x656_120fps,
};
#endif
cis->cis_data->low_expo_start = 33000;
cis->need_mode_change = false;
- sensor_2p6_cis_data_calculation(sensor_2p6_pllinfos[setfile_index], cis->cis_data);
+ if (cis->use_pdaf == true) {
+ sensor_2p6_cis_data_calculation(sensor_2p6_pdaf_pllinfos[setfile_index], cis->cis_data);
+ } else {
+ sensor_2p6_cis_data_calculation(sensor_2p6_pllinfos[setfile_index], cis->cis_data);
+ }
setinfo.return_value = 0;
CALL_CISOPS(cis, cis_get_min_exposure_time, subdev, &setinfo.return_value);
cis = (struct fimc_is_cis *)v4l2_get_subdevdata(subdev);
BUG_ON(!cis);
+ /* ARM start */
+ ret = fimc_is_sensor_write16(cis->client, 0xFCFC, 0x4000);
+ ret = fimc_is_sensor_write16(cis->client, 0x6010, 0x0001);
+ /* 3ms delay to operate sensor FW */
+ usleep_range(3000, 3000);
+
+ /* setfile global setting is at camera entrance */
+ if (cis->use_pdaf == true) {
+ ret = sensor_cis_set_registers(subdev, sensor_2p6_pdaf_global, sensor_2p6_pdaf_global_size);
+ } else {
+ ret = sensor_cis_set_registers(subdev, sensor_2p6_global, sensor_2p6_global_size);
+ }
+
+ if (ret < 0) {
+ err("sensor_2p6_set_registers fail!!");
+ goto p_err;
+ }
+
dbg_sensor(1, "[%s] global setting done\n", __func__);
+p_err:
return ret;
}
}
}
+ /* In case of fastAE or high speed fps, forced to set pdaf off */
+ if (cis->use_pdaf == true) {
+ if (mode <= SENSOR_2P6_MODE_2304X1120_30) {
+ cis->cis_data->companion_data.paf_stat_enable = true;
+ } else {
+ cis->cis_data->companion_data.paf_stat_enable = false;
+ }
+ dbg_sensor(1, "[%s] mode(%d) paf_stat_enable(%d) \n",
+ __func__, mode, cis->cis_data->companion_data.paf_stat_enable);
+ }
+
+#if defined(USE_SENSOR_WDR)
+ /* In case of fastAE or high speed fps, forced to set wdr off */
+ if (mode <= SENSOR_2P6_MODE_4608X2240_30) {
+ cis->cis_data->companion_data.wdr_enable = true;
+ } else {
+ cis->cis_data->companion_data.wdr_enable = false;
+ }
+ dbg_sensor(1, "[%s] mode(%d) wdr_enable(%d) \n",
+ __func__, mode, cis->cis_data->companion_data.wdr_enable);
+#endif
+
if (cis->use_pdaf == true) {
sensor_2p6_cis_data_calculation(sensor_2p6_pdaf_pllinfos[mode], cis->cis_data);
ret = sensor_cis_set_registers(subdev, sensor_2p6_pdaf_setfiles[mode], sensor_2p6_pdaf_setfile_sizes[mode]);
}
if (cis->use_pdaf == true) {
-#if defined(S5K2P6_PDAF_DISABLE)
- /* TEMP : PDAF disable */
- ret = fimc_is_sensor_write16(cis->client, 0xFCFC, 0x4000);
- ret = fimc_is_sensor_write8(cis->client, 0x3059, 0x00);
- info("[%s] S5K2P6_PDAF_DISABLE\n", __func__);
+#if defined(S5K2P6_BPC_DISABLE)
+ /* BPC disable */
+ ret = fimc_is_sensor_write16(cis->client, 0x6028, 0x4000);
+ if (ret < 0) {
+ err("2p6 sensor write fail !!!");
+ goto p_err;
+ }
+ ret = fimc_is_sensor_write16(cis->client, 0x0B0E, 0x0000);
+ if (ret < 0) {
+ err("2p6 sensor write fail !!!");
+ goto p_err;
+ }
+ info("[%s] S5K2P6_BPC_DISABLE\n", __func__);
#endif
-#if defined(S5K2P6_TAIL_DISABLE)
- /* TEMP : Tail mode disable */
- ret = fimc_is_sensor_write16(cis->client, 0x6028, 0x2000);
- ret = fimc_is_sensor_write16(cis->client, 0x602A, 0x19E0);
- ret = fimc_is_sensor_write16(cis->client, 0x6F12, 0x0001);
+ /* pdaf tail mode off */
+ if (cis->cis_data->companion_data.paf_stat_enable == false) {
+ info("[%s]: Set pdaf tail mode off (paf_stat_enable %d)\n",
+ __func__, cis->cis_data->companion_data.paf_stat_enable);
+
+ ret = fimc_is_sensor_write16(cis->client, 0x6028, 0x2000);
+ if (ret < 0) {
+ err("2p6 sensor write fail !!!");
+ goto p_err;
+ }
+ ret = fimc_is_sensor_write16(cis->client, 0x602A, 0x1BB0);
+ if (ret < 0) {
+ err("2p6 sensor write fail !!!");
+ goto p_err;
+ }
+ ret = fimc_is_sensor_write16(cis->client, 0x6F12, 0x0100);
+ if (ret < 0) {
+ err("2p6 sensor write fail !!!");
+ goto p_err;
+ }
+ }
+ }
- ret = fimc_is_sensor_write16(cis->client, 0xFCFC, 0x4000);
- ret = fimc_is_sensor_write16(cis->client, 0x30E2, 0x0000);
- info("[%s] S5K2P6_TAIL_DISABLE\n", __func__);
-#endif
+#if defined(USE_SENSOR_WDR)
+ if (cis->cis_data->companion_data.wdr_enable == false) {
+ info("[%s] S5K2P6_WDR_DISABLE\n", __func__);
+ ret = fimc_is_sensor_write16(cis->client, 0x6028, 0x4000);
+ if (ret < 0) {
+ err("2p6 sensor write fail !!!");
+ goto p_err;
+ }
-#if defined(S5K2P6_BPC_DISABLE)
- /* TEMP : BPC disable */
- ret = fimc_is_sensor_write16(cis->client, 0xFCFC, 0x4000);
- ret = fimc_is_sensor_write8(cis->client, 0x0B0E, 0x00);
- info("[%s] S5K2P6_BPC_DISABLE\n", __func__);
-#endif
+ ret = fimc_is_sensor_write16(cis->client, 0x0216, 0x0000);
+ if (ret < 0) {
+ err("2p6 sensor write fail !!!");
+ goto p_err;
+ }
}
+#endif
dbg_sensor(1, "[%s] mode changed(%d)\n", __func__, mode);
}
#endif
- /* Sensor stream on */
ret = fimc_is_sensor_write16(client, 0x6028, 0x4000);
if (ret < 0)
err("i2c transfer fail addr(%x), val(%x), ret = %d\n", 0x6028, 0x4000, ret);
+
+#if defined(USE_SENSOR_WDR)
+ /* WDR */
+ if (fimc_is_vender_wdr_mode_on(cis_data)) {
+ /* wdr on */
+ ret = fimc_is_sensor_write16(client, 0x0216, 0x0100);
+ if (ret < 0)
+ err("i2c transfer fail addr(%x), val(%x), ret = %d\n", 0x0216, 0x0100, ret);
+ /* Apply seperating long and short dgain */
+ ret = fimc_is_sensor_write16(client, 0x31FA, 0x0001);
+ if (ret < 0)
+ err("i2c transfer fail addr(%x), val(%x), ret = %d\n", 0x31FA, 0x0001, ret);
+ } else {
+ /* wdr off */
+ ret = fimc_is_sensor_write16(client, 0x0216, 0x0000);
+ if (ret < 0)
+ err("i2c transfer fail addr(%x), val(%x), ret = %d\n", 0x0216, 0x0000, ret);
+ /* Apply common value long and short dgain */
+ ret = fimc_is_sensor_write16(client, 0x31FA, 0x0000);
+ if (ret < 0)
+ err("i2c transfer fail addr(%x), val(%x), ret = %d\n", 0x31FA, 0x0000, ret);
+ }
+#endif
+
+ /* Sensor stream on */
ret = fimc_is_sensor_write16(client, 0x0100, 0x0100);
if (ret < 0)
err("i2c transfer fail addr(%x), val(%x), ret = %d\n", 0x0100, 0x0100, ret);
if (ret < 0)
goto p_err;
+#if defined(USE_SENSOR_WDR)
/* Long exposure */
- ret = fimc_is_sensor_write16(client, 0x021E, long_coarse_int);
- if (ret < 0)
- goto p_err;
+ if (fimc_is_vender_wdr_mode_on(cis_data)) {
+ ret = fimc_is_sensor_write16(client, 0x021E, long_coarse_int);
+ if (ret < 0)
+ goto p_err;
+ }
+#endif
dbg_sensor(1, "[MOD:D:%d] %s, vsync_cnt(%d), vt_pic_clk_freq_mhz (%d),"
KERN_CONT "line_length_pck(%d), min_fine_int (%d)\n", cis->id, __func__,
goto p_err;
}
- dgains[0] = dgains[1] = dgains[2] = dgains[3] = short_gain;
/* Short digital gain */
- ret = fimc_is_sensor_write16_array(client, 0x020E, dgains, 4);
+ dgains[0] = dgains[1] = dgains[2] = dgains[3] = short_gain;
+ ret = fimc_is_sensor_write16(client, 0x020E, short_gain);
if (ret < 0)
goto p_err;
/* Long digital gain */
- dgains[0] = dgains[1] = dgains[2] = dgains[3] = long_gain;
- ret = fimc_is_sensor_write16_array(client, 0x3062, dgains, 4);
- if (ret < 0)
- goto p_err;
+ if (fimc_is_vender_wdr_mode_on(cis_data)) {
+ dgains[0] = dgains[1] = dgains[2] = dgains[3] = long_gain;
+ ret = fimc_is_sensor_write16(client, 0x0C82, long_gain);
+ if (ret < 0)
+ goto p_err;
+ }
#ifdef DEBUG_SENSOR_TIME
do_gettimeofday(&end);
sensor_peri = find_peri_by_cis_id(device, SENSOR_NAME_S5K2P6);
if (!sensor_peri) {
- probe_info("sensor peri is net yet probed");
+ probe_info("sensor peri is not yet probed");
return -EPROBE_DEFER;
}
#define EXT_CLK_Mhz (26)
-#define SENSOR_2P6_MAX_WIDTH (4608 + 16)
-#define SENSOR_2P6_MAX_HEIGHT (3456 + 12)
+#define SENSOR_2P6_MAX_WIDTH (4608 + 0)
+#define SENSOR_2P6_MAX_HEIGHT (3456 + 0)
/* TODO: Check below values are valid */
#define SENSOR_2P6_FINE_INTEGRATION_TIME_MIN 0x0618
#define S5K2P6_USE_COMPACT_PLL_INFO
+typedef enum
+{
+ SENSOR_2P6_MODE_4608X3456_30 = 0,
+ SENSOR_2P6_MODE_4608X2624_30 = 1,
+ SENSOR_2P6_MODE_4608X2240_30 = 2,
+ SENSOR_2P6_MODE_2304X1728_30 = 3,
+ SENSOR_2P6_MODE_2304X1728_15 = 4,
+ SENSOR_2P6_MODE_2304X1312_30 = 5,
+ SENSOR_2P6_MODE_2304X1120_30 = 6,
+ SENSOR_2P6_MODE_1152X864_120 = 7,
+ SENSOR_2P6_MODE_1152X656_120 = 8,
+ SENSOR_2P6_MODE_END
+}SENSOR_2P6_MODE_ENUM;
+
#endif
static struct fimc_is_sensor_cfg config_module_2p6[] = {
/* 4608x3456@30fps */
- FIMC_IS_SENSOR_CFG_EXT(4608, 3456, 30, 32, 0, CSI_DATA_LANES_4, 1443, SET_VC(VC_TAIL_MODE_PDAF, 1152, 864), 0, 0),
- /* 4608x2592@30fps */
- FIMC_IS_SENSOR_CFG_EXT(4608, 2592, 30, 32, 1, CSI_DATA_LANES_4, 1443, SET_VC(VC_TAIL_MODE_PDAF, 1152, 656), 0, 0),
+ FIMC_IS_SENSOR_CFG_EXT(4608, 3456, 30, 32, 0, CSI_DATA_LANES_4, 1443, SET_VC(VC_TAIL_MODE_PDAF, 288, 1728), 0, 0),
+ /* 4608x2624@30fps */
+ FIMC_IS_SENSOR_CFG_EXT(4608, 2624, 30, 32, 1, CSI_DATA_LANES_4, 1443, SET_VC(VC_TAIL_MODE_PDAF, 288, 1312), 0, 0),
+ /* 4608x2240@30fps */
+ FIMC_IS_SENSOR_CFG_EXT(4608, 2240, 30, 32, 2, CSI_DATA_LANES_4, 1443, SET_VC(VC_TAIL_MODE_PDAF, 288, 1120), 0, 0),
/* 2304x1728@30fps */
- FIMC_IS_SENSOR_CFG_EXT(2304, 1728, 30, 32, 2, CSI_DATA_LANES_4, 1443, 0, 0, 0),
+ FIMC_IS_SENSOR_CFG_EXT(2304, 1728, 30, 32, 3, CSI_DATA_LANES_4, 1352, SET_VC(VC_TAIL_MODE_PDAF, 288, 1728), 0, 0),
/* 2304x1728@15fps */
- FIMC_IS_SENSOR_CFG_EXT(2304, 1728, 15, 32, 3, CSI_DATA_LANES_4, 1443, 0, 0, 0),
- /* 2304x1296@30fps */
- FIMC_IS_SENSOR_CFG_EXT(2304, 1296, 30, 32, 4, CSI_DATA_LANES_4, 1443, 0, 0, 0),
+ FIMC_IS_SENSOR_CFG_EXT(2304, 1728, 15, 32, 4, CSI_DATA_LANES_4, 1352, SET_VC(VC_TAIL_MODE_PDAF, 288, 1728), 0, 0),
+ /* 2304x1312@30fps */
+ FIMC_IS_SENSOR_CFG_EXT(2304, 1312, 30, 32, 5, CSI_DATA_LANES_4, 1352, SET_VC(VC_TAIL_MODE_PDAF, 288, 1312), 0, 0),
+ /* 2304x1120@30fps */
+ FIMC_IS_SENSOR_CFG_EXT(2304, 1120, 30, 32, 6, CSI_DATA_LANES_4, 1352, SET_VC(VC_TAIL_MODE_PDAF, 288, 1120), 0, 0),
/* 1152x864@120fps */
- FIMC_IS_SENSOR_CFG_EXT(1152, 864, 120, 32, 5, CSI_DATA_LANES_4, 1443, 0, 0, 0),
- /* 1152x648@120fps */
- FIMC_IS_SENSOR_CFG_EXT(1152, 648, 120, 32, 6, CSI_DATA_LANES_4, 1443, 0, 0, 0),
+ FIMC_IS_SENSOR_CFG_EXT(1152, 864, 120, 32, 7, CSI_DATA_LANES_4, 1352, 0, 0, 0),
+ /* 1152x656@120fps */
+ FIMC_IS_SENSOR_CFG_EXT(1152, 656, 120, 32, 8, CSI_DATA_LANES_4, 1352, 0, 0, 0),
};
static struct fimc_is_vci vci_module_2p6[] = {
{
.pixelformat = V4L2_PIX_FMT_SBGGR10,
.config = {{0, HW_FORMAT_RAW10, VCI_DMA_NORMAL},
- {1, HW_FORMAT_USER, VCI_DMA_INTERNAL},
+ {1, HW_FORMAT_RAW10, VCI_DMA_INTERNAL},
{2, 0, VCI_DMA_NORMAL},
{3, 0, VCI_DMA_NORMAL}}
}, {
.pixelformat = V4L2_PIX_FMT_SBGGR12,
.config = {{0, HW_FORMAT_RAW10, VCI_DMA_NORMAL},
- {1, HW_FORMAT_USER, VCI_DMA_INTERNAL},
+ {1, HW_FORMAT_RAW10, VCI_DMA_INTERNAL},
{2, 0, VCI_DMA_NORMAL},
{3, 0, VCI_DMA_NORMAL}}
}, {
.pixelformat = V4L2_PIX_FMT_SBGGR16,
.config = {{0, HW_FORMAT_RAW10, VCI_DMA_NORMAL},
- {1, HW_FORMAT_USER, VCI_DMA_INTERNAL},
+ {1, HW_FORMAT_RAW10, VCI_DMA_INTERNAL},
{2, 0, VCI_DMA_NORMAL},
{3, 0, VCI_DMA_NORMAL}}
}
#endif
SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_ON, gpio_reset, "pdaf sen_rst high", PIN_OUTPUT, 1, 500);
- SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_ON, gpio_none, "pin", PIN_FUNCTION, 2, 0);
+ SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_ON, gpio_none, "pin", PIN_FUNCTION, 2, 3000);
/* BACK CAEMRA - POWER OFF */
+ SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_none, "pin_none", PIN_NONE, 1, 500);
+ SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_none, "pin", PIN_FUNCTION, 1, 0);
+ SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_reset, "pdaf sen_rst", PIN_OUTPUT, 0, 2000);
+
if (gpio_is_valid(gpio_cam_af_en)) {
SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_cam_af_en, "pdaf gpio_cam_af_en", PIN_OUTPUT, 0, 200);
} else {
SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_none, "VDD_CAM_AF_2P8", PIN_REGULATOR, 0, 200);
}
- SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_none, "pin", PIN_FUNCTION, 1, 0);
- SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_none, "pin_none", PIN_NONE, 1, 500);
- SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_reset, "pdaf sen_rst", PIN_OUTPUT, 0, 200);
-
#if defined (CONFIG_OIS_USE)
if (gpio_is_valid(gpio_ois_reset)) { /* OIS_RESET */
SET_PIN(pdata, SENSOR_SCENARIO_NORMAL, GPIO_SCENARIO_OFF, gpio_ois_reset, "pdaf gpio_ois_reset", PIN_OUTPUT, 0, 0);
#endif
/* READ_ROM - POWER OFF */
+ SET_PIN(pdata, SENSOR_SCENARIO_READ_ROM, GPIO_SCENARIO_OFF, gpio_none, "pin_none", PIN_NONE, 1, 500);
+
#if defined(USE_AF_PWR_READ_EEPROM)
if (gpio_is_valid(gpio_cam_af_en)) {
SET_PIN(pdata, SENSOR_SCENARIO_READ_ROM, GPIO_SCENARIO_OFF, gpio_cam_af_en, "pdaf gpio_cam_af_en", PIN_OUTPUT, 0, 10);
}
#endif
+#if defined(CONFIG_CAMERA_JACKPOT)|| defined(CONFIG_CAMERA_JACKPOT_JPN)
/* VISION - POWER ON */
SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_ON, gpio_reset, "pdaf sen_rst low", PIN_OUTPUT, 0, 0);
}
SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_ON, gpio_reset, "pdaf sen_rst high", PIN_OUTPUT, 1, 500);
- SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_ON, gpio_none, "pin", PIN_FUNCTION, 2, 0);
+ SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_ON, gpio_none, "pin", PIN_FUNCTION, 2, 3000);
/* VISION - POWER OFF */
+ SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_none, "pin_none", PIN_NONE, 1, 500);
+ SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_none, "pin", PIN_FUNCTION, 1, 0);
+ SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_reset, "pdaf sen_rst", PIN_OUTPUT, 0, 2000);
+
if (gpio_is_valid(gpio_cam_af_en)) {
SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_cam_af_en, "pdaf gpio_cam_af_en", PIN_OUTPUT, 0, 200);
} else {
SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_none, "VDD_CAM_AF_2P8", PIN_REGULATOR, 0, 200);
}
- SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_none, "pin", PIN_FUNCTION, 1, 0);
- SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_none, "pin_none", PIN_NONE, 1, 500);
- SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_reset, "pdaf sen_rst", PIN_OUTPUT, 0, 200);
-
if (gpio_is_valid(gpio_cam_io_en)) {
SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_cam_io_en, "pdaf gpio_cam_io_en", PIN_OUTPUT, 0, 100);
} else {
SET_PIN(pdata, SENSOR_SCENARIO_VISION, GPIO_SCENARIO_OFF, gpio_none, "VDDA_2.8V_CAM", PIN_REGULATOR, 0, 100);
#endif
}
-
+#endif
dev_info(dev, "%s X v4\n", __func__);
module->subdev = subdev_module;
module->device = pdata->id;
module->client = NULL;
- module->active_width = 4608 + 16;
- module->active_height = 3456 + 12;
+ module->active_width = 4608 + 0;
+ module->active_height = 3456 + 0;
module->margin_left = 0;
module->margin_right = 0;
module->margin_top = 0;
module->vcis = ARRAY_SIZE(vci_module_2p6);
module->vci = vci_module_2p6;
module->sensor_maker = "SLSI";
- module->sensor_name = "S5K2P6";
+ if (use_pdaf == true) {
+ module->sensor_name = "S5K2P6SX"; /* pdaf sensor */
+ } else {
+ module->sensor_name = "S5K2P6"; /* default */
+ }
if (pdata->position == SENSOR_MODULE_2P6_REAR) {
module->setfile_name = "setfile_2p6.bin";
} else if (pdata->position == SENSOR_MODULE_2P6_FRONT) {
module->cfgs = ARRAY_SIZE(config_module_2p6);
module->cfg = config_module_2p6;
module->ops = NULL;
- for (ch = 1; ch < CSI_VIRTUAL_CH_MAX; ch++)
+ for (ch = 1; ch < CSI_VIRTUAL_CH_MAX; ch++) {
module->internal_vc[ch] = pdata->internal_vc[ch];
+ module->vc_buffer_offset[ch] = pdata->vc_buffer_offset[ch];
+ }
/* Sensor peri */
module->private_data = kzalloc(sizeof(struct fimc_is_device_sensor_peri), GFP_KERNEL);
if (!module->private_data) {