summaryrefslogtreecommitdiff
path: root/drivers/media/platform
diff options
context:
space:
mode:
authorMing Wong <miwong@nvidia.com>2015-04-14 15:44:34 -0700
committerWinnie Hsu <whsu@nvidia.com>2015-04-17 10:39:39 -0700
commit089f9e06f6936b183441965fa3f6abfc53f7058b (patch)
treeda05fe22e9de298e5c067c6c560d6cb67011cae3 /drivers/media/platform
parent3796543415cd6b89b059621585dd2d688ed46632 (diff)
kernel: add ar0330 2304x1520 resolution
added 2304x1520 1 MIPI lane resolution Bug 1552628 Change-Id: Ib2af3a77f9bede216e538a53d162839e9a249996 Signed-off-by: Ming Wong <miwong@nvidia.com> Reviewed-on: http://git-master/r/731521 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'drivers/media/platform')
-rw-r--r--drivers/media/platform/tegra/ar0330.c349
1 files changed, 37 insertions, 312 deletions
diff --git a/drivers/media/platform/tegra/ar0330.c b/drivers/media/platform/tegra/ar0330.c
index b4d4f13693ab..bdf37ee9f7f1 100644
--- a/drivers/media/platform/tegra/ar0330.c
+++ b/drivers/media/platform/tegra/ar0330.c
@@ -1,7 +1,7 @@
/*
* ar0330.c - ar0330 sensor driver
*
- * Copyright (c) 2014, NVIDIA CORPORATION, All Rights Reserved.
+ * Copyright (c) 2014 - 2015, 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,
@@ -73,326 +73,51 @@ static const struct regmap_config sensor_regmap_config = {
#define AR0330_GAIN_ADDR 0x3060
static struct ar0330_reg mode_2304x1536[] = {
- {0x301A, 0x0059},
- {AR0330_TABLE_WAIT_MS, AR0330_WAIT_MS},
- {0x31AE, 0x0204},
- {0x301A, 0x0059},
+ {0x3052, 0xa114},
+ {0x304A, 0x0070},
{AR0330_TABLE_WAIT_MS, AR0330_WAIT_MS},
{0x301A, 0x0058},
- {0x3064, 0x1802},
- {0x3078, 0x0001},
- {0x30BA, 0x002C},
- {0x30FE, 0x0080},
- {0x31E0, 0x0003},
- {0x3ECE, 0x09FF},
- {0x3ED0, 0xE4F6},
- {0x3ED2, 0x0146},
- {0x3ED4, 0x8F6C},
- {0x3ED6, 0x66CC},
- {0x3ED8, 0x8C42},
- {0x3EDA, 0x889B},
- {0x3EDC, 0x8863},
- {0x3EDE, 0xAA04},
- {0x3EE0, 0x15F0},
- {0x3EE6, 0x008C},
- {0x3EE8, 0x2024},
- {0x3EEA, 0xFF1F},
- {0x3F06, 0x046A},
- {0x3046, 0x4038},
- {0x3048, 0x8480},
- {0x31E0, 0x0003},
- {0x301A, 0x0058},
- {0x31AE, 0x0202},
- {0x31AC, 0x0A0A},
- {0x31B0, 0x0028},
- {0x31B2, 0x000E},
- {0x31B4, 0x2743},
- {0x31B6, 0x114E},
- {0x31B8, 0x2049},
- {0x31BA, 0x0186},
- {0x31BC, 0x8005},
- {0x31BE, 0x2003},
{0x302A, 0x0005},
- {0x302C, 0x0002},
- {0x302E, 0x0002},
- {0x3030, 0x0031},
+ {0x302C, 0x0004},
+ {0x302E, 0x0003},
+ {0x3030, 0x005F},
{0x3036, 0x000A},
{0x3038, 0x0001},
{0x31AC, 0x0A0A},
- {0x3004, 0x0000},
- {0x3008, 0x08FF},
- {0x3002, 0x0000},
- {0x3006, 0x05FF},
+ {0x31AE, 0x0201},
+ {0x31B0, 0x003D},
+ {0x31B2, 0x0018},
+ {0x31B4, 0x4F56},
+ {0x31B6, 0x4214},
+ {0x31B8, 0x308B},
+ {0x31BA, 0x028A},
+ {0x31BC, 0x8008},
+ {0x3002, 0x0006},
+ {0x3004, 0x0006},
+ {0x3006, 0x0605},
+ {0x3008, 0x0905},
+ {0x300A, 0x0611},
+ {0x300C, 0x04E0},
+ {0x3012, 0x0610},
+ {0x3014, 0x0000},
{0x30A2, 0x0001},
{0x30A6, 0x0001},
{0x3040, 0x0000},
- {0x300C, 0x04E0},
- {0x300A, 0x0622},
- {0x3014, 0x0000},
- {0x3012, 0x0621},
{0x3042, 0x0000},
- {0x30BA, 0x002C},
- {0x301A, 0x0058},
- {AR0330_TABLE_WAIT_MS, AR0330_WAIT_MS},
- {0x3088, 0x8000},
- {0x3086, 0x4A03},
- {0x3086, 0x4316},
- {0x3086, 0x0443},
- {0x3086, 0x1645},
- {0x3086, 0x4045},
- {0x3086, 0x6017},
- {0x3086, 0x2045},
- {0x3086, 0x404B},
- {0x3086, 0x1244},
- {0x3086, 0x6134},
- {0x3086, 0x4A31},
- {0x3086, 0x4342},
- {0x3086, 0x4560},
- {0x3086, 0x2714},
- {0x3086, 0x3DFF},
- {0x3086, 0x3DFF},
- {0x3086, 0x3DEA},
- {0x3086, 0x2704},
- {0x3086, 0x3D10},
- {0x3086, 0x2705},
- {0x3086, 0x3D10},
- {0x3086, 0x2715},
- {0x3086, 0x3527},
- {0x3086, 0x053D},
- {0x3086, 0x1045},
- {0x3086, 0x4027},
- {0x3086, 0x0427},
- {0x3086, 0x143D},
- {0x3086, 0xFF3D},
- {0x3086, 0xFF3D},
- {0x3086, 0xEA62},
- {0x3086, 0x2728},
- {0x3086, 0x3627},
- {0x3086, 0x083D},
- {0x3086, 0x6444},
- {0x3086, 0x2C2C},
- {0x3086, 0x2C2C},
- {0x3086, 0x4B01},
- {0x3086, 0x432D},
- {0x3086, 0x4643},
- {0x3086, 0x1647},
- {0x3086, 0x435F},
- {0x3086, 0x4F50},
- {0x3086, 0x2604},
- {0x3086, 0x2684},
- {0x3086, 0x2027},
- {0x3086, 0xFC53},
- {0x3086, 0x0D5C},
- {0x3086, 0x0D57},
- {0x3086, 0x5417},
- {0x3086, 0x0955},
- {0x3086, 0x5649},
- {0x3086, 0x5307},
- {0x3086, 0x5302},
- {0x3086, 0x4D28},
- {0x3086, 0x6C4C},
- {0x3086, 0x0928},
- {0x3086, 0x2C28},
- {0x3086, 0x294E},
- {0x3086, 0x5C09},
- {0x3086, 0x6045},
- {0x3086, 0x0045},
- {0x3086, 0x8026},
- {0x3086, 0xA627},
- {0x3086, 0xF817},
- {0x3086, 0x0227},
- {0x3086, 0xFA5C},
- {0x3086, 0x0B17},
- {0x3086, 0x1826},
- {0x3086, 0xA25C},
- {0x3086, 0x0317},
- {0x3086, 0x4427},
- {0x3086, 0xF25F},
- {0x3086, 0x2809},
- {0x3086, 0x1714},
- {0x3086, 0x2808},
- {0x3086, 0x1701},
- {0x3086, 0x4D1A},
- {0x3086, 0x2683},
- {0x3086, 0x1701},
- {0x3086, 0x27FA},
- {0x3086, 0x45A0},
- {0x3086, 0x1707},
- {0x3086, 0x27FB},
- {0x3086, 0x1729},
- {0x3086, 0x4580},
- {0x3086, 0x1708},
- {0x3086, 0x27FA},
- {0x3086, 0x1728},
- {0x3086, 0x5D17},
- {0x3086, 0x0E26},
- {0x3086, 0x8153},
- {0x3086, 0x0117},
- {0x3086, 0xE653},
- {0x3086, 0x0217},
- {0x3086, 0x1026},
- {0x3086, 0x8326},
- {0x3086, 0x8248},
- {0x3086, 0x4D4E},
- {0x3086, 0x2809},
- {0x3086, 0x4C0B},
- {0x3086, 0x6017},
- {0x3086, 0x2027},
- {0x3086, 0xF217},
- {0x3086, 0x535F},
- {0x3086, 0x2808},
- {0x3086, 0x164D},
- {0x3086, 0x1A17},
- {0x3086, 0x0127},
- {0x3086, 0xFA26},
- {0x3086, 0x035C},
- {0x3086, 0x0145},
- {0x3086, 0x4027},
- {0x3086, 0x9817},
- {0x3086, 0x2A4A},
- {0x3086, 0x0A43},
- {0x3086, 0x160B},
- {0x3086, 0x4327},
- {0x3086, 0x9C45},
- {0x3086, 0x6017},
- {0x3086, 0x0727},
- {0x3086, 0x9D17},
- {0x3086, 0x2545},
- {0x3086, 0x4017},
- {0x3086, 0x0827},
- {0x3086, 0x985D},
- {0x3086, 0x2645},
- {0x3086, 0x4B17},
- {0x3086, 0x0A28},
- {0x3086, 0x0853},
- {0x3086, 0x0D52},
- {0x3086, 0x5112},
- {0x3086, 0x4460},
- {0x3086, 0x184A},
- {0x3086, 0x0343},
- {0x3086, 0x1604},
- {0x3086, 0x4316},
- {0x3086, 0x5843},
- {0x3086, 0x1659},
- {0x3086, 0x4316},
- {0x3086, 0x5A43},
- {0x3086, 0x165B},
- {0x3086, 0x4327},
- {0x3086, 0x9C45},
- {0x3086, 0x6017},
- {0x3086, 0x0727},
- {0x3086, 0x9D17},
- {0x3086, 0x2545},
- {0x3086, 0x4017},
- {0x3086, 0x1027},
- {0x3086, 0x9817},
- {0x3086, 0x2022},
- {0x3086, 0x4B12},
- {0x3086, 0x442C},
- {0x3086, 0x2C2C},
- {0x3086, 0x2C00},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- {0x3086, 0x0000},
- /* stream on */
- {0x301A, 0x005C},
+ {0x30BA, 0x006C},
+ {0x31E0, 0x0303},
+ {0x3064, 0x1802},
+ {0x3ED2, 0x0146},
+ {0x3ED4, 0x8F6C},
+ {0x3ED6, 0x66CC},
+ {0x3ED8, 0x8C42},
+ {0x3EDA, 0x88BC},
+ {0x3EDC, 0xAA63},
+ {0x305E, 0x00A0},
+ {0x3088, 0x80BA},
+ {0x3086, 0x0253},
+ {0x30CE, 0x0010},
+ {0x301A, 0x035C},
{AR0330_TABLE_END, 0x00}
};
@@ -910,7 +635,7 @@ ar0330_set_mode(struct ar0330_info *info, struct ar0330_mode *mode)
__func__, mode->xres, mode->yres, mode->frame_length,
mode->coarse_time, mode->gain);
- if (mode->xres == 2304 && mode->yres == 1536) {
+ if (mode->xres == 2304 && mode->yres == 1520) {
sensor_mode = AR0330_MODE_2304X1536;
} else if (mode->xres == 1280 && mode->yres == 720) {
sensor_mode = AR0330_MODE_1280X720;