From 7b5b06aaf1f0d1551096b39418bf0b77d1dcf658 Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Wed, 9 Jan 2019 04:38:34 +0300 Subject: [PATCH 091/122] lvds: AR233: add rev1 silion setup Add silicon rev1 for AR0233 imager Signed-off-by: Vladimir Barinov --- drivers/media/i2c/soc_camera/ar0233.c | 19 +- drivers/media/i2c/soc_camera/ar0233.h | 392 +-------- drivers/media/i2c/soc_camera/ar0233_rev1.h | 1258 ++++++++++++++++++++++++++++ drivers/media/i2c/soc_camera/ar0233_rev2.h | 21 - 4 files changed, 1280 insertions(+), 410 deletions(-) create mode 100644 drivers/media/i2c/soc_camera/ar0233_rev1.h diff --git a/drivers/media/i2c/soc_camera/ar0233.c b/drivers/media/i2c/soc_camera/ar0233.c index 2a0b7aa..19386bb 100644 --- a/drivers/media/i2c/soc_camera/ar0233.c +++ b/drivers/media/i2c/soc_camera/ar0233.c @@ -20,11 +20,12 @@ #include #include -#include "ar0233_rev2.h" +#include "ar0233.h" static const int ar0233_i2c_addr[] = {0x10, 0x20}; #define AR0233_PID 0x3000 +#define AR0233_REV 0x300E #define AR0233_VERSION_REG 0x0956 #define AR0233_MEDIA_BUS_FMT MEDIA_BUS_FMT_SGRBG12_1X12 @@ -377,7 +378,7 @@ static int ar0233_initialize(struct i2c_client *client) { struct ar0233_priv *priv = to_ar0233(client); u16 val = 0; - u16 pid = 0; + u16 pid = 0, rev = 0; int ret = 0; int tmp_addr; int i; @@ -404,18 +405,26 @@ static int ar0233_initialize(struct i2c_client *client) goto err; } + /* check revision */ + reg16_read16(client, AR0233_REV, &rev); /* Read OTP IDs */ ar0233_otp_id_read(client); /* Program wizard registers */ - ar0233_set_regs(client, ar0233_regs_wizard_rev2, ARRAY_SIZE(ar0233_regs_wizard_rev2)); + switch (rev) { + case 0x2015: + ar0233_set_regs(client, ar0233_regs_wizard_rev2, ARRAY_SIZE(ar0233_regs_wizard_rev2)); + break; + default: + ar0233_set_regs(client, ar0233_regs_wizard_rev1, ARRAY_SIZE(ar0233_regs_wizard_rev1)); + } /* Enable stream */ reg16_read16(client, 0x301a, &val); // read inital reset_register value val |= (1 << 2); // Set streamOn bit reg16_write16(client, 0x301a, val); // Start Streaming - dev_info(&client->dev, "ar0233 PID %x, res %dx%d, OTP_ID %02x:%02x:%02x:%02x:%02x:%02x\n", - pid, 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, 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]); err: return ret; } diff --git a/drivers/media/i2c/soc_camera/ar0233.h b/drivers/media/i2c/soc_camera/ar0233.h index ad65390..f6ba245 100644 --- a/drivers/media/i2c/soc_camera/ar0233.h +++ b/drivers/media/i2c/soc_camera/ar0233.h @@ -1,7 +1,7 @@ /* - * ON Semiconductor AR0233 sensor camera wizard 1920x1080@30/BGGR/MIPI + * ON Semiconductor AR0233 sensor camera wizard 2048x1280@30/BGGR/MIPI * - * Copyright (C) 2018 Cogent Embedded, Inc. + * Copyright (C) 2019 Cogent Embedded, Inc. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -12,13 +12,13 @@ //#define AR0233_DISPLAY_PATTERN_FIXED //#define AR0233_DISPLAY_PATTERN_COLOR_BAR -#define AR0233_MAX_WIDTH 1920 -#define AR0233_MAX_HEIGHT 1200 +#define AR0233_MAX_WIDTH 2048 +#define AR0233_MAX_HEIGHT 1280 #define AR0233_DELAY 0xffff -#define AR0233_SENSOR_WIDTH 1920 -#define AR0233_SENSOR_HEIGHT 1200 +#define AR0233_SENSOR_WIDTH 2058 +#define AR0233_SENSOR_HEIGHT 1284 #define AR0233_X_START ((AR0233_SENSOR_WIDTH - AR0233_MAX_WIDTH) / 2) #define AR0233_Y_START ((AR0233_SENSOR_HEIGHT - AR0233_MAX_HEIGHT) / 2) @@ -30,381 +30,5 @@ struct ar0233_reg { u16 val; }; -static const struct ar0233_reg ar0233_regs_wizard[] = { -{0x301A, 0x0018}, // RESET_REGISTER -{AR0233_DELAY, 500}, // Wait 500ms -{0x3070, 0x0000}, // 1: Solid color test pattern, - // 2: Full color bar test pattern, - // 3: Fade to grey color bar test pattern, - //256: Walking 1 test pattern (12 bit) -{0x3072, 0x0123}, // R -{0x3074, 0x0456}, // G(GR row) -{0x3076, 0x0abc}, // B -{0x3078, 0x0def}, // G(GB row) -#ifdef AR0233_DISPLAY_PATTERN_FIXED -{0x3070, 0x0001}, -#endif -#ifdef AR0233_DISPLAY_PATTERN_COLOR_BAR -{0x3070, 0x0002}, -#endif -{AR0233_DELAY, 100}, // Wait 100ms - -{0x3092, 0x0C24}, -{0x337A, 0x0C80}, -{0x3520, 0x1288}, -{0x3522, 0x880C}, -{0x3524, 0x0C12}, -{0x352C, 0x1212}, -{0x354A, 0x007F}, -{0x350C, 0x0568}, -{0x3506, 0x3333}, -{0x3508, 0x3333}, -{0x3100, 0x4000}, -{0x3280, 0x0FA0}, -{0x3282, 0x0FA0}, -{0x3284, 0x0FA0}, -{0x3286, 0x0FA0}, -{0x3288, 0x0FA0}, -{0x328A, 0x0FA0}, -{0x328C, 0x0FA0}, -{0x328E, 0x0FA0}, -{0x3290, 0x0FA0}, -{0x3292, 0x0FA0}, -{0x3294, 0x0FA0}, -{0x3296, 0x0FA0}, -{0x3298, 0x0FA0}, -{0x329A, 0x0FA0}, -{0x329C, 0x0FA0}, -{0x329E, 0x0FA0}, - -{AR0233_DELAY, 200}, // Wait 200ms - -{0x2512, 0x8000}, -{0x2510, 0x0905}, -{0x2510, 0x3350}, -{0x2510, 0x2004}, -{0x2510, 0x1460}, -{0x2510, 0x1578}, -{0x2510, 0x0901}, -{0x2510, 0x7B24}, -{0x2510, 0xFF24}, -{0x2510, 0xFF24}, -{0x2510, 0xEA24}, -{0x2510, 0x1022}, -{0x2510, 0x2410}, -{0x2510, 0x155A}, -{0x2510, 0x0901}, -{0x2510, 0x1400}, -{0x2510, 0x24FF}, -{0x2510, 0x24FF}, -{0x2510, 0x24EA}, -{0x2510, 0x2324}, -{0x2510, 0x647A}, -{0x2510, 0x2404}, -{0x2510, 0x052C}, -{0x2510, 0x400A}, -{0x2510, 0xFF0A}, -{0x2510, 0xFF0A}, -{0x2510, 0x1008}, -{0x2510, 0x3851}, -{0x2510, 0x1440}, -{0x2510, 0x0004}, -{0x2510, 0x0801}, -{0x2510, 0x0408}, -{0x2510, 0x1180}, -{0x2510, 0x2652}, -{0x2510, 0x1518}, -{0x2510, 0x0906}, -{0x2510, 0x1348}, -{0x2510, 0x1002}, -{0x2510, 0x1016}, -{0x2510, 0x1181}, -{0x2510, 0x1189}, -{0x2510, 0x1056}, -{0x2510, 0x1210}, -{0x2510, 0x0901}, -{0x2510, 0x0D09}, -{0x2510, 0x1413}, -{0x2510, 0x8809}, -{0x2510, 0x2B15}, -{0x2510, 0x8809}, -{0x2510, 0x0311}, -{0x2510, 0xD909}, -{0x2510, 0x1214}, -{0x2510, 0x4109}, -{0x2510, 0x0312}, -{0x2510, 0x1409}, -{0x2510, 0x0110}, -{0x2510, 0xD612}, -{0x2510, 0x1012}, -{0x2510, 0x1212}, -{0x2510, 0x1011}, -{0x2510, 0xDD11}, -{0x2510, 0xD910}, -{0x2510, 0x5609}, -{0x2510, 0x1511}, -{0x2510, 0xDB09}, -{0x2510, 0x1511}, -{0x2510, 0x9B09}, -{0x2510, 0x0F11}, -{0x2510, 0xBB12}, -{0x2510, 0x1A12}, -{0x2510, 0x1014}, -{0x2510, 0x6012}, -{0x2510, 0x5010}, -{0x2510, 0x7610}, -{0x2510, 0xE609}, -{0x2510, 0x0812}, -{0x2510, 0x4012}, -{0x2510, 0x6009}, -{0x2510, 0x290B}, -{0x2510, 0x0904}, -{0x2510, 0x1440}, -{0x2510, 0x0923}, -{0x2510, 0x15C8}, -{0x2510, 0x13C8}, -{0x2510, 0x092C}, -{0x2510, 0x1588}, -{0x2510, 0x1388}, -{0x2510, 0x0C09}, -{0x2510, 0x0C14}, -{0x2510, 0x4109}, -{0x2510, 0x1112}, -{0x2510, 0x6212}, -{0x2510, 0x6011}, -{0x2510, 0xBF11}, -{0x2510, 0xBB10}, -{0x2510, 0x6611}, -{0x2510, 0xFB09}, -{0x2510, 0x3511}, -{0x2510, 0xBB12}, -{0x2510, 0x6312}, -{0x2510, 0x6014}, -{0x2510, 0x0015}, -{0x2510, 0x0011}, -{0x2510, 0xB812}, -{0x2510, 0xA012}, -{0x2510, 0x0010}, -{0x2510, 0x2610}, -{0x2510, 0x0013}, -{0x2510, 0x0011}, -{0x2510, 0x0008}, -{0x2510, 0x3053}, -{0x2510, 0x4215}, -{0x2510, 0x4013}, -{0x2510, 0x4010}, -{0x2510, 0x0210}, -{0x2510, 0x1611}, -{0x2510, 0x8111}, -{0x2510, 0x8910}, -{0x2510, 0x5612}, -{0x2510, 0x1009}, -{0x2510, 0x010D}, -{0x2510, 0x0815}, -{0x2510, 0xC015}, -{0x2510, 0xD013}, -{0x2510, 0x5009}, -{0x2510, 0x1313}, -{0x2510, 0xD009}, -{0x2510, 0x0215}, -{0x2510, 0xC015}, -{0x2510, 0xC813}, -{0x2510, 0xC009}, -{0x2510, 0x0515}, -{0x2510, 0x8813}, -{0x2510, 0x8009}, -{0x2510, 0x0213}, -{0x2510, 0x8809}, -{0x2510, 0x0411}, -{0x2510, 0xC909}, -{0x2510, 0x0814}, -{0x2510, 0x0109}, -{0x2510, 0x0B11}, -{0x2510, 0xD908}, -{0x2510, 0x1400}, -{0x2510, 0x091A}, -{0x2510, 0x1440}, -{0x2510, 0x0903}, -{0x2510, 0x1214}, -{0x2510, 0x0901}, -{0x2510, 0x10D6}, -{0x2510, 0x1210}, -{0x2510, 0x1212}, -{0x2510, 0x1210}, -{0x2510, 0x11DD}, -{0x2510, 0x11D9}, -{0x2510, 0x1056}, -{0x2510, 0x0917}, -{0x2510, 0x11DB}, -{0x2510, 0x0913}, -{0x2510, 0x11FB}, -{0x2510, 0x0905}, -{0x2510, 0x11BB}, -{0x2510, 0x121A}, -{0x2510, 0x1210}, -{0x2510, 0x1460}, -{0x2510, 0x1250}, -{0x2510, 0x1076}, -{0x2510, 0x10E6}, -{0x2510, 0x0901}, -{0x2510, 0x15A8}, -{0x2510, 0x0901}, -{0x2510, 0x13A8}, -{0x2510, 0x1240}, -{0x2510, 0x1260}, -{0x2510, 0x0925}, -{0x2510, 0x13AD}, -{0x2510, 0x0902}, -{0x2510, 0x0907}, -{0x2510, 0x1588}, -{0x2510, 0x0901}, -{0x2510, 0x138D}, -{0x2510, 0x0B09}, -{0x2510, 0x0914}, -{0x2510, 0x4009}, -{0x2510, 0x0B13}, -{0x2510, 0x8809}, -{0x2510, 0x1C0C}, -{0x2510, 0x0920}, -{0x2510, 0x1262}, -{0x2510, 0x1260}, -{0x2510, 0x11BF}, -{0x2510, 0x11BB}, -{0x2510, 0x1066}, -{0x2510, 0x090A}, -{0x2510, 0x11FB}, -{0x2510, 0x093B}, -{0x2510, 0x11BB}, -{0x2510, 0x1263}, -{0x2510, 0x1260}, -{0x2510, 0x1400}, -{0x2510, 0x1508}, -{0x2510, 0x11B8}, -{0x2510, 0x12A0}, -{0x2510, 0x1200}, -{0x2510, 0x1026}, -{0x2510, 0x1000}, -{0x2510, 0x1300}, -{0x2510, 0x1100}, -{0x2510, 0x437A}, -{0x2510, 0x0609}, -{0x2510, 0x0B05}, -{0x2510, 0x0708}, -{0x2510, 0x4137}, -{0x2510, 0x502C}, -{0x2510, 0x2CFE}, -{0x2510, 0x15FE}, -{0x2510, 0x0C2C}, -{0x32E6, 0x00E0}, -{0x1008, 0x036F}, -{0x100C, 0x058F}, -{0x100E, 0x07AF}, -{0x1010, 0x014F}, -{0x3230, 0x0312}, -{0x3232, 0x0532}, -{0x3234, 0x0752}, -{0x3236, 0x00F2}, -{0x3566, 0x3328}, -{0x32D0, 0x3A02}, -{0x32D2, 0x3508}, -{0x32D4, 0x3702}, -{0x32D6, 0x3C04}, -{0x32DC, 0x370A}, -{0x30B0, 0x0800}, -/* PCLK=22Mhz/2 *44/1/6= 88.6Mhz - TI serializers */ -{0x302A, 6}, // VT_PIX_CLK_DIV -{0x302C, 1}, // VT_SYS_CLK_DIV -{0x302E, 2}, // PRE_PLL_CLK_DIV -{0x3030, 44}, // PLL_MULTIPLIER -{0x3036, 0x000C}, // OP_WORD_CLK_DIV -{0x3038, 0x0001}, // OP_SYS_CLK_DIV -{0x30B0, 0x0A00}, -{0x30A2, 0x0001}, -{0x30A6, 0x0001}, -{0x3040, 0x0000}, -{0x3040, 0x0000}, -{0x3044, 0x0400}, -{0x3044, 0x0400}, -{0x3044, 0x0400}, -{0x3044, 0x0400}, -{0x3064, 0x1882}, -{0x3064, 0x1802}, -{0x3064, 0x1802}, -{0x3064, 0x1802}, -{0x33E0, 0x0C80}, -{0x33E0, 0x0C80}, -{0x3180, 0x0080}, -{0x33E4, 0x0080}, -{0x33E0, 0x0C80}, -{0x33E0, 0x0C80}, -{0x3004, AR0233_X_START}, // X_ADDR_START_ -{0x3008, AR0233_X_END}, // X_ADDR_END_ -{0x3002, AR0233_Y_START}, // Y_ADDR_START_ -{0x3006, AR0233_Y_END}, // Y_ADDR_END_ -{0x3402, 0x0000 | AR0233_MAX_WIDTH}, // X_OUTPUT_CONTROL -{0x3404, 0x0000 | AR0233_MAX_HEIGHT}, // Y_OUTPUT_CONTROL -{0x3032, 0x0000}, -{0x3400, 0x0010}, -#if 1 -/* disable HDR */ -{0x3082, 0x0000}, -{0x30BA, 0x11F2}, -#endif -{AR0233_DELAY, 100}, // Wait 100ms - -#if 0 -{0x300A, AR0233_SENSOR_HEIGHT + 356}, // FRAME_LENGTH_LINES_ -{0x300C, AR0233_SENSOR_WIDTH + 100}, // LINE_LENGTH_PCK_ -#else -{0x300A, AR0233_SENSOR_HEIGHT + 288}, // FRAME_LENGTH_LINES_ -{0x300C, AR0233_SENSOR_WIDTH + 300}, // LINE_LENGTH_PCK_ -#endif -{0x3042, 0x0000}, -{0x3238, 0x0222}, -{0x3012, 0x0144}, -{0x3014, AR0233_SENSOR_WIDTH + 100}, -{0x321E, AR0233_SENSOR_WIDTH + 100}, -{0x3222, AR0233_SENSOR_WIDTH + 100}, -{0x30B0, 0x0B00}, -{0x32EA, 0x3C0E}, -{0x32EA, 0x3C0E}, -{0x32EA, 0x3C0E}, -{0x32EC, 0x72A1}, -{0x32EC, 0x72A1}, -{0x32EC, 0x72A1}, -{0x32EC, 0x72A1}, -{0x32EC, 0x72A1}, -{0x32EC, 0x72A1}, -{0x31D0, 0x0001}, // COMPANDING -{0x31AE, 0x0004}, -{0x31AE, 0x0304}, -{0x31AC, 0x140C}, // DATA_FORMAT_BITS: RAW12 -{0x301A, 0x1098}, -{0x301A, 0x1018}, -{0x301A, 0x1018}, -{0x31AE, 0x0204}, -{0x3342, 0x122C}, -{0x3346, 0x122C}, -{0x334A, 0x122C}, -{0x334E, 0x122C}, -{0x3344, 0x0011}, -{0x3348, 0x0111}, -{0x334C, 0x0211}, -{0x3350, 0x0311}, -{0x31B0, 0x0049}, -{0x31B2, 0x0033}, -{0x31B4, 0x2185}, -{0x31B6, 0x1146}, -{0x31B8, 0x3047}, -{0x31BA, 0x0186}, -{0x31BC, 0x0805}, -#if 1 -/* Enable trigger input */ -{0x340A, 0x00E0}, // GPIO_CONTROL1: GPIO1 is trigger -{0x340C, 0x0002}, // GPIO_CONTROL2: GPIO1 is trigger -{0x30CE, 0x0120}, // TRIGGER_MODE -//{0x30DC, 0x0120}, // TRIGGER_DELAY -#endif -{0x3366, 0x0aaa}, // ANALOG_GAIN -{0x301A, 0x011C}, -}; +#include "ar0233_rev1.h" +#include "ar0233_rev2.h" diff --git a/drivers/media/i2c/soc_camera/ar0233_rev1.h b/drivers/media/i2c/soc_camera/ar0233_rev1.h new file mode 100644 index 0000000..c29ac6a --- /dev/null +++ b/drivers/media/i2c/soc_camera/ar0233_rev1.h @@ -0,0 +1,1258 @@ +/* + * ON Semiconductor AR0233 sensor camera wizard 2048x1280@30/BGGR/MIPI + * + * Copyright (C) 2019 Cogent Embedded, Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +/* 3Exp HDR 1080p Mode MIPI-4lane 12-bit 30FPS, XCLK=24MHz */ +static const struct ar0233_reg ar0233_regs_wizard_rev1[] = { +{0x301A, 0x18}, // MIPI, stream OFF +{AR0233_DELAY, 200}, // Wait 200ms + +{0x3070, 0x0000}, // 1: Solid color test pattern, + // 2: Full color bar test pattern, + // 3: Fade to grey color bar test pattern, + //256: Walking 1 test pattern (12 bit) +{0x3072, 0x0123}, // R +{0x3074, 0x0456}, // G(GR row) +{0x3076, 0x0abc}, // B +{0x3078, 0x0def}, // G(GB row) +#ifdef AR0233_DISPLAY_PATTERN_FIXED +{0x3070, 0x0001}, +#endif +#ifdef AR0233_DISPLAY_PATTERN_COLOR_BAR +{0x3070, 0x0002}, +#endif +{AR0233_DELAY, 100}, // Wait 100ms + +#if 1 /* Sequencer Settings */ +#if 1 /* Design_recommended_settings_v5 */ +{0x356C, 0xEA55}, //mte.Sensor.Register("DAC_LD_108_109").Value = 0xEA55& -- ADC write Memory delay 7 +{0x3566, 0x2407}, //mte.Sensor.Register("DAC_LD_102_103").Value = 0x2407& -- Enable column amp bypass for 1x +{0x3562, 0x1C08}, //mte.Sensor.Register("DAC_LD_98_99").Value = 0x1C08& -- Increase column amp current +{0x3180, 0x1001}, //mte.Sensor.Register("DELTA_DK_CONTROL").Value = 0x1001& -- enable dither +{0x3546, 0x4601}, //MTE.Sensor.Register("DAC_LD_70_71::ANA_SREG_VLN_CURR").Value = 17 -- VLN curr + //Sensor.Register(sbit_Dac_Ld_70_71_Ana_Sreg_Ae_Shs_Clamp_En).value = 0 ---- Eclipse +{0x3548, 0x4141}, //MTE.Sensor.Register("DAC_LD_72_73::ANA_SREG_AE_SHR_HCG1").value = 65; //MTE.Sensor.Register("DAC_LD_72_73::ANA_SREG_AE_SHR_HCG0").value = 65 +{0x354A, 0x5958}, //MTE.Sensor.Register("DAC_LD_74_75::ANA_SREG_AE_SHR_HCG3TO7").value = 88; //MTE.Sensor.Register("DAC_LD_74_75::ANA_SREG_AE_SHR_HCG2").value = 89 +{0x3542, 0x44F0}, //MTE.Sensor.Register(sbit_Dac_Ld_66_67_Ana_Drstlo_Sel_Hcg_Lg_3_0).Value = 4, MTE.Sensor.Register(sbit_Dac_Ld_66_67_Ana_Drstlo_Sel_Hcg_Hg_3_0).Value = 4 + +// Boosters_Hi_change settings for reduction in DSNU and hot pixels +{0x3518, 0x4444}, //drstlo_lcg_lg(4), drstlo_hcg_lg(4), drstlo_lcg_hg(4), drstlo_hcg_hg(4) +{0x3540, 0x44}, //drstlo_lcg_lg_3_0(4), lcg_hg_3_0(4) +{0x3536, 0x9898}, //booster_ref_Vaa rsthi(1), dcghi(1) +{0x3538, 0x981A}, //booster_ref_vaa rshi(1) +{0x3530, 0x5F98}, //Boost_ref_Vaa Wellhi(1) +{0x353C, 0x9A0A}, //Boost_ref_Vaa lfm_dcghi(1) +{0x3526, 0x9000}, //DWellhi(16) +{0x352E, 0x90D}, //Dlfm_Dcghi(13),(Dlfm_Txhi_Buffer) = 9 +#endif /* Design_recommended_settings_v5 */ + +#if 1 /* Pixel_char_recommended_settings_v2 */ +//TXLO @HCG +{0x3514, 0x555B}, //-0.85V +{0x3578, 0x555B}, //-0.85V +//TXLO @LCG +{0x3514, 0x5B5B}, //-0.85V +{0x3578, 0x5B5B}, //-0.85V +//TXHI +{0x3528, 0xE018}, //2.8V +//RSHI +{0x352A, 0x1533},//3.36V +//DDCGHI +{0x3528, 0xEB0D}, //Ddcghi(13), txhi(11) +//DRSTHI, DRSHI +{0x352A, 0xA27}, //Drsthi (10), Drshi(7) +#endif /* Pixel_char_recommended_settings_v2 */ + +#if 1 /* AR0233_Sequencer_LFM_HDR_v6 */ +{0x2512, 0x8000}, +{0x2510, 0x070f}, +{0x2510, 0x1011}, +{0x2510, 0x1216}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0x191b}, +{0x2510, 0x2123}, +{0x2510, 0x2528}, +{0x2510, 0xffff}, +{0x2510, 0x2e4a}, +{0x2510, 0x5874}, +{0x2510, 0x8187}, +{0x2510, 0x8b93}, +{0x2510, 0x9496}, +{0x2510, 0xa1a9}, +{0x2510, 0xaaad}, +{0x2510, 0xb1b5}, +{0x2510, 0xb9bb}, +{0x2510, 0xbdff}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0xffff}, +{0x2510, 0xc003}, +{0x2510, 0x8058}, +{0x2510, 0xa0e0}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3048}, +{0x2510, 0x3088}, +{0x2510, 0x30a0}, +{0x2510, 0x3090}, +{0x2510, 0xa0c0}, +{0x2510, 0x9008}, +{0x2510, 0x8802}, +{0x2510, 0x20ff}, +{0x2510, 0x20ff}, +{0x2510, 0x20ff}, +{0x2510, 0x20ff}, +{0x2510, 0x20ff}, +{0x2510, 0x9018}, +{0x2510, 0x891a}, +{0x2510, 0x807c}, +{0x2510, 0x20ff}, +{0x2510, 0x895b}, +{0x2510, 0x20ff}, +{0x2510, 0x897b}, +{0x2510, 0x20ff}, +{0x2510, 0x897f}, +{0x2510, 0x20ff}, +{0x2510, 0x7fff}, +{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, 0x3081}, +{0x2510, 0x3082}, +{0x2510, 0xa0c4}, +{0x2510, 0x20ff}, +{0x2510, 0x8058}, +{0x2510, 0x9039}, +{0x2510, 0x20ff}, +{0x2510, 0x907f}, +{0x2510, 0x895b}, +{0x2510, 0x2064}, +{0x2510, 0x891b}, +{0x2510, 0x2010}, +{0x2510, 0x8803}, +{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, 0x3108}, +{0x2510, 0x2400}, +{0x2510, 0x2401}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x3108}, +{0x2510, 0x2400}, +{0x2510, 0x2401}, +{0x2510, 0x2702}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2420}, +{0x2510, 0x2421}, +{0x2510, 0x2703}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2420}, +{0x2510, 0x2421}, +{0x2510, 0x2704}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2420}, +{0x2510, 0x2421}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x3108}, +{0x2510, 0x2402}, +{0x2510, 0x2403}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x3108}, +{0x2510, 0x2741}, +{0x2510, 0x2429}, +{0x2510, 0x2740}, +{0x2510, 0x242a}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x3108}, +{0x2510, 0x2404}, +{0x2510, 0x2779}, +{0x2510, 0x242c}, +{0x2510, 0x2781}, +{0x2510, 0x242d}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x3108}, +{0x2510, 0x2703}, +{0x2510, 0x2432}, +{0x2510, 0x2703}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x27bb}, +{0x2510, 0x2430}, +{0x2510, 0x27bb}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2702}, +{0x2510, 0x2431}, +{0x2510, 0x2702}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x27c3}, +{0x2510, 0x2430}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{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, 0x3202}, +{0x2510, 0xb848}, +{0x2510, 0xb84c}, +{0x2510, 0x2200}, +{0x2510, 0x3141}, +{0x2510, 0x3042}, +{0x2510, 0xb377}, +{0x2510, 0x8843}, +{0x2510, 0x916f}, +{0x2510, 0x3110}, +{0x2510, 0x3042}, +{0x2510, 0xb84e}, +{0x2510, 0xf905}, +{0x2510, 0xf907}, +{0x2510, 0x2200}, +{0x2510, 0x885b}, +{0x2510, 0xa898}, +{0x2510, 0xa8d8}, +{0x2510, 0xf8e8}, +{0x2510, 0x80dc}, +{0x2510, 0x9007}, +{0x2510, 0x916f}, +{0x2510, 0x2206}, +{0x2510, 0xb808}, +{0x2510, 0xc800}, +{0x2510, 0xe809}, +{0x2510, 0x88df}, +{0x2510, 0xf8a8}, +{0x2510, 0xf888}, +{0x2510, 0x2203}, +{0x2510, 0xb07b}, +{0x2510, 0x2000}, +{0x2510, 0x80cc}, +{0x2510, 0x808c}, +{0x2510, 0x220b}, +{0x2510, 0xb06a}, +{0x2510, 0x88cf}, +{0x2510, 0x888f}, +{0x2510, 0x2224}, +{0x2510, 0xb04a}, +{0x2510, 0x2218}, +{0x2510, 0x2116}, +{0x2510, 0x902f}, +{0x2510, 0xb04b}, +{0x2510, 0xf880}, +{0x2510, 0x2217}, +{0x2510, 0x2204}, +{0x2510, 0xb043}, +{0x2510, 0xa8c9}, +{0x2510, 0x31c1}, +{0x2510, 0x80ac}, +{0x2510, 0x2205}, +{0x2510, 0x916f}, +{0x2510, 0x2104}, +{0x2510, 0x88af}, +{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, 0x2441}, +{0x2510, 0x3202}, +{0x2510, 0xf108}, +{0x2510, 0xf0d7}, +{0x2510, 0xb830}, +{0x2510, 0xf880}, +{0x2510, 0xc801}, +{0x2510, 0x30c2}, +{0x2510, 0xe80c}, +{0x2510, 0x2201}, +{0x2510, 0xb04a}, +{0x2510, 0x222d}, +{0x2510, 0x3241}, +{0x2510, 0x2207}, +{0x2510, 0x902f}, +{0x2510, 0x2214}, +{0x2510, 0x2204}, +{0x2510, 0xb042}, +{0x2510, 0xa9a1}, +{0x2510, 0x8008}, +{0x2510, 0xb093}, +{0x2510, 0x31c1}, +{0x2510, 0x916b}, +{0x2510, 0x2009}, +{0x2510, 0x8803}, +{0x2510, 0xa044}, +{0x2510, 0x3044}, +{0x2510, 0x2000}, +{0x2510, 0xa004}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0xa084}, +{0x2510, 0x30d0}, +{0x2510, 0x8078}, +{0x2510, 0x3141}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3142}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3110}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3120}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3144}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3148}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x2206}, +{0x2510, 0x881b}, +{0x2510, 0x887b}, +{0x2510, 0xa08c}, +{0x2510, 0x221f}, +{0x2510, 0xa084}, +{0x2510, 0x2440}, +{0x2510, 0xb095}, +{0x2510, 0xf110}, +{0x2510, 0xf864}, +{0x2510, 0xf90d}, +{0x2510, 0x3084}, +{0x2510, 0x3090}, +{0x2510, 0x3088}, +{0x2510, 0x8058}, +{0x2510, 0x3001}, +{0x2510, 0x2442}, +{0x2510, 0x3220}, +{0x2510, 0x2002}, +{0x2510, 0x8863}, +{0x2510, 0x2004}, +{0x2510, 0x8803}, +{0x2510, 0x2441}, +{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, 0x8108}, +{0x2510, 0xa105}, +{0x2510, 0x30c1}, +{0x2510, 0x2000}, +{0x2510, 0x3101}, +{0x2510, 0x3041}, +{0x2510, 0x3104}, +{0x2510, 0x3102}, +{0x2510, 0x3041}, +{0x2510, 0xf860}, +{0x2510, 0xb095}, +{0x2510, 0x3141}, +{0x2510, 0x3042}, +{0x2510, 0xb9f8}, +{0x2510, 0xb9fc}, +{0x2510, 0x8803}, +{0x2510, 0x916f}, +{0x2510, 0x3110}, +{0x2510, 0x3042}, +{0x2510, 0xb9fe}, +{0x2510, 0xf905}, +{0x2510, 0xf907}, +{0x2510, 0x3202}, +{0x2510, 0x880b}, +{0x2510, 0xa888}, +{0x2510, 0xa8c8}, +{0x2510, 0xb397}, +{0x2510, 0xf8e8}, +{0x2510, 0x818c}, +{0x2510, 0x9007}, +{0x2510, 0x916f}, +{0x2510, 0x2204}, +{0x2510, 0xb137}, +{0x2510, 0xb9b8}, +{0x2510, 0xc801}, +{0x2510, 0xe809}, +{0x2510, 0xb177}, +{0x2510, 0x888f}, +{0x2510, 0xf8a8}, +{0x2510, 0xf888}, +{0x2510, 0x2203}, +{0x2510, 0xb07b}, +{0x2510, 0x2000}, +{0x2510, 0x818c}, +{0x2510, 0x808c}, +{0x2510, 0x220b}, +{0x2510, 0xb06a}, +{0x2510, 0x888f}, +{0x2510, 0x888f}, +{0x2510, 0x2224}, +{0x2510, 0xb04a}, +{0x2510, 0x2218}, +{0x2510, 0x2115}, +{0x2510, 0xb04b}, +{0x2510, 0x902f}, +{0x2510, 0xf880}, +{0x2510, 0x2217}, +{0x2510, 0x2204}, +{0x2510, 0xb043}, +{0x2510, 0xa8d9}, +{0x2510, 0x31c1}, +{0x2510, 0x80cc}, +{0x2510, 0x2103}, +{0x2510, 0x916f}, +{0x2510, 0x2106}, +{0x2510, 0x88cf}, +{0x2510, 0x2440}, +{0x2510, 0xf110}, +{0x2510, 0xf804}, +{0x2510, 0x2000}, +{0x2510, 0x8088}, +{0x2510, 0x3002}, +{0x2510, 0xb988}, +{0x2510, 0xa8d8}, +{0x2510, 0xb04b}, +{0x2510, 0x2442}, +{0x2510, 0x3210}, +{0x2510, 0x2206}, +{0x2510, 0x888b}, +{0x2510, 0x2441}, +{0x2510, 0x3202}, +{0x2510, 0xf108}, +{0x2510, 0xf0d7}, +{0x2510, 0xb980}, +{0x2510, 0xf880}, +{0x2510, 0xc800}, +{0x2510, 0x30c2}, +{0x2510, 0xe80c}, +{0x2510, 0x2201}, +{0x2510, 0xb04a}, +{0x2510, 0x2230}, +{0x2510, 0x3241}, +{0x2510, 0x902f}, +{0x2510, 0x221b}, +{0x2510, 0x2204}, +{0x2510, 0xb042}, +{0x2510, 0xa9a1}, +{0x2510, 0x8058}, +{0x2510, 0xb093}, +{0x2510, 0x31c1}, +{0x2510, 0x916b}, +{0x2510, 0x2009}, +{0x2510, 0x8803}, +{0x2510, 0xa144}, +{0x2510, 0x3044}, +{0x2510, 0x2000}, +{0x2510, 0xa004}, +{0x2510, 0xb800}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x8078}, +{0x2510, 0x30d0}, +{0x2510, 0xa184}, +{0x2510, 0xb980}, +{0x2510, 0x3141}, +{0x2510, 0x3041}, +{0x2510, 0x3042}, +{0x2510, 0x2000}, +{0x2510, 0x3142}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3110}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3120}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x2206}, +{0x2510, 0x881b}, +{0x2510, 0x887b}, +{0x2510, 0x2440}, +{0x2510, 0xb095}, +{0x2510, 0xf110}, +{0x2510, 0xf864}, +{0x2510, 0xf90d}, +{0x2510, 0x30a0}, +{0x2510, 0x3090}, +{0x2510, 0x3088}, +{0x2510, 0x8058}, +{0x2510, 0x3001}, +{0x2510, 0x2202}, +{0x2510, 0x2442}, +{0x2510, 0x3220}, +{0x2510, 0x2002}, +{0x2510, 0x885b}, +{0x2510, 0x2441}, +{0x2510, 0x30c2}, +{0x2510, 0x8018}, +{0x2510, 0x2000}, +{0x2510, 0x881b}, +{0x2510, 0x2008}, +{0x2510, 0x8000}, +{0x2510, 0xa9a0}, +{0x2510, 0xb094}, +{0x2510, 0x2201}, +{0x2510, 0x8803}, +{0x2510, 0xa1c4}, +{0x2510, 0x3044}, +{0x2510, 0xb800}, +{0x2510, 0xa004}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x9818}, +{0x2510, 0x3101}, +{0x2510, 0x3041}, +{0x2510, 0x2000}, +{0x2510, 0x3102}, +{0x2510, 0x3041}, +{0x2510, 0x8008}, +{0x2510, 0x2002}, +{0x2510, 0x8028}, +{0x2510, 0x2205}, +{0x2510, 0x880b}, +{0x2510, 0x882b}, +{0x2510, 0x213e}, +{0x2510, 0x8008}, +{0x2510, 0x2202}, +{0x2510, 0x8000}, +{0x2510, 0x2202}, +{0x2510, 0xa044}, +{0x2510, 0x3044}, +{0x2510, 0x8803}, +{0x2510, 0x9800}, +{0x2510, 0xa004}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x2440}, +{0x2510, 0xb095}, +{0x2510, 0xf110}, +{0x2510, 0xf864}, +{0x2510, 0xf90d}, +{0x2510, 0x2442}, +{0x2510, 0x3220}, +{0x2510, 0x2007}, +{0x2510, 0x2441}, +{0x2510, 0x30c2}, +{0x2510, 0xa9a0}, +{0x2510, 0xb094}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0xb980}, +{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, 0x3001}, +{0x2510, 0x2202}, +{0x2510, 0x2442}, +{0x2510, 0x8823}, +{0x2510, 0x3220}, +{0x2510, 0x2000}, +{0x2510, 0x8803}, +{0x2510, 0x2441}, +{0x2510, 0x30c2}, +{0x2510, 0xa9a0}, +{0x2510, 0xb094}, +{0x2510, 0x2201}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x2000}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x2400}, +{0x2510, 0x2751}, +{0x2510, 0x2423}, +{0x2510, 0x2750}, +{0x2510, 0x2421}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x2749}, +{0x2510, 0x2422}, +{0x2510, 0x2749}, +{0x2510, 0x2423}, +{0x2510, 0x2709}, +{0x2510, 0x2420}, +{0x2510, 0x2729}, +{0x2510, 0x2423}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2722}, +{0x2510, 0x2422}, +{0x2510, 0x2769}, +{0x2510, 0x2421}, +{0x2510, 0x2702}, +{0x2510, 0x2421}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x276a}, +{0x2510, 0x2420}, +{0x2510, 0x276a}, +{0x2510, 0x2421}, +{0x2510, 0x2703}, +{0x2510, 0x2420}, +{0x2510, 0x2703}, +{0x2510, 0x2421}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x276b}, +{0x2510, 0x2420}, +{0x2510, 0x276b}, +{0x2510, 0x2421}, +{0x2510, 0x2704}, +{0x2510, 0x2420}, +{0x2510, 0x2704}, +{0x2510, 0x2421}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x276c}, +{0x2510, 0x2420}, +{0x2510, 0x276c}, +{0x2510, 0x2421}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x2759}, +{0x2510, 0x2422}, +{0x2510, 0x2758}, +{0x2510, 0x2420}, +{0x2510, 0x2403}, +{0x2510, 0x2712}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2422}, +{0x2510, 0x271a}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2420}, +{0x2510, 0x2702}, +{0x2510, 0x2423}, +{0x2510, 0x2703}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2420}, +{0x2510, 0x2703}, +{0x2510, 0x2423}, +{0x2510, 0x2704}, +{0x2510, 0x3242}, +{0x2510, 0x3108}, +{0x2510, 0x2420}, +{0x2510, 0x2704}, +{0x2510, 0x2423}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x2400}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0xc023}, +{0x2510, 0x2402}, +{0x2510, 0x2405}, +{0x2510, 0x2789}, +{0x2510, 0x242e}, +{0x2510, 0x2788}, +{0x2510, 0x242f}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0xc027}, +{0x2510, 0x2400}, +{0x2510, 0x2406}, +{0x2510, 0xc063}, +{0x2510, 0x2402}, +{0x2510, 0x2751}, +{0x2510, 0x2423}, +{0x2510, 0x2750}, +{0x2510, 0x2421}, +{0x2510, 0xc003}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0xc021}, +{0x2510, 0x2400}, +{0x2510, 0x2405}, +{0x2510, 0xc062}, +{0x2510, 0x2400}, +{0x2510, 0xc063}, +{0x2510, 0x2751}, +{0x2510, 0x2423}, +{0x2510, 0x2750}, +{0x2510, 0x2421}, +{0x2510, 0xc003}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0xc0e3}, +{0x2510, 0x2400}, +{0x2510, 0x27b1}, +{0x2510, 0x2425}, +{0x2510, 0xc063}, +{0x2510, 0x2420}, +{0x2510, 0x2751}, +{0x2510, 0x2423}, +{0x2510, 0x2750}, +{0x2510, 0x2421}, +{0x2510, 0xc003}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x2404}, +{0x2510, 0x2779}, +{0x2510, 0x242c}, +{0x2510, 0x2781}, +{0x2510, 0x242d}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x2791}, +{0x2510, 0x2430}, +{0x2510, 0x2799}, +{0x2510, 0x2428}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{0x2510, 0x27a1}, +{0x2510, 0x2430}, +{0x2510, 0x27a9}, +{0x2510, 0x2428}, +{0x2510, 0x3244}, +{0x2510, 0x7fff}, +{0x2510, 0x7fff}, +{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}, +{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}, +#endif /* AR0233_Sequencer_LFM_HDR_v6 */ +#endif /* Sequencer Settings */ + +{0x3082, 0x8}, //0x3082 = 2, 3 exposures +{0x3110, 0x11}, //Set bypass pix comb for HDR,Pre_hdr_gain_enable_07Jul +{0x30BA, 0x1122}, //Num_exp_max +{0x3012, 0x144}, //Integration_time + +#if 1 /* Serial 12-bit Timing Setup_108Mhz */ +/* PCLK=24Mhz/PRE_PLL_CLK_DIV *PLL_MULTIPLIER /P1 /P4 */ +/* PCLK=24Mhz/2 *54/1/6= 108Mhz - TI serializers */ +{0x3030, 54}, //PLL_MULTIPLIER ; 0x3030 [11:0] +{0x302E, 2}, //PRE_PLL_CLK_DIV ; 0x302E [5:0] +{0x302C, 1}, //P1 divider (vt_sys_clk_div) +{0x302A, 6}, //P2 divider (vt_pix_clk_div); 0x302A [4:0] +{0x3038, 2}, //P3 divider (op_sys_clk_div); 0x3038 [4:0] +{0x3036, 6}, //P4 divider (op_word_clk_div); 0x3036 [4:0] +{0x31DC, 0x1FB0}, +#endif /* Serial 12-bit Timing Setup_108Mhz */ + +#if 1 /* MIPI 4 Lane 12BITS 30FPS_ext24_LIM */ +{0x31AE, 0x204}, //MIPI enable, 4 lanes +{0x31B0, 0x4B}, //frame_preamble +{0x31B2, 0x33}, //line_preamble +{0x31B4, 0x1185}, //mipi_timing_0 +{0x31B6, 0x110B}, //mipi_timing_1 +{0x31B8, 0x4047}, //mipi_timing_2 +{0x31BA, 0x105}, //mipi_timing_3 +{0x31BC, 0x704}, //mipi_timing_4 +#endif /* MIPI 4 Lane 12BITS 30FPS_ext24_LIM */ + +#if 1 /* MIPI_DT_bit12 */ +{0x3342, 0x122C}, // MIPI_F1_PDT_EDT +{0x3346, 0x122C}, // MIPI_F2_PDT_EDT +{0x334A, 0x122C}, // MIPI_F3_PDT_EDT +{0x334E, 0x122C}, // MIPI_F4_PDT_EDT +#endif /* MIPI_DT_bit12 */ + +/* resolution */ +{0x3004, AR0233_X_START}, // X_ADDR_START_ +{0x3008, AR0233_X_END}, // X_ADDR_END_ +{0x3002, AR0233_Y_START}, // Y_ADDR_START_ +{0x3006, AR0233_Y_END}, // Y_ADDR_END_ + +#ifdef AR0233_EMBEDDED_LINE +{0x3040, 0x0000}, //Embedded stat2 and data2 rows +{0x3064, 0x0180}, //Enable embedded data and stat +#else +{0x3064, 0x0}, //Disable embedded data and stat +#endif + +// FPS = 108MHz / reg0x300A / reg0x300C * (DES_REF_XTAL/24MHz) +{0x300A, AR0233_SENSOR_HEIGHT + 100}, // Frame_length_Lines +{0x300C, AR0233_SENSOR_WIDTH + 400}, // Line_length_pck +//{0x300C, 0x960}, //Line_lenth_pck_FRN AEF +//{0x300A, 0x5DC}, //FLL + +#if 1 /* Gain_3.28x */ +{0x3022, 0x01}, // GROUPED_PARAMETER_HOLD_ +{0x3362, 0x000F}, // DC_GAIN +{0x3366, 0x1111}, +{0x336A, 0x0000}, +{0x3022, 0x00}, // GROUPED_PARAMETER_HOLD_ +#endif /* Gain_3.28x */ + +{0x31D0, 0x1}, // Companding +{0x31AC, 0x140C}, // DLO20 to 12output + +#if 1 /* MEC DLO default */ +{0x3D00, 0x6F73}, // control +{0x3D02, 0x0033}, +{0x3364, 0x068C}, // dcg_trim = 13.1 +{0x3D28, 0x09C4}, // weights +{0x3D2A, 0x0DAC}, +{0x3D30, 0x0FFF}, +{0x3D32, 0x0FFF}, +{0x3D34, 0x09C4}, +{0x3D36, 0x0DAC}, +{0x3D3C, 0x0FFF}, +{0x3D3E, 0x0FFF}, +{0x3D40, 0x09C4}, +{0x3D42, 0x0DAC}, +{0x3D48, 0x0FFF}, +{0x3D4A, 0x0FFF}, +{0x3D4C, 0x0DAC}, +{0x3D64, 0x0DAC}, // clip +{0x3D66, 0x0DAC}, +{0x3D68, 0x0DAC}, +{0x3D6A, 0x0DAC}, +{0x3D6C, 0x0DAC}, +{0x3D6E, 0x0DAC}, +{0x3D70, 0x0DAC}, +{0x3D72, 0x0DAC}, +{0x3D74, 0x0DAC}, +{0x3D76, 0x0DAC}, +{0x3D78, 0x0DAC}, +{0x3D7A, 0x0DAC}, +{0x3D7C, 0x0DAC}, +{0x3D7E, 0x0DAC}, +{0x3D80, 0x0DAC}, +{0x3D82, 0x0DAC}, +{0x3D84, 0x0DAC}, // motion_clip +{0x3D86, 0x0DAC}, +{0x3D88, 0x0000}, +{0x3D8A, 0x0DAC}, +{0x3D8C, 0x0DAC}, +{0x3D8E, 0x0000}, +{0x3DB4, 0x0001}, // motion_q +{0x3DB6, 0x000E}, +{0x3DB8, 0x0080}, +{0x3DBA, 0x3920}, // t?_s12_k +{0x3DBC, 0x3920}, +{0x3DBE, 0x3920}, +{0x3DC0, 0x0080}, // wb_gain +{0x3DC2, 0x0080}, +{0x3DC4, 0x0080}, +{0x3DC6, 0x0080}, +{0x3DC8, 0x0000}, // color_th +{0x3DCA, 0x0000}, +{0x3DCC, 0x0000}, +{0x3DCE, 0x0000}, +{0x3DD0, 0x0000}, +{0x3DD2, 0x0000}, +{0x3DD4, 0x0000}, +{0x3DD6, 0x0000}, +{0x3DD8, 0x0000}, +{0x3DDA, 0x0000}, +{0x3DDC, 0x0000}, +{0x3DDE, 0x0000}, +{0x3DE0, 0x0000}, +{0x3290, 0x1B58}, // t3_barrier +{0x3292, 0x1B58}, +{0x3294, 0x1B58}, +{0x3296, 0x1B58}, +{0x3298, 0x2904}, // t4_barrier +{0x329A, 0x2904}, +{0x329C, 0x2904}, +{0x329E, 0x2904}, +{0x32A0, 0x0000}, +{0x32A2, 0x0000}, +{0x32A4, 0x0000}, +{0x32A6, 0x0000}, +{0x3D08, 0x0000}, // dtr_bound +{0x3D0A, 0x0000}, +{0x3D0C, 0x0000}, +{0x3D0E, 0x0000}, +{0x3D10, 0x0000}, // vis_bound +{0x3D12, 0x0798}, +{0x3D14, 0x001E}, +{0x3D16, 0x045E}, +#endif /* MEC DLO default */ + +#if 1 /* Enable_trigger_input */ +{0x340A, 0x0070}, // GPIO_CONTROL1: GPIO1 is trigger +{0x340C, 0x0080}, // GPIO_CONTROL2: GPIO1 is trigger +{0x30CE, 0x0120}, // TRIGGER_MODE +//{0x30DC, 0x0120}, // TRIGGER_DELAY +{0x301A, 0x0118}, // GPI pins enable +#endif /* Enable_trigger_input */ +}; diff --git a/drivers/media/i2c/soc_camera/ar0233_rev2.h b/drivers/media/i2c/soc_camera/ar0233_rev2.h index fbc2649..f4b75a2 100644 --- a/drivers/media/i2c/soc_camera/ar0233_rev2.h +++ b/drivers/media/i2c/soc_camera/ar0233_rev2.h @@ -9,27 +9,6 @@ * option) any later version. */ -//#define AR0233_DISPLAY_PATTERN_FIXED -//#define AR0233_DISPLAY_PATTERN_COLOR_BAR - -#define AR0233_MAX_WIDTH 2048 -#define AR0233_MAX_HEIGHT 1280 - -#define AR0233_DELAY 0xffff - -#define AR0233_SENSOR_WIDTH 2058 -#define AR0233_SENSOR_HEIGHT 1284 - -#define AR0233_X_START ((AR0233_SENSOR_WIDTH - AR0233_MAX_WIDTH) / 2) -#define AR0233_Y_START ((AR0233_SENSOR_HEIGHT - AR0233_MAX_HEIGHT) / 2) -#define AR0233_X_END (AR0233_X_START + AR0233_MAX_WIDTH - 1) -#define AR0233_Y_END (AR0233_Y_START + AR0233_MAX_HEIGHT - 1) - -struct ar0233_reg { - u16 reg; - u16 val; -}; - #define O1_Recommended_Defaults_LFM_HDR #ifdef O1_Recommended_Defaults_LFM_HDR #define Design_recommended_settings_REV2_V9 -- 2.7.4