From d16da38f64e935e60d82356f2f9c35f82aa51a4a Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Wed, 8 May 2019 16:45:54 +0300 Subject: [PATCH 115/122] lvds: AR0233: add superexposure plus This adds superexposure plus T2 Signed-off-by: Vladimir Barinov --- drivers/media/i2c/soc_camera/ar0233.c | 6 +- drivers/media/i2c/soc_camera/ar0233_rev2.h | 1182 ++++++++++++++++++++++++++++ 2 files changed, 1186 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/soc_camera/ar0233.c b/drivers/media/i2c/soc_camera/ar0233.c index 54cc38a..5c3d4e1 100644 --- a/drivers/media/i2c/soc_camera/ar0233.c +++ b/drivers/media/i2c/soc_camera/ar0233.c @@ -442,6 +442,8 @@ static int ar0233_initialize(struct i2c_client *client) if (strcmp(mode, "hdr") == 0) ar0233_set_regs(client, ar0233_regs_hdr_mipi_12bit_30fps_rev2); + else if (strcmp(mode, "seplus") == 0) + ar0233_set_regs(client, ar0233_regs_seplus_mipi_12bit_30fps_rev2); else dev_err(&client->dev, "Unsupported mode %s\n", mode); break; @@ -461,8 +463,8 @@ static int ar0233_initialize(struct i2c_client *client) val |= (1 << 2); // Set streamOn bit reg16_write16(client, 0x301a, val); // Start Streaming - dev_info(&client->dev, "ar0233 PID %x (rev %x), res %dx%d, OTP_ID %02x:%02x:%02x:%02x:%02x:%02x\n", - pid, rev, AR0233_MAX_WIDTH, AR0233_MAX_HEIGHT, priv->id[0], priv->id[1], priv->id[2], priv->id[3], priv->id[4], priv->id[5]); + dev_info(&client->dev, "ar0233 PID %x (rev %x), res %dx%d, mode=%s, OTP_ID %02x:%02x:%02x:%02x:%02x:%02x\n", + pid, rev, AR0233_MAX_WIDTH, AR0233_MAX_HEIGHT, mode, priv->id[0], priv->id[1], priv->id[2], priv->id[3], priv->id[4], priv->id[5]); err: return ret; } diff --git a/drivers/media/i2c/soc_camera/ar0233_rev2.h b/drivers/media/i2c/soc_camera/ar0233_rev2.h index c821d35..02d9af1 100644 --- a/drivers/media/i2c/soc_camera/ar0233_rev2.h +++ b/drivers/media/i2c/soc_camera/ar0233_rev2.h @@ -1124,6 +1124,1146 @@ static const struct ar0233_reg ar0233_rev2_O1_Recommended_Defaults_LFM_HDR[] = { { } }; /* O1_Recommended_Defaults_LFM_HDR */ +static const struct ar0233_reg ar0233_rev2_O1_Recommended_Defaults_SE_T1_LIN_T2[] = { +/* Design_recommended_settings_REV2_seplus */ +{0x3086, 0x0000}, +{0x3092, 0x400C}, +{0x3362, 0x0001}, // DC_GAIN +{0x342E, 0x0014}, +{0x34B8, 0x0001}, +{0x34BA, 0x0001}, +{0x3508, 0xAF1A}, +{0x351A, 0xF400}, +{0x3520, 0x0080}, +{0x3522, 0x7D19}, +{0x3524, 0xFF9F}, +{0x3528, 0xF02D}, +{0x352C, 0x0F02}, +{0x3530, 0x1F18}, +{0x3534, 0x3898}, +{0x353A, 0x9ABA}, +{0x353C, 0x9A8A}, +{0x3544, 0x030F}, +{0x3550, 0x806C}, +{0x3562, 0x0C08}, +{0x3564, 0x1223}, +{0x3568, 0x0028}, +{0x356A, 0x81AA}, +{0x356C, 0x6A7F}, +{0x356E, 0x068A}, +{0x3576, 0x1DFF}, +{0x37B2, 0x1FFF}, // DBLC_OUT_CLIP_MAX +{0x3C72, 0x0076}, // ADC_DEC_CTRL7 +{0x3C74, 0x0031}, // ADC_DEC_CTRL8 +{0x3C76, 0x00DC}, // ADC_DEC_CTRL9 +{0x3C78, 0x01AA}, // ADC_DEC_CTRL10 +{0x3C7A, 0x0352}, // ADC_DEC_CTRL11 +{0x3C7C, 0x06AA}, // ADC_DEC_CTRL12 +{0x3E3E, 0x004A}, +{0x3044, 0x0400}, // DARK_CONTROL +{0x336E, 0x0147}, // DATAPATH_SELECT2 +{0x3192, 0x2249}, +{0x3194, 0x1AA6}, +{0x3198, 0xB691}, +{0x3546, 0x5203}, +{0x34D4, 0x0001}, // DISCRETE_FINE_INTEGRATION +{0x3E00, 0x8000}, // LFM2_T1_CTRL +{0x34BC, 0x0808}, // LFM_PATTERN_CTRL +{0x3494, 0x0808}, // LFM_TX_PATTERN_CTRL +{0x3496, 0x5F00}, // LFM_CONTROL +{0x3474, 0x006F}, +{0x3458, 0x008D}, +{0x3490, 0x0045}, +{0x3C08, 0x0104}, +{0x3C06, 0x0C3C}, +{0x3C08, 0x0104}, +{0x3D28, 0xEA60}, +{0x3D2A, 0xEA60}, +{0x3290, 0xF80C}, +{0x3292, 0xF80C}, +{0x3294, 0xF80C}, +{0x3296, 0xF80C}, +{0x3298, 0xFFFF}, +{0x329A, 0xFFFF}, +{0x329C, 0xFFFF}, +{0x329E, 0xFFFF}, +{0x3110, 0x0011}, // HDR_CONTROL0 +{0x3492, 0x0004}, +{0x3496, 0x5B00}, // LFM_CONTROL +{0x34A0, 0x0036}, +{0x34A4, 0x0035}, +{0x34A6, 0x0040}, +{0x3512, 0x0ED6}, +{0x3516, 0x8888}, +{0x3518, 0x4040}, +{0x351C, 0xCFF6}, +{0x3528, 0xE00A}, +{0x352A, 0x0827}, +{0x352E, 0x060A}, +{0x353A, 0x1ABA}, +{0x353E, 0x2044}, +{0x3540, 0x4444}, +{0x3542, 0x448F}, +{0x3548, 0x3A3C}, +{0x354A, 0x3C3C}, +{0x354C, 0x321E}, +{0x354E, 0x1E1E}, +{0x3E02, 0x0F32}, +{0x3E04, 0x0000}, +{0x3E06, 0x0000}, +{0x3E10, 0x0000}, +{0x3E14, 0x003F}, +{0x3E16, 0x1FFF}, +{0x3E18, 0x0F52}, +{0x562A, 0x03E8}, // OCL_T1_E2_E1_SAT +/* Design_recommended_settings_REV2_seplus */ + +/* Sequence_hidy_ar0233_REV2_seplus */ +{0x2512, 0x8000}, +{0x2510, 0x070F}, +{0x2510, 0x1011}, +{0x2510, 0x1216}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0x191A}, +{0x2510, 0x1E1F}, +{0x2510, 0x2022}, +{0x2510, 0xFFFF}, +{0x2510, 0x2644}, +{0x2510, 0x5574}, +{0x2510, 0x878D}, +{0x2510, 0x9496}, +{0x2510, 0x9B9D}, +{0x2510, 0x9FA1}, +{0x2510, 0xA3A5}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xC003}, +{0x2510, 0x805A}, +{0x2510, 0xA0E0}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3048}, +{0x2510, 0x3088}, +{0x2510, 0x30A0}, +{0x2510, 0x3090}, +{0x2510, 0x32C2}, +{0x2510, 0xA0C0}, +{0x2510, 0x9008}, +{0x2510, 0x8802}, +{0x2510, 0x20FF}, +{0x2510, 0x20FF}, +{0x2510, 0x20FF}, +{0x2510, 0x20FF}, +{0x2510, 0x20FF}, +{0x2510, 0x9018}, +{0x2510, 0x891A}, +{0x2510, 0x807E}, +{0x2510, 0x20FF}, +{0x2510, 0x895B}, +{0x2510, 0x20FF}, +{0x2510, 0x897B}, +{0x2510, 0x20FF}, +{0x2510, 0x897F}, +{0x2510, 0x20FF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x20FF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x20FF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x20FF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0xA0C4}, +{0x2510, 0x20FF}, +{0x2510, 0x805A}, +{0x2510, 0x9039}, +{0x2510, 0x20FF}, +{0x2510, 0x907F}, +{0x2510, 0x895B}, +{0x2510, 0x2064}, +{0x2510, 0x891B}, +{0x2510, 0x2010}, +{0x2510, 0x8803}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x20FF}, +{0x2510, 0x906B}, +{0x2510, 0x2064}, +{0x2510, 0x3084}, +{0x2510, 0x2003}, +{0x2510, 0x3044}, +{0x2510, 0x2000}, +{0x2510, 0xA004}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x2400}, +{0x2510, 0x2401}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x2400}, +{0x2510, 0x2401}, +{0x2510, 0x2702}, +{0x2510, 0x3242}, +{0x2510, 0x2420}, +{0x2510, 0x2421}, +{0x2510, 0x2703}, +{0x2510, 0x3242}, +{0x2510, 0x2420}, +{0x2510, 0x2421}, +{0x2510, 0x2704}, +{0x2510, 0x3242}, +{0x2510, 0x2420}, +{0x2510, 0x2421}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x2201}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x2201}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x2404}, +{0x2510, 0x2779}, +{0x2510, 0x2427}, +{0x2510, 0x2781}, +{0x2510, 0x2427}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x2703}, +{0x2510, 0x242A}, +{0x2510, 0x2703}, +{0x2510, 0x3242}, +{0x2510, 0x27BB}, +{0x2510, 0x2428}, +{0x2510, 0x27BB}, +{0x2510, 0x3242}, +{0x2510, 0x2702}, +{0x2510, 0x2429}, +{0x2510, 0x2702}, +{0x2510, 0x3242}, +{0x2510, 0x27C3}, +{0x2510, 0x2428}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0xB800}, +{0x2510, 0x8058}, +{0x2510, 0xA005}, +{0x2510, 0x3101}, +{0x2510, 0x3041}, +{0x2510, 0x3104}, +{0x2510, 0xB035}, +{0x2510, 0xB075}, +{0x2510, 0x30C1}, +{0x2510, 0x3102}, +{0x2510, 0x3041}, +{0x2510, 0xB808}, +{0x2510, 0x3202}, +{0x2510, 0xB848}, +{0x2510, 0xB84C}, +{0x2510, 0x2201}, +{0x2510, 0xB377}, +{0x2510, 0x8843}, +{0x2510, 0x916F}, +{0x2510, 0x2201}, +{0x2510, 0xB84E}, +{0x2510, 0xF905}, +{0x2510, 0xF907}, +{0x2510, 0x2200}, +{0x2510, 0x885B}, +{0x2510, 0xA898}, +{0x2510, 0xA8D8}, +{0x2510, 0xF8E8}, +{0x2510, 0x80D8}, +{0x2510, 0x9007}, +{0x2510, 0x916F}, +{0x2510, 0x2206}, +{0x2510, 0xB808}, +{0x2510, 0xC800}, +{0x2510, 0xE807}, +{0x2510, 0x88DB}, +{0x2510, 0xF8A8}, +{0x2510, 0xF888}, +{0x2510, 0x2203}, +{0x2510, 0xB07B}, +{0x2510, 0x2000}, +{0x2510, 0x80C8}, +{0x2510, 0x8088}, +{0x2510, 0x220B}, +{0x2510, 0xB06A}, +{0x2510, 0x88CB}, +{0x2510, 0x888B}, +{0x2510, 0x2224}, +{0x2510, 0xB04A}, +{0x2510, 0x2218}, +{0x2510, 0x210D}, +{0x2510, 0x2108}, +{0x2510, 0x902F}, +{0x2510, 0xB04B}, +{0x2510, 0xF880}, +{0x2510, 0x2205}, +{0x2510, 0x2205}, +{0x2510, 0x2203}, +{0x2510, 0x9800}, +{0x2510, 0xB043}, +{0x2510, 0xA8C9}, +{0x2510, 0x31C1}, +{0x2510, 0x80A8}, +{0x2510, 0x2205}, +{0x2510, 0x916F}, +{0x2510, 0x2104}, +{0x2510, 0x88AB}, +{0x2510, 0x2104}, +{0x2510, 0xB808}, +{0x2510, 0x9800}, +{0x2510, 0x2440}, +{0x2510, 0xF110}, +{0x2510, 0xF804}, +{0x2510, 0x2000}, +{0x2510, 0x8088}, +{0x2510, 0x3002}, +{0x2510, 0xB838}, +{0x2510, 0xA8C8}, +{0x2510, 0xB04B}, +{0x2510, 0x2442}, +{0x2510, 0x3210}, +{0x2510, 0x2206}, +{0x2510, 0x888B}, +{0x2510, 0x2203}, +{0x2510, 0xF1CB}, +{0x2510, 0x2201}, +{0x2510, 0x3202}, +{0x2510, 0xF880}, +{0x2510, 0xB830}, +{0x2510, 0xC801}, +{0x2510, 0x30C2}, +{0x2510, 0xE80C}, +{0x2510, 0x2201}, +{0x2510, 0xB04A}, +{0x2510, 0x2227}, +{0x2510, 0x2205}, +{0x2510, 0x2200}, +{0x2510, 0x2207}, +{0x2510, 0x902F}, +{0x2510, 0x220E}, +{0x2510, 0x2205}, +{0x2510, 0x2204}, +{0x2510, 0xB042}, +{0x2510, 0xA9A1}, +{0x2510, 0x8008}, +{0x2510, 0xB0D3}, +{0x2510, 0x31C1}, +{0x2510, 0x916B}, +{0x2510, 0x2008}, +{0x2510, 0x32C1}, +{0x2510, 0x8803}, +{0x2510, 0xA044}, +{0x2510, 0x3044}, +{0x2510, 0x2000}, +{0x2510, 0xA004}, +{0x2510, 0x2000}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0xA084}, +{0x2510, 0x30D0}, +{0x2510, 0x807C}, +{0x2510, 0x3141}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3142}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3281}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3290}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3110}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3120}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3282}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x32A0}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x881B}, +{0x2510, 0x887F}, +{0x2510, 0xA08C}, +{0x2510, 0x221F}, +{0x2510, 0xA084}, +{0x2510, 0x2440}, +{0x2510, 0x3260}, +{0x2510, 0x3248}, +{0x2510, 0xB095}, +{0x2510, 0xF110}, +{0x2510, 0xF864}, +{0x2510, 0xF90D}, +{0x2510, 0x3084}, +{0x2510, 0x32C1}, +{0x2510, 0x3090}, +{0x2510, 0x3088}, +{0x2510, 0x2443}, +{0x2510, 0x8058}, +{0x2510, 0x3001}, +{0x2510, 0x2442}, +{0x2510, 0x3220}, +{0x2510, 0x2002}, +{0x2510, 0x8867}, +{0x2510, 0x2004}, +{0x2510, 0x8803}, +{0x2510, 0x2002}, +{0x2510, 0x30C2}, +{0x2510, 0xA9A0}, +{0x2510, 0xB094}, +{0x2510, 0x2201}, +{0x2510, 0xA0C4}, +{0x2510, 0x3044}, +{0x2510, 0x2000}, +{0x2510, 0xA004}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0xB980}, +{0x2510, 0xA881}, +{0x2510, 0xA8C1}, +{0x2510, 0x8108}, +{0x2510, 0xA105}, +{0x2510, 0x30C1}, +{0x2510, 0x2020}, +{0x2510, 0x3101}, +{0x2510, 0x3041}, +{0x2510, 0x3104}, +{0x2510, 0x3102}, +{0x2510, 0x3041}, +{0x2510, 0xF860}, +{0x2510, 0xB095}, +{0x2510, 0x2001}, +{0x2510, 0xB988}, +{0x2510, 0xB9F8}, +{0x2510, 0xB9FC}, +{0x2510, 0x8803}, +{0x2510, 0x916F}, +{0x2510, 0x2001}, +{0x2510, 0xB9FE}, +{0x2510, 0xF905}, +{0x2510, 0xF907}, +{0x2510, 0x3202}, +{0x2510, 0x880B}, +{0x2510, 0xB397}, +{0x2510, 0xF8E8}, +{0x2510, 0x8188}, +{0x2510, 0x9007}, +{0x2510, 0x916F}, +{0x2510, 0x2204}, +{0x2510, 0xB137}, +{0x2510, 0xB9B8}, +{0x2510, 0xC801}, +{0x2510, 0xE807}, +{0x2510, 0xB177}, +{0x2510, 0x888B}, +{0x2510, 0xF8A8}, +{0x2510, 0xF888}, +{0x2510, 0x2203}, +{0x2510, 0xA8C8}, +{0x2510, 0xB07B}, +{0x2510, 0x2000}, +{0x2510, 0x8188}, +{0x2510, 0x8088}, +{0x2510, 0x220B}, +{0x2510, 0xB06A}, +{0x2510, 0x888B}, +{0x2510, 0x888B}, +{0x2510, 0x2224}, +{0x2510, 0xB04A}, +{0x2510, 0x2214}, +{0x2510, 0xB04B}, +{0x2510, 0x902F}, +{0x2510, 0xF880}, +{0x2510, 0x2211}, +{0x2510, 0x2205}, +{0x2510, 0x2204}, +{0x2510, 0xB043}, +{0x2510, 0xA8C1}, +{0x2510, 0x31C1}, +{0x2510, 0x2200}, +{0x2510, 0x80C8}, +{0x2510, 0x2103}, +{0x2510, 0x916F}, +{0x2510, 0x2106}, +{0x2510, 0x88CB}, +{0x2510, 0x210A}, +{0x2510, 0xA8C1}, +{0x2510, 0x2440}, +{0x2510, 0xF110}, +{0x2510, 0xF804}, +{0x2510, 0x2000}, +{0x2510, 0x8088}, +{0x2510, 0x2002}, +{0x2510, 0x888B}, +{0x2510, 0x3002}, +{0x2510, 0xB988}, +{0x2510, 0x2442}, +{0x2510, 0x3210}, +{0x2510, 0x2206}, +{0x2510, 0x2207}, +{0x2510, 0x3202}, +{0x2510, 0xA8C1}, +{0x2510, 0x2013}, +{0x2510, 0x8088}, +{0x2510, 0x200C}, +{0x2510, 0x888B}, +{0x2510, 0x2005}, +{0x2510, 0xA8D0}, +{0x2510, 0xB04B}, +{0x2510, 0xF880}, +{0x2510, 0xB980}, +{0x2510, 0xC800}, +{0x2510, 0x30C2}, +{0x2510, 0xE80C}, +{0x2510, 0x2201}, +{0x2510, 0xB04A}, +{0x2510, 0x2213}, +{0x2510, 0x2225}, +{0x2510, 0x8088}, +{0x2510, 0x2205}, +{0x2510, 0x888B}, +{0x2510, 0x2203}, +{0x2510, 0x902F}, +{0x2510, 0x2206}, +{0x2510, 0x2204}, +{0x2510, 0xB042}, +{0x2510, 0xA9A1}, +{0x2510, 0x8058}, +{0x2510, 0xB093}, +{0x2510, 0x31C1}, +{0x2510, 0x916B}, +{0x2510, 0x2007}, +{0x2510, 0x3084}, +{0x2510, 0x32C1}, +{0x2510, 0x8803}, +{0x2510, 0xA144}, +{0x2510, 0x3044}, +{0x2510, 0x2000}, +{0x2510, 0xA004}, +{0x2510, 0xB800}, +{0x2510, 0x7FFF}, +{0x2510, 0x30D0}, +{0x2510, 0xA981}, +{0x2510, 0xA9C1}, +{0x2510, 0x2006}, +{0x2510, 0xA184}, +{0x2510, 0xB800}, +{0x2510, 0x80FC}, +{0x2510, 0x3141}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3142}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3281}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3290}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3110}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3120}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3282}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x32A0}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x889B}, +{0x2510, 0x88FF}, +{0x2510, 0x2440}, +{0x2510, 0x3260}, +{0x2510, 0x3248}, +{0x2510, 0xB095}, +{0x2510, 0xF110}, +{0x2510, 0xF864}, +{0x2510, 0xF90D}, +{0x2510, 0x32C2}, +{0x2510, 0x30A0}, +{0x2510, 0x3090}, +{0x2510, 0x3088}, +{0x2510, 0x2443}, +{0x2510, 0x80D8}, +{0x2510, 0x3001}, +{0x2510, 0x2206}, +{0x2510, 0x88DB}, +{0x2510, 0x2442}, +{0x2510, 0x3220}, +{0x2510, 0x2010}, +{0x2510, 0x2001}, +{0x2510, 0x30C2}, +{0x2510, 0x8098}, +{0x2510, 0x2010}, +{0x2510, 0x889B}, +{0x2510, 0x2008}, +{0x2510, 0x809A}, +{0x2510, 0x200A}, +{0x2510, 0x8002}, +{0x2510, 0xA9A1}, +{0x2510, 0xB094}, +{0x2510, 0x2201}, +{0x2510, 0x8803}, +{0x2510, 0xA1C4}, +{0x2510, 0x3044}, +{0x2510, 0xB800}, +{0x2510, 0xA004}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x8002}, +{0x2510, 0x9818}, +{0x2510, 0x3101}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3102}, +{0x2510, 0x3041}, +{0x2510, 0x8018}, +{0x2510, 0x2002}, +{0x2510, 0x8038}, +{0x2510, 0x2205}, +{0x2510, 0x881B}, +{0x2510, 0x883B}, +{0x2510, 0x2119}, +{0x2510, 0x8018}, +{0x2510, 0x2202}, +{0x2510, 0x8000}, +{0x2510, 0x2201}, +{0x2510, 0x8803}, +{0x2510, 0x9800}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0xB980}, +{0x2510, 0x3260}, +{0x2510, 0x3101}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3102}, +{0x2510, 0x3041}, +{0x2510, 0x8028}, +{0x2510, 0x220A}, +{0x2510, 0x880B}, +{0x2510, 0x882B}, +{0x2510, 0x2440}, +{0x2510, 0xB095}, +{0x2510, 0xF110}, +{0x2510, 0xF864}, +{0x2510, 0xF90D}, +{0x2510, 0x8008}, +{0x2510, 0x3004}, +{0x2510, 0x2202}, +{0x2510, 0x2442}, +{0x2510, 0x882B}, +{0x2510, 0x3220}, +{0x2510, 0x2004}, +{0x2510, 0x880B}, +{0x2510, 0x2004}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x240D}, +{0x2510, 0x2751}, +{0x2510, 0x2423}, +{0x2510, 0x2750}, +{0x2510, 0x2421}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x3250}, +{0x2510, 0x27D8}, +{0x2510, 0x242B}, +{0x2510, 0x27D9}, +{0x2510, 0x242B}, +{0x2510, 0x3250}, +{0x2510, 0xC023}, +{0x2510, 0x2402}, +{0x2510, 0xC023}, +{0x2510, 0x2751}, +{0x2510, 0x2423}, +{0x2510, 0xC02B}, +{0x2510, 0x2750}, +{0x2510, 0x2421}, +{0x2510, 0xC003}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x2404}, +{0x2510, 0x2779}, +{0x2510, 0x2427}, +{0x2510, 0x2781}, +{0x2510, 0x2427}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x2791}, +{0x2510, 0x2428}, +{0x2510, 0x2799}, +{0x2510, 0x2426}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x27A1}, +{0x2510, 0x2428}, +{0x2510, 0x27A9}, +{0x2510, 0x2426}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0xC167}, +{0x2510, 0x2400}, +{0x2510, 0xC067}, +{0x2510, 0x2405}, +{0x2510, 0x240C}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x30C2}, +{0x2510, 0xA9A0}, +{0x2510, 0xB094}, +{0x2510, 0x2201}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0x7FFF}, +{0x2510, 0xB800}, +{0x2510, 0x8058}, +{0x2510, 0xA005}, +{0x2510, 0x3101}, +{0x2510, 0x3041}, +{0x2510, 0x3104}, +{0x2510, 0xB035}, +{0x2510, 0xB075}, +{0x2510, 0x30C1}, +{0x2510, 0x3102}, +{0x2510, 0x3041}, +{0x2510, 0xB808}, +{0x2510, 0x3202}, +{0x2510, 0xB848}, +{0x2510, 0xB84C}, +{0x2510, 0x2201}, +{0x2510, 0xB377}, +{0x2510, 0x8843}, +{0x2510, 0x916F}, +{0x2510, 0x2201}, +{0x2510, 0xB84E}, +{0x2510, 0xF905}, +{0x2510, 0xF907}, +{0x2510, 0x2200}, +{0x2510, 0x885B}, +{0x2510, 0xA898}, +{0x2510, 0xA8D8}, +{0x2510, 0xF8E8}, +{0x2510, 0x80D8}, +{0x2510, 0x9007}, +{0x2510, 0x916F}, +{0x2510, 0x2206}, +{0x2510, 0xB808}, +{0x2510, 0xC800}, +{0x2510, 0xE807}, +{0x2510, 0x88DB}, +{0x2510, 0xF8A8}, +{0x2510, 0xF888}, +{0x2510, 0x2203}, +{0x2510, 0xB07B}, +{0x2510, 0x2000}, +{0x2510, 0x80C8}, +{0x2510, 0x8088}, +{0x2510, 0x220B}, +{0x2510, 0xB06A}, +{0x2510, 0x88CB}, +{0x2510, 0x888B}, +{0x2510, 0x221F}, +{0x2510, 0xB04A}, +{0x2510, 0x2213}, +{0x2510, 0x210D}, +{0x2510, 0x2108}, +{0x2510, 0x902F}, +{0x2510, 0xB04B}, +{0x2510, 0xF880}, +{0x2510, 0x2205}, +{0x2510, 0x2205}, +{0x2510, 0x2203}, +{0x2510, 0x9800}, +{0x2510, 0xB043}, +{0x2510, 0xA8C9}, +{0x2510, 0x31C1}, +{0x2510, 0x80A8}, +{0x2510, 0x2205}, +{0x2510, 0x916F}, +{0x2510, 0x2104}, +{0x2510, 0x88AB}, +{0x2510, 0x2104}, +{0x2510, 0xB808}, +{0x2510, 0x9800}, +{0x2510, 0x2440}, +{0x2510, 0xF110}, +{0x2510, 0xF804}, +{0x2510, 0x2000}, +{0x2510, 0x8088}, +{0x2510, 0x3002}, +{0x2510, 0xB838}, +{0x2510, 0xA8C8}, +{0x2510, 0xB04B}, +{0x2510, 0x2442}, +{0x2510, 0x3210}, +{0x2510, 0x2206}, +{0x2510, 0x888B}, +{0x2510, 0x2203}, +{0x2510, 0xF1CB}, +{0x2510, 0x2201}, +{0x2510, 0x3202}, +{0x2510, 0xF880}, +{0x2510, 0xB830}, +{0x2510, 0xC801}, +{0x2510, 0x30C2}, +{0x2510, 0xE80C}, +{0x2510, 0x2201}, +{0x2510, 0xB04A}, +{0x2510, 0x2217}, +{0x2510, 0x2205}, +{0x2510, 0x2207}, +{0x2510, 0x902F}, +{0x2510, 0x220E}, +{0x2510, 0x2205}, +{0x2510, 0x2204}, +{0x2510, 0xB042}, +{0x2510, 0xA9A1}, +{0x2510, 0x8008}, +{0x2510, 0xB0D3}, +{0x2510, 0x31C1}, +{0x2510, 0x916B}, +{0x2510, 0x2008}, +{0x2510, 0x32C1}, +{0x2510, 0x8803}, +{0x2510, 0xA044}, +{0x2510, 0x3044}, +{0x2510, 0x2000}, +{0x2510, 0xA004}, +{0x2510, 0x2000}, +{0x2510, 0x7FFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{0x2510, 0xFFFF}, +{AR0233_DELAY, 100}, +/* Sequence_hidy_ar0233_REV2_seplus */ + +{0x3E14, 0x003F}, +{0x3E14, 0x003F}, +{0x3E18, 0x0F52}, +{0x3E18, 0x0F52}, +{0x562A, 0x03E8}, // OCL_T1_E2_E1_SAT + +{0x3364, 0x06F4}, + +/* Tempsensor_init */ +{0x3E94, 0x3007}, +{0x3E6E, 0xE200}, // TEMPVSENS1_TMG_CTRL_K0 +{0x3E98, 0x1000}, // TEMPVSENS1_EN_CTRL +{0x3F92, 0x4C00}, // TEMPVSENS1_TMG_CTRL +{0x30B8, 0x000B}, // TEMPSENS1_CTRL_REG +{0x30B8, 0x0003}, // TEMPSENS1_CTRL_REG +{ } +}; /* O1_Recommended_Defaults_SE_T1_LIN_T2 */ + static const struct ar0233_reg ar0233_rev2_disable_embed_data_stat[] = { {0x3064, 0x0}, // Disable embedded data and stat #ifdef AR0233_EMBEDDED_LINE @@ -1146,6 +2286,22 @@ static const struct ar0233_reg ar0233_rev2_HDR_3exp_12bit[] = { { } }; /* HDR_3exp_12bit */ +static const struct ar0233_reg ar0233_rev2_SEPLUS_12bit[] = { +{0x3082, 0x4}, //num_exp = 2 +{0x30BA, 0x1121}, //num_exp_max =2 +{0x31AC, 0x140C}, //12 bit output + +{0x3044, 0x0400}, //Dark_control + +// FPS = 102MHz / reg0x300A / reg0x300C +{0x300A, AR0233_SENSOR_HEIGHT + 100}, // Frame_length_Lines +{0x300C, AR0233_SENSOR_WIDTH + 400}, // Line_length_pck +{0x3012, 0x0299}, // COARSE_INTEGRATION_TIME_ +{0x3212, 0x0006}, // COARSE_INTEGRATION_TIME2 +{0x3112, 0x71E7}, +{ } +}; /* HDR_3exp_12bit */ + static const struct ar0233_reg ar0233_rev2_pll_23_102_4lane_12b[] = { // serial_data_rate was *2 in REV1. but not in REV2 /* PCLK=DES_REFCLK/PRE_PLL_CLK_DIV *PLL_MULTIPLIER /P1 /P4 */ @@ -1229,6 +2385,18 @@ static const struct ar0233_reg ar0233_rev2_HDR_ratio_gain_default[] = { { } }; /* HDR_ratio_gain_default */ +static const struct ar0233_reg ar0233_rev2_SEPLUS_ratio_gain_default[] = { +{0x3362, 0x0001}, // DC_GAIN +{0x3238, 0x8446}, // EXPOSURE_RATIO +{0x562E, 0x0111}, // OCL_T1_GAIN_ +{0x562E, 0x0111}, // OCL_T1_GAIN_ +{0x3366, 0x4441}, // ANALOG_GAIN +{0x3366, 0x4431}, // ANALOG_GAIN +{0x336A, 0x0000}, // ANALOG_GAIN2 +{0x336A, 0x00C0}, // ANALOG_GAIN2 +{ } +}; /* SEPLUS_ratio_gain_default */ + /* 3Exp HDR, 1280P, MIPI 4-lane 12-bit, 30fps, EXTCLK=23MHz (comes from deser) */ static const struct ar0233_reg *ar0233_regs_hdr_mipi_12bit_30fps_rev2[] = { ar0233_rev2_Reset, @@ -1242,3 +2410,17 @@ static const struct ar0233_reg *ar0233_regs_hdr_mipi_12bit_30fps_rev2[] = { ar0233_rev2_HDR_ratio_gain_default, NULL, }; + +/* SE_T1 + Lin_T2, 1280P, MIPI 750MBPS 4-lane 12-bit, 30fps, EXTCLK=23MHz (comes from deser) */ +static const struct ar0233_reg *ar0233_regs_seplus_mipi_12bit_30fps_rev2[] = { + ar0233_rev2_Reset, + ar0233_rev2_Full_resolution, + ar0233_rev2_pll_23_102_4lane_12b, + ar0233_rev2_mipi_12bit_4lane, + ar0233_rev2_O1_Recommended_Defaults_SE_T1_LIN_T2, + ar0233_rev2_disable_embed_data_stat, + ar0233_rev2_SEPLUS_12bit, + ar0233_rev2_LUT_24_to_12, + ar0233_rev2_SEPLUS_ratio_gain_default, + NULL, +}; -- 2.7.4