1019 lines
18 KiB
C
1019 lines
18 KiB
C
/*
|
|
* imx185_mode_tbls.h - imx185 sensor mode tables
|
|
*
|
|
* Copyright (c) 2016-2019, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms and conditions of the GNU General Public License,
|
|
* version 2, as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#ifndef __IMX185_I2C_TABLES__
|
|
#define __IMX185_I2C_TABLES__
|
|
|
|
#include <media/camera_common.h>
|
|
#include <linux/miscdevice.h>
|
|
|
|
#define IMX185_TABLE_WAIT_MS 0
|
|
#define IMX185_TABLE_END 1
|
|
#define IMX185_MAX_RETRIES 3
|
|
#define IMX185_WAIT_MS_STOP 1
|
|
#define IMX185_WAIT_MS_START 30
|
|
#define IMX185_WAIT_MS_STREAM 210
|
|
#define IMX185_GAIN_TABLE_SIZE 255
|
|
|
|
/* #define INIT_ET_INSETTING 1 */
|
|
|
|
#define imx185_reg struct reg_8
|
|
|
|
static imx185_reg imx185_start[] = {
|
|
{0x3000, 0x00 },
|
|
{IMX185_TABLE_WAIT_MS, IMX185_WAIT_MS_START},
|
|
{0x3002, 0x00},
|
|
{0x3049, 0x02},
|
|
{IMX185_TABLE_WAIT_MS, IMX185_WAIT_MS_STREAM},
|
|
{ IMX185_TABLE_END, 0x00 }
|
|
};
|
|
|
|
static imx185_reg imx185_stop[] = {
|
|
{0x3000, 0x01 },
|
|
{IMX185_TABLE_WAIT_MS, IMX185_WAIT_MS_STOP},
|
|
{IMX185_TABLE_END, 0x00 }
|
|
};
|
|
|
|
static imx185_reg tp_colorbars[] = {
|
|
{0x300A, 0x00},/*BLC for PG*/
|
|
{0x300E, 0x00},
|
|
{0x3089, 0x00},
|
|
{0x308C, 0x13},
|
|
/*
|
|
* bit 0: PG mode enable
|
|
* bit 1: Back Ground Transient:
|
|
* bit [4-7]: PG mode setting, Set at 0h to Fh, suggest 1 or 5
|
|
* raw12 max output FFEh
|
|
*/
|
|
{IMX185_TABLE_WAIT_MS, IMX185_WAIT_MS_STOP},
|
|
{IMX185_TABLE_END, 0x00}
|
|
};
|
|
|
|
static imx185_reg imx185_1920x1080_crop_60fps[] = {
|
|
{0x3002, 0x01},
|
|
{0x3005, 0x01},
|
|
{0x3006, 0x00},
|
|
{0x3007, 0x50},
|
|
{0x3009, 0x01},
|
|
{0x300a, 0xf0},
|
|
{0x300f, 0x01},
|
|
{0x3012, 0x0f},
|
|
{0x3018, 0x65},
|
|
{0x3019, 0x04},
|
|
{0x301b, 0x4c},
|
|
{0x301c, 0x04},
|
|
{0x301d, 0x08},
|
|
{0x301e, 0x02},
|
|
|
|
{0x3036, 0x06},
|
|
{0x3038, 0x08},
|
|
{0x3039, 0x00},
|
|
{0x303a, 0x40},
|
|
{0x303b, 0x04},
|
|
{0x303c, 0x0c},
|
|
{0x303d, 0x00},
|
|
{0x303e, 0x7c},
|
|
{0x303f, 0x07},
|
|
|
|
{0x3044, 0xe1},
|
|
{0x3048, 0x33},
|
|
|
|
{0x305C, 0x20},
|
|
{0x305D, 0x00},
|
|
{0x305E, 0x18},
|
|
{0x305F, 0x00},
|
|
{0x3063, 0x74},
|
|
|
|
{0x3084, 0x0f},
|
|
{0x3086, 0x10},
|
|
{0x30A1, 0x44},
|
|
{0x30cf, 0xe1},
|
|
{0x30d0, 0x29},
|
|
{0x30d2, 0x9b},
|
|
{0x30d3, 0x01},
|
|
|
|
{0x311d, 0x0a},
|
|
{0x3123, 0x0f},
|
|
{0x3126, 0xdf},
|
|
{0x3147, 0x87},
|
|
{0x31e0, 0x01},
|
|
{0x31e1, 0x9e},
|
|
{0x31e2, 0x01},
|
|
{0x31e5, 0x05},
|
|
{0x31e6, 0x05},
|
|
{0x31e7, 0x3a},
|
|
{0x31e8, 0x3a},
|
|
|
|
{0x3203, 0xc8},
|
|
{0x3207, 0x54},
|
|
{0x3213, 0x16},
|
|
{0x3215, 0xf6},
|
|
{0x321a, 0x14},
|
|
{0x321b, 0x51},
|
|
{0x3229, 0xe7},
|
|
{0x322a, 0xf0},
|
|
{0x322b, 0x10},
|
|
{0x3231, 0xe7},
|
|
{0x3232, 0xf0},
|
|
{0x3233, 0x10},
|
|
{0x323c, 0xe8},
|
|
{0x323d, 0x70},
|
|
{0x3243, 0x08},
|
|
{0x3244, 0xe1},
|
|
{0x3245, 0x10},
|
|
{0x3247, 0xe7},
|
|
{0x3248, 0x60},
|
|
{0x3249, 0x1e},
|
|
{0x324b, 0x00},
|
|
{0x324c, 0x41},
|
|
{0x3250, 0x30},
|
|
{0x3251, 0x0a},
|
|
{0x3252, 0xff},
|
|
{0x3253, 0xff},
|
|
{0x3254, 0xff},
|
|
{0x3255, 0x02},
|
|
{0x3257, 0xf0},
|
|
{0x325a, 0xa6},
|
|
{0x325d, 0x14},
|
|
{0x325e, 0x51},
|
|
{0x3260, 0x00},
|
|
{0x3261, 0x61},
|
|
{0x3266, 0x30},
|
|
{0x3267, 0x05},
|
|
{0x3275, 0xe7},
|
|
{0x3281, 0xea},
|
|
{0x3282, 0x70},
|
|
{0x3285, 0xff},
|
|
{0x328a, 0xf0},
|
|
{0x328d, 0xb6},
|
|
{0x328e, 0x40},
|
|
{0x3290, 0x42},
|
|
{0x3291, 0x51},
|
|
{0x3292, 0x1e},
|
|
{0x3294, 0xc4},
|
|
{0x3295, 0x20},
|
|
{0x3297, 0x50},
|
|
{0x3298, 0x31},
|
|
{0x3299, 0x1f},
|
|
{0x329b, 0xc0},
|
|
{0x329c, 0x60},
|
|
{0x329e, 0x4c},
|
|
{0x329f, 0x71},
|
|
{0x32a0, 0x1f},
|
|
{0x32a2, 0xb6},
|
|
{0x32a3, 0xc0},
|
|
{0x32a4, 0x0b},
|
|
{0x32a9, 0x24},
|
|
{0x32aa, 0x41},
|
|
{0x32b0, 0x25},
|
|
{0x32b1, 0x51},
|
|
{0x32b7, 0x1c},
|
|
{0x32b8, 0xc1},
|
|
{0x32b9, 0x12},
|
|
{0x32be, 0x1d},
|
|
{0x32bf, 0xd1},
|
|
{0x32c0, 0x12},
|
|
{0x32c2, 0xa8},
|
|
{0x32c3, 0xc0},
|
|
{0x32c4, 0x0a},
|
|
{0x32c5, 0x1e},
|
|
{0x32c6, 0x21},
|
|
{0x32c9, 0xb0},
|
|
{0x32ca, 0x40},
|
|
{0x32cc, 0x26},
|
|
{0x32cd, 0xa1},
|
|
{0x32d0, 0xb6},
|
|
{0x32d1, 0xc0},
|
|
{0x32d2, 0x0b},
|
|
{0x32d4, 0xe2},
|
|
{0x32d5, 0x40},
|
|
{0x32d8, 0x4e},
|
|
{0x32d9, 0xa1},
|
|
{0x32ec, 0xf0},
|
|
|
|
{0x3303, 0x00},
|
|
{0x3305, 0x03},
|
|
{0x3314, 0x04},
|
|
{0x3315, 0x01},
|
|
{0x3316, 0x04},
|
|
{0x3317, 0x04},
|
|
{0x3318, 0x38},
|
|
{0x3319, 0x04},
|
|
{0x332c, 0x40},
|
|
{0x332d, 0x20},
|
|
{0x332e, 0x03},
|
|
{0x333e, 0x0c},
|
|
{0x333f, 0x0c},
|
|
{0x3340, 0x03},
|
|
{0x3341, 0x20},
|
|
{0x3342, 0x25},
|
|
{0x3343, 0x68},
|
|
{0x3344, 0x20},
|
|
{0x3345, 0x40},
|
|
{0x3346, 0x28},
|
|
{0x3347, 0x20},
|
|
{0x3348, 0x18},
|
|
{0x3349, 0x78},
|
|
{0x334a, 0x28},
|
|
{0x334e, 0xb4},
|
|
{0x334f, 0x01},
|
|
#ifdef INIT_ET_INSETTING
|
|
{0x3020, 0xe1},
|
|
{0x3021, 0x04},
|
|
#endif
|
|
{IMX185_TABLE_END, 0x00}
|
|
};
|
|
|
|
static imx185_reg imx185_1920x1080_crop_30fps[] = {
|
|
{0x3002, 0x01},
|
|
{0x3005, 0x01},
|
|
{0x3006, 0x00},
|
|
{0x3007, 0x50},
|
|
{0x3009, 0x02},
|
|
{0x300a, 0xf0},
|
|
{0x300f, 0x01},
|
|
{0x3012, 0x0f},
|
|
{0x3018, 0x65},
|
|
{0x3019, 0x04},
|
|
{0x301b, 0x89},
|
|
{0x301c, 0x08},
|
|
{0x301d, 0x08},
|
|
{0x301e, 0x02},
|
|
|
|
{0x3036, 0x06},
|
|
{0x3038, 0x08},
|
|
{0x3039, 0x00},
|
|
{0x303a, 0x40},
|
|
{0x303b, 0x04},
|
|
{0x303c, 0x0c},
|
|
{0x303d, 0x00},
|
|
{0x303e, 0x7c},
|
|
{0x303f, 0x07},
|
|
|
|
{0x3048, 0x33},
|
|
|
|
{0x305C, 0x20},
|
|
{0x305D, 0x00},
|
|
{0x305E, 0x18},
|
|
{0x305F, 0x00},
|
|
{0x3063, 0x74},
|
|
|
|
{0x3084, 0x0f},
|
|
{0x3086, 0x10},
|
|
{0x30cf, 0xe1},
|
|
{0x30d0, 0x29},
|
|
{0x30d2, 0x9b},
|
|
{0x30d3, 0x01},
|
|
|
|
{0x311d, 0x0a},
|
|
{0x3123, 0x0f},
|
|
{0x3126, 0xdf},
|
|
{0x3147, 0x87},
|
|
{0x31e0, 0x01},
|
|
{0x31e1, 0x9e},
|
|
{0x31e2, 0x01},
|
|
{0x31e5, 0x05},
|
|
{0x31e6, 0x05},
|
|
{0x31e7, 0x3a},
|
|
{0x31e8, 0x3a},
|
|
|
|
{0x3203, 0xc8},
|
|
{0x3207, 0x54},
|
|
{0x3213, 0x16},
|
|
{0x3215, 0xf6},
|
|
{0x321a, 0x14},
|
|
{0x321b, 0x51},
|
|
{0x3229, 0xe7},
|
|
{0x322a, 0xf0},
|
|
{0x322b, 0x10},
|
|
{0x3231, 0xe7},
|
|
{0x3232, 0xf0},
|
|
{0x3233, 0x10},
|
|
{0x323c, 0xe8},
|
|
{0x323d, 0x70},
|
|
{0x3243, 0x08},
|
|
{0x3244, 0xe1},
|
|
{0x3245, 0x10},
|
|
{0x3247, 0xe7},
|
|
{0x3248, 0x60},
|
|
{0x3249, 0x1e},
|
|
{0x324b, 0x00},
|
|
{0x324c, 0x41},
|
|
{0x3250, 0x30},
|
|
{0x3251, 0x0a},
|
|
{0x3252, 0xff},
|
|
{0x3253, 0xff},
|
|
{0x3254, 0xff},
|
|
{0x3255, 0x02},
|
|
{0x3257, 0xf0},
|
|
{0x325a, 0xa6},
|
|
{0x325d, 0x14},
|
|
{0x325e, 0x51},
|
|
{0x3260, 0x00},
|
|
{0x3261, 0x61},
|
|
{0x3266, 0x30},
|
|
{0x3267, 0x05},
|
|
{0x3275, 0xe7},
|
|
{0x3281, 0xea},
|
|
{0x3282, 0x70},
|
|
{0x3285, 0xff},
|
|
{0x328a, 0xf0},
|
|
{0x328d, 0xb6},
|
|
{0x328e, 0x40},
|
|
{0x3290, 0x42},
|
|
{0x3291, 0x51},
|
|
{0x3292, 0x1e},
|
|
{0x3294, 0xc4},
|
|
{0x3295, 0x20},
|
|
{0x3297, 0x50},
|
|
{0x3298, 0x31},
|
|
{0x3299, 0x1f},
|
|
{0x329b, 0xc0},
|
|
{0x329c, 0x60},
|
|
{0x329e, 0x4c},
|
|
{0x329f, 0x71},
|
|
{0x32a0, 0x1f},
|
|
{0x32a2, 0xb6},
|
|
{0x32a3, 0xc0},
|
|
{0x32a4, 0x0b},
|
|
{0x32a9, 0x24},
|
|
{0x32aa, 0x41},
|
|
{0x32b0, 0x25},
|
|
{0x32b1, 0x51},
|
|
{0x32b7, 0x1c},
|
|
{0x32b8, 0xc1},
|
|
{0x32b9, 0x12},
|
|
{0x32be, 0x1d},
|
|
{0x32bf, 0xd1},
|
|
{0x32c0, 0x12},
|
|
{0x32c2, 0xa8},
|
|
{0x32c3, 0xc0},
|
|
{0x32c4, 0x0a},
|
|
{0x32c5, 0x1e},
|
|
{0x32c6, 0x21},
|
|
{0x32c9, 0xb0},
|
|
{0x32ca, 0x40},
|
|
{0x32cc, 0x26},
|
|
{0x32cd, 0xa1},
|
|
{0x32d0, 0xb6},
|
|
{0x32d1, 0xc0},
|
|
{0x32d2, 0x0b},
|
|
{0x32d4, 0xe2},
|
|
{0x32d5, 0x40},
|
|
{0x32d8, 0x4e},
|
|
{0x32d9, 0xa1},
|
|
{0x32ec, 0xf0},
|
|
|
|
{0x3303, 0x10},
|
|
{0x3305, 0x03},
|
|
{0x3314, 0x04},
|
|
{0x3315, 0x01},
|
|
{0x3316, 0x04},
|
|
{0x3317, 0x04},
|
|
{0x3318, 0x38},
|
|
{0x3319, 0x04},
|
|
{0x332c, 0x30},
|
|
{0x332d, 0x20},
|
|
{0x332e, 0x03},
|
|
{0x333e, 0x0c},
|
|
{0x333f, 0x0c},
|
|
{0x3340, 0x03},
|
|
{0x3341, 0x20},
|
|
{0x3342, 0x25},
|
|
{0x3343, 0x58},
|
|
{0x3344, 0x10},
|
|
{0x3345, 0x30},
|
|
{0x3346, 0x18},
|
|
{0x3347, 0x10},
|
|
{0x3348, 0x10},
|
|
{0x3349, 0x48},
|
|
{0x334a, 0x28},
|
|
{0x334e, 0xb4},
|
|
{0x334f, 0x01},
|
|
#ifdef INIT_ET_INSETTING
|
|
{0x3020, 0xe1},
|
|
{0x3021, 0x04},
|
|
#endif
|
|
{IMX185_TABLE_END, 0x00}
|
|
};
|
|
|
|
static imx185_reg imx185_1920x1080_hdr_crop_30fps[] = {
|
|
{0x3002, 0x01},
|
|
{0x3005, 0x01},
|
|
{0x3006, 0x00},
|
|
{0x3007, 0x50},
|
|
{0x3009, 0x02},
|
|
{0x300a, 0xf0},
|
|
|
|
{0x300c, 0x02},
|
|
{0x300f, 0x01},
|
|
{0x3010, 0x38},
|
|
{0x3011, 0x00},
|
|
{0x3012, 0x0f},
|
|
{0x3013, 0x00},
|
|
|
|
{0x3018, 0x65},
|
|
{0x3019, 0x04},
|
|
{0x301b, 0x98},
|
|
{0x301c, 0x08},
|
|
{0x301d, 0x08},
|
|
{0x301e, 0x02},
|
|
|
|
{0x3036, 0x06},
|
|
{0x3038, 0x08},
|
|
{0x3039, 0x00},
|
|
{0x303a, 0x40},
|
|
{0x303b, 0x04},
|
|
{0x303c, 0x0c},
|
|
{0x303d, 0x00},
|
|
{0x303e, 0x7c},
|
|
{0x303f, 0x07},
|
|
|
|
{0x3044, 0xe1},
|
|
{0x3048, 0x33},
|
|
#ifdef INIT_ET_INSETTING
|
|
{0x3020, 0x1F},/*SHS1 1055, coarse 69*/
|
|
{0x3021, 0x04},
|
|
{0x3022, 0x00},
|
|
{0x3023, 0x12},/*SHS2 18, coarse 1106*/
|
|
{0x3024, 0x00},
|
|
{0x3025, 0x00},
|
|
#endif
|
|
{0x3056, 0xc9},
|
|
{0x3057, 0x64},
|
|
|
|
{0x305C, 0x20},
|
|
{0x305D, 0x00},
|
|
{0x305E, 0x18},
|
|
{0x305F, 0x00},
|
|
{0x3063, 0x74},
|
|
|
|
{0x3065, 0x00},
|
|
|
|
{0x3084, 0x0f},
|
|
{0x3086, 0x10},
|
|
{0x30cf, 0xe1},
|
|
{0x30d0, 0x29},
|
|
{0x30d2, 0x9b},
|
|
{0x30d3, 0x01},
|
|
|
|
{0x311d, 0x0a},
|
|
{0x3123, 0x0f},
|
|
{0x3126, 0xdf},
|
|
{0x3147, 0x87},
|
|
{0x31e0, 0x01},
|
|
{0x31e1, 0x9e},
|
|
{0x31e2, 0x01},
|
|
{0x31e5, 0x05},
|
|
{0x31e6, 0x05},
|
|
{0x31e7, 0x3a},
|
|
{0x31e8, 0x3a},
|
|
|
|
{0x3203, 0xc8},
|
|
{0x3207, 0x54},
|
|
{0x3213, 0x16},
|
|
{0x3215, 0xf6},
|
|
{0x321a, 0x14},
|
|
{0x321b, 0x51},
|
|
{0x3229, 0xe7},
|
|
{0x322a, 0xf0},
|
|
{0x322b, 0x10},
|
|
{0x3231, 0xe7},
|
|
{0x3232, 0xf0},
|
|
{0x3233, 0x10},
|
|
{0x323c, 0xe8},
|
|
{0x323d, 0x70},
|
|
{0x3243, 0x08},
|
|
{0x3244, 0xe1},
|
|
{0x3245, 0x10},
|
|
{0x3247, 0xe7},
|
|
{0x3248, 0x60},
|
|
{0x3249, 0x1e},
|
|
{0x324b, 0x00},
|
|
{0x324c, 0x41},
|
|
{0x3250, 0x30},
|
|
{0x3251, 0x0a},
|
|
{0x3252, 0xff},
|
|
{0x3253, 0xff},
|
|
{0x3254, 0xff},
|
|
{0x3255, 0x02},
|
|
{0x3257, 0xf0},
|
|
{0x325a, 0xa6},
|
|
{0x325d, 0x14},
|
|
{0x325e, 0x51},
|
|
{0x3260, 0x00},
|
|
{0x3261, 0x61},
|
|
{0x3266, 0x30},
|
|
{0x3267, 0x05},
|
|
{0x3275, 0xe7},
|
|
{0x3281, 0xea},
|
|
{0x3282, 0x70},
|
|
{0x3285, 0xff},
|
|
{0x328a, 0xf0},
|
|
{0x328d, 0xb6},
|
|
{0x328e, 0x40},
|
|
{0x3290, 0x42},
|
|
{0x3291, 0x51},
|
|
{0x3292, 0x1e},
|
|
{0x3294, 0xc4},
|
|
{0x3295, 0x20},
|
|
{0x3297, 0x50},
|
|
{0x3298, 0x31},
|
|
{0x3299, 0x1f},
|
|
{0x329b, 0xc0},
|
|
{0x329c, 0x60},
|
|
{0x329e, 0x4c},
|
|
{0x329f, 0x71},
|
|
{0x32a0, 0x1f},
|
|
{0x32a2, 0xb6},
|
|
{0x32a3, 0xc0},
|
|
{0x32a4, 0x0b},
|
|
{0x32a9, 0x24},
|
|
{0x32aa, 0x41},
|
|
{0x32b0, 0x25},
|
|
{0x32b1, 0x51},
|
|
{0x32b7, 0x1c},
|
|
{0x32b8, 0xc1},
|
|
{0x32b9, 0x12},
|
|
{0x32be, 0x1d},
|
|
{0x32bf, 0xd1},
|
|
{0x32c0, 0x12},
|
|
{0x32c2, 0xa8},
|
|
{0x32c3, 0xc0},
|
|
{0x32c4, 0x0a},
|
|
{0x32c5, 0x1e},
|
|
{0x32c6, 0x21},
|
|
{0x32c9, 0xb0},
|
|
{0x32ca, 0x40},
|
|
{0x32cc, 0x26},
|
|
{0x32cd, 0xa1},
|
|
{0x32d0, 0xb6},
|
|
{0x32d1, 0xc0},
|
|
{0x32d2, 0x0b},
|
|
{0x32d4, 0xe2},
|
|
{0x32d5, 0x40},
|
|
{0x32d8, 0x4e},
|
|
{0x32d9, 0xa1},
|
|
{0x32ec, 0xf0},
|
|
|
|
{0x3303, 0x10},
|
|
{0x3305, 0x03},
|
|
{0x3314, 0x04},
|
|
{0x3315, 0x01},
|
|
{0x3316, 0x04},
|
|
{0x3317, 0x04},
|
|
{0x3318, 0x38},
|
|
{0x3319, 0x04},
|
|
{0x332c, 0x30},
|
|
{0x332d, 0x20},
|
|
{0x332e, 0x03},
|
|
{0x333e, 0x0c},
|
|
{0x333f, 0x0c},
|
|
{0x3340, 0x03},
|
|
|
|
{0x3341, 0x20},
|
|
{0x3342, 0x25},
|
|
{0x3343, 0x58},
|
|
{0x3344, 0x10},
|
|
{0x3345, 0x30},
|
|
{0x3346, 0x18},
|
|
{0x3347, 0x10},
|
|
{0x3348, 0x10},
|
|
{0x3349, 0x48},
|
|
{0x334a, 0x28},
|
|
{0x334e, 0xb4},
|
|
{0x334f, 0x01},
|
|
|
|
#ifdef INIT_ET_INSETTING
|
|
{0x3020, 0x1F},
|
|
{0x3021, 0x04},
|
|
{0x3022, 0x00},
|
|
{0x3023, 0x12},
|
|
{0x3024, 0x00},
|
|
{0x3025, 0x00},
|
|
#endif
|
|
{0x300C, 0x02},
|
|
{0x300F, 0x05},
|
|
{0x3010, 0x38},
|
|
{0x3012, 0x0F},
|
|
{0x3084, 0x0F},
|
|
{0x3065, 0x00},
|
|
{IMX185_TABLE_END, 0x00}
|
|
};
|
|
|
|
static imx185_reg imx185_1920x1080_crop_10bit_60fps[] = {
|
|
{0x3002, 0x01},
|
|
{0x3005, 0x00},/*10BIT*/
|
|
{0x3006, 0x00},
|
|
{0x3007, 0x50},
|
|
{0x3009, 0x01},
|
|
{0x300a, 0x3c},/*10BIT*/
|
|
{0x300f, 0x01},
|
|
{0x3012, 0x0f},
|
|
{0x3018, 0x65},
|
|
{0x3019, 0x04},
|
|
{0x301b, 0x4c},
|
|
{0x301c, 0x04},
|
|
{0x301d, 0x08},
|
|
{0x301e, 0x02},
|
|
|
|
{0x3036, 0x06},
|
|
{0x3038, 0x08},
|
|
{0x3039, 0x00},
|
|
{0x303a, 0x40},
|
|
{0x303b, 0x04},
|
|
{0x303c, 0x0c},
|
|
{0x303d, 0x00},
|
|
{0x303e, 0x7c},
|
|
{0x303f, 0x07},
|
|
|
|
{0x3044, 0xe1},
|
|
{0x3048, 0x33},
|
|
|
|
{0x305C, 0x20},
|
|
{0x305D, 0x00},
|
|
{0x305E, 0x18},
|
|
{0x305F, 0x00},
|
|
{0x3063, 0x74},
|
|
|
|
{0x3084, 0x0f},
|
|
{0x3086, 0x10},
|
|
{0x30A1, 0x44},
|
|
{0x30cf, 0xe1},
|
|
{0x30d0, 0x29},
|
|
{0x30d2, 0x9b},
|
|
{0x30d3, 0x01},
|
|
|
|
{0x311d, 0x0a},
|
|
{0x3123, 0x0f},
|
|
{0x3126, 0xdf},
|
|
{0x3147, 0x87},
|
|
{0x31e0, 0x01},
|
|
{0x31e1, 0x9e},
|
|
{0x31e2, 0x01},
|
|
{0x31e5, 0x05},
|
|
{0x31e6, 0x05},
|
|
{0x31e7, 0x3a},
|
|
{0x31e8, 0x3a},
|
|
|
|
{0x3203, 0xc8},
|
|
{0x3207, 0x54},
|
|
{0x3213, 0x16},
|
|
{0x3215, 0xf6},
|
|
{0x321a, 0x14},
|
|
{0x321b, 0x51},
|
|
{0x3229, 0xe7},
|
|
{0x322a, 0xf0},
|
|
{0x322b, 0x10},
|
|
{0x3231, 0xe7},
|
|
{0x3232, 0xf0},
|
|
{0x3233, 0x10},
|
|
{0x323c, 0xe8},
|
|
{0x323d, 0x70},
|
|
{0x3243, 0x08},
|
|
{0x3244, 0xe1},
|
|
{0x3245, 0x10},
|
|
{0x3247, 0xe7},
|
|
{0x3248, 0x60},
|
|
{0x3249, 0x1e},
|
|
{0x324b, 0x00},
|
|
{0x324c, 0x41},
|
|
{0x3250, 0x30},
|
|
{0x3251, 0x0a},
|
|
{0x3252, 0xff},
|
|
{0x3253, 0xff},
|
|
{0x3254, 0xff},
|
|
{0x3255, 0x02},
|
|
{0x3257, 0xf0},
|
|
{0x325a, 0xa6},
|
|
{0x325d, 0x14},
|
|
{0x325e, 0x51},
|
|
{0x3260, 0x00},
|
|
{0x3261, 0x61},
|
|
{0x3266, 0x30},
|
|
{0x3267, 0x05},
|
|
{0x3275, 0xe7},
|
|
{0x3281, 0xea},
|
|
{0x3282, 0x70},
|
|
{0x3285, 0xff},
|
|
{0x328a, 0xf0},
|
|
{0x328d, 0xb6},
|
|
{0x328e, 0x40},
|
|
{0x3290, 0x42},
|
|
{0x3291, 0x51},
|
|
{0x3292, 0x1e},
|
|
{0x3294, 0xc4},
|
|
{0x3295, 0x20},
|
|
{0x3297, 0x50},
|
|
{0x3298, 0x31},
|
|
{0x3299, 0x1f},
|
|
{0x329b, 0xc0},
|
|
{0x329c, 0x60},
|
|
{0x329e, 0x4c},
|
|
{0x329f, 0x71},
|
|
{0x32a0, 0x1f},
|
|
{0x32a2, 0xb6},
|
|
{0x32a3, 0xc0},
|
|
{0x32a4, 0x0b},
|
|
{0x32a9, 0x24},
|
|
{0x32aa, 0x41},
|
|
{0x32b0, 0x25},
|
|
{0x32b1, 0x51},
|
|
{0x32b7, 0x1c},
|
|
{0x32b8, 0xc1},
|
|
{0x32b9, 0x12},
|
|
{0x32be, 0x1d},
|
|
{0x32bf, 0xd1},
|
|
{0x32c0, 0x12},
|
|
{0x32c2, 0xa8},
|
|
{0x32c3, 0xc0},
|
|
{0x32c4, 0x0a},
|
|
{0x32c5, 0x1e},
|
|
{0x32c6, 0x21},
|
|
{0x32c9, 0xb0},
|
|
{0x32ca, 0x40},
|
|
{0x32cc, 0x26},
|
|
{0x32cd, 0xa1},
|
|
{0x32d0, 0xb6},
|
|
{0x32d1, 0xc0},
|
|
{0x32d2, 0x0b},
|
|
{0x32d4, 0xe2},
|
|
{0x32d5, 0x40},
|
|
{0x32d8, 0x4e},
|
|
{0x32d9, 0xa1},
|
|
{0x32ec, 0xf0},
|
|
|
|
{0x3303, 0x00},
|
|
{0x3305, 0x03},
|
|
{0x3314, 0x04},
|
|
{0x3315, 0x01},
|
|
{0x3316, 0x04},
|
|
{0x3317, 0x04},
|
|
{0x3318, 0x38},
|
|
{0x3319, 0x04},
|
|
{0x332c, 0x40},
|
|
{0x332d, 0x20},
|
|
{0x332e, 0x03},
|
|
{0x333e, 0x0a},/*10BIT*/
|
|
{0x333f, 0x0a},/*10BIT*/
|
|
{0x3340, 0x03},
|
|
{0x3341, 0x20},
|
|
{0x3342, 0x25},
|
|
{0x3343, 0x68},
|
|
{0x3344, 0x20},
|
|
{0x3345, 0x40},
|
|
{0x3346, 0x28},
|
|
{0x3347, 0x20},
|
|
{0x3348, 0x18},
|
|
{0x3349, 0x78},
|
|
{0x334a, 0x28},
|
|
{0x334e, 0xb4},
|
|
{0x334f, 0x01},
|
|
#ifdef INIT_ET_INSETTING
|
|
{0x3020, 0xe1},
|
|
{0x3021, 0x04},
|
|
#endif
|
|
{IMX185_TABLE_END, 0x00}
|
|
};
|
|
|
|
static imx185_reg imx185_1920x1080_crop_10bit_30fps[] = {
|
|
{0x3002, 0x01},
|
|
{0x3005, 0x00},
|
|
{0x3006, 0x00},
|
|
{0x3007, 0x50},
|
|
{0x3009, 0x02},
|
|
{0x300a, 0x3c},
|
|
{0x300f, 0x01},
|
|
{0x3012, 0x0f},
|
|
{0x3018, 0x65},
|
|
{0x3019, 0x04},
|
|
{0x301b, 0x98},
|
|
{0x301c, 0x08},
|
|
{0x301d, 0x08},
|
|
{0x301e, 0x02},
|
|
|
|
{0x3036, 0x06},
|
|
{0x3038, 0x08},
|
|
{0x3039, 0x00},
|
|
{0x303a, 0x40},
|
|
{0x303b, 0x04},
|
|
{0x303c, 0x0c},
|
|
{0x303d, 0x00},
|
|
{0x303e, 0x7c},
|
|
{0x303f, 0x07},
|
|
|
|
{0x3044, 0xe1},
|
|
{0x3048, 0x33},
|
|
|
|
{0x305C, 0x20},
|
|
{0x305D, 0x00},
|
|
{0x305E, 0x18},
|
|
{0x305F, 0x00},
|
|
{0x3063, 0x74},
|
|
|
|
{0x3084, 0x0f},
|
|
{0x3086, 0x10},
|
|
{0x30cf, 0xe1},
|
|
{0x30d0, 0x29},
|
|
{0x30d2, 0x9b},
|
|
{0x30d3, 0x01},
|
|
|
|
{0x311d, 0x0a},
|
|
{0x3123, 0x0f},
|
|
{0x3126, 0xdf},
|
|
{0x3147, 0x87},
|
|
{0x31e0, 0x01},
|
|
{0x31e1, 0x9e},
|
|
{0x31e2, 0x01},
|
|
{0x31e5, 0x05},
|
|
{0x31e6, 0x05},
|
|
{0x31e7, 0x3a},
|
|
{0x31e8, 0x3a},
|
|
|
|
{0x3203, 0xc8},
|
|
{0x3207, 0x54},
|
|
{0x3213, 0x16},
|
|
{0x3215, 0xf6},
|
|
{0x321a, 0x14},
|
|
{0x321b, 0x51},
|
|
{0x3229, 0xe7},
|
|
{0x322a, 0xf0},
|
|
{0x322b, 0x10},
|
|
{0x3231, 0xe7},
|
|
{0x3232, 0xf0},
|
|
{0x3233, 0x10},
|
|
{0x323c, 0xe8},
|
|
{0x323d, 0x70},
|
|
{0x3243, 0x08},
|
|
{0x3244, 0xe1},
|
|
{0x3245, 0x10},
|
|
{0x3247, 0xe7},
|
|
{0x3248, 0x60},
|
|
{0x3249, 0x1e},
|
|
{0x324b, 0x00},
|
|
{0x324c, 0x41},
|
|
{0x3250, 0x30},
|
|
{0x3251, 0x0a},
|
|
{0x3252, 0xff},
|
|
{0x3253, 0xff},
|
|
{0x3254, 0xff},
|
|
{0x3255, 0x02},
|
|
{0x3257, 0xf0},
|
|
{0x325a, 0xa6},
|
|
{0x325d, 0x14},
|
|
{0x325e, 0x51},
|
|
{0x3260, 0x00},
|
|
{0x3261, 0x61},
|
|
{0x3266, 0x30},
|
|
{0x3267, 0x05},
|
|
{0x3275, 0xe7},
|
|
{0x3281, 0xea},
|
|
{0x3282, 0x70},
|
|
{0x3285, 0xff},
|
|
{0x328a, 0xf0},
|
|
{0x328d, 0xb6},
|
|
{0x328e, 0x40},
|
|
{0x3290, 0x42},
|
|
{0x3291, 0x51},
|
|
{0x3292, 0x1e},
|
|
{0x3294, 0xc4},
|
|
{0x3295, 0x20},
|
|
{0x3297, 0x50},
|
|
{0x3298, 0x31},
|
|
{0x3299, 0x1f},
|
|
{0x329b, 0xc0},
|
|
{0x329c, 0x60},
|
|
{0x329e, 0x4c},
|
|
{0x329f, 0x71},
|
|
{0x32a0, 0x1f},
|
|
{0x32a2, 0xb6},
|
|
{0x32a3, 0xc0},
|
|
{0x32a4, 0x0b},
|
|
{0x32a9, 0x24},
|
|
{0x32aa, 0x41},
|
|
{0x32b0, 0x25},
|
|
{0x32b1, 0x51},
|
|
{0x32b7, 0x1c},
|
|
{0x32b8, 0xc1},
|
|
{0x32b9, 0x12},
|
|
{0x32be, 0x1d},
|
|
{0x32bf, 0xd1},
|
|
{0x32c0, 0x12},
|
|
{0x32c2, 0xa8},
|
|
{0x32c3, 0xc0},
|
|
{0x32c4, 0x0a},
|
|
{0x32c5, 0x1e},
|
|
{0x32c6, 0x21},
|
|
{0x32c9, 0xb0},
|
|
{0x32ca, 0x40},
|
|
{0x32cc, 0x26},
|
|
{0x32cd, 0xa1},
|
|
{0x32d0, 0xb6},
|
|
{0x32d1, 0xc0},
|
|
{0x32d2, 0x0b},
|
|
{0x32d4, 0xe2},
|
|
{0x32d5, 0x40},
|
|
{0x32d8, 0x4e},
|
|
{0x32d9, 0xa1},
|
|
{0x32ec, 0xf0},
|
|
|
|
{0x3303, 0x10},
|
|
{0x3305, 0x03},
|
|
{0x3314, 0x04},
|
|
{0x3315, 0x01},
|
|
{0x3316, 0x04},
|
|
{0x3317, 0x04},
|
|
{0x3318, 0x38},
|
|
{0x3319, 0x04},
|
|
{0x332c, 0x30},
|
|
{0x332d, 0x20},
|
|
{0x332e, 0x03},
|
|
{0x333e, 0x0a},
|
|
{0x333f, 0x0a},
|
|
{0x3340, 0x03},
|
|
|
|
{0x3341, 0x20},
|
|
{0x3342, 0x25},
|
|
{0x3343, 0x58},
|
|
{0x3344, 0x10},
|
|
{0x3345, 0x30},
|
|
{0x3346, 0x18},
|
|
{0x3347, 0x10},
|
|
{0x3348, 0x10},
|
|
{0x3349, 0x48},
|
|
{0x334a, 0x28},
|
|
{0x334e, 0xb4},
|
|
{0x334f, 0x01},
|
|
#ifdef INIT_ET_INSETTING
|
|
{0x3020, 0xe1},
|
|
{0x3021, 0x04},
|
|
#endif
|
|
{IMX185_TABLE_END, 0x00}
|
|
};
|
|
|
|
enum {
|
|
IMX185_MODE_1920X1080_CROP_30FPS,
|
|
IMX185_MODE_1920X1080_CROP_10BIT_30FPS,
|
|
IMX185_MODE_1920X1080_CROP_60FPS,
|
|
IMX185_MODE_1920X1080_CROP_10BIT_60FPS,
|
|
IMX185_MODE_1920X1080_CROP_HDR_30FPS,
|
|
IMX185_MODE_START_STREAM,
|
|
IMX185_MODE_STOP_STREAM,
|
|
IMX185_MODE_TEST_PATTERN
|
|
};
|
|
|
|
static imx185_reg *mode_table[] = {
|
|
[IMX185_MODE_1920X1080_CROP_30FPS] = imx185_1920x1080_crop_30fps,
|
|
[IMX185_MODE_1920X1080_CROP_10BIT_30FPS] =
|
|
imx185_1920x1080_crop_10bit_30fps,
|
|
[IMX185_MODE_1920X1080_CROP_60FPS] = imx185_1920x1080_crop_60fps,
|
|
[IMX185_MODE_1920X1080_CROP_10BIT_60FPS] =
|
|
imx185_1920x1080_crop_10bit_60fps,
|
|
[IMX185_MODE_1920X1080_CROP_HDR_30FPS] =
|
|
imx185_1920x1080_hdr_crop_30fps,
|
|
[IMX185_MODE_START_STREAM] = imx185_start,
|
|
[IMX185_MODE_STOP_STREAM] = imx185_stop,
|
|
[IMX185_MODE_TEST_PATTERN] = tp_colorbars,
|
|
};
|
|
|
|
static const int imx185_30fps[] = {
|
|
30,
|
|
};
|
|
|
|
static const int imx185_60fps[] = {
|
|
60,
|
|
};
|
|
|
|
/*
|
|
* WARNING: frmfmt ordering need to match mode definition in
|
|
* device tree!
|
|
*/
|
|
static const struct camera_common_frmfmt imx185_frmfmt[] = {
|
|
{{1920, 1080}, imx185_30fps, 1, 0,
|
|
IMX185_MODE_1920X1080_CROP_30FPS},
|
|
{{1920, 1080}, imx185_30fps, 1, 0,
|
|
IMX185_MODE_1920X1080_CROP_10BIT_30FPS},
|
|
{{1920, 1080}, imx185_60fps, 1, 0,
|
|
IMX185_MODE_1920X1080_CROP_60FPS},
|
|
{{1920, 1080}, imx185_60fps, 1, 0,
|
|
IMX185_MODE_1920X1080_CROP_10BIT_60FPS},
|
|
{{1920, 1080}, imx185_30fps, 1, 1,
|
|
IMX185_MODE_1920X1080_CROP_HDR_30FPS},
|
|
/* Add modes with no device tree support after below */
|
|
};
|
|
#endif /* __IMX185_I2C_TABLES__ */
|