diff mbox series

[v1,2/5] media: i2c: imx492: driver's header

Message ID 20221125153120.541298-3-petko.manolov@konsulko.com (mailing list archive)
State New, archived
Headers show
Series Adds media driver for Sony IMX492 sensor | expand

Commit Message

Petko Manolov Nov. 25, 2022, 3:31 p.m. UTC
The header.  For the moment only two modes are supported.

Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
---
 drivers/media/i2c/imx492.h | 555 +++++++++++++++++++++++++++++++++++++
 1 file changed, 555 insertions(+)
 create mode 100644 drivers/media/i2c/imx492.h

Comments

Laurent Pinchart Nov. 28, 2022, 4:40 a.m. UTC | #1
Hi Petko,

Thank you for the patch.

On Fri, Nov 25, 2022 at 05:31:17PM +0200, Petko Manolov wrote:
> The header.  For the moment only two modes are supported.

No need to split this in a separate patch, you can squash patches 2/5 to
5/5 together for v2.

> Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
> ---
>  drivers/media/i2c/imx492.h | 555 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 555 insertions(+)
>  create mode 100644 drivers/media/i2c/imx492.h
> 
> diff --git a/drivers/media/i2c/imx492.h b/drivers/media/i2c/imx492.h
> new file mode 100644
> index 000000000000..301fd66c77d5
> --- /dev/null
> +++ b/drivers/media/i2c/imx492.h
> @@ -0,0 +1,555 @@

Missing SPDX license header. Please run checkpath.pl on the whole
series.

> +#ifndef	__imx492_h__
> +#define	__imx492_h__

checkpatch.pl will also complain about this.

> +
> +struct imx492_reg {
> +	u16 address;
> +	u8 val;
> +};
> +
> +static const struct imx492_reg mode_17to9_regs[] = {
> +	{ 0x3033, 0x30 },
> +	{ 0x303c, 0x01 },
> +	{ 0x31e8, 0xa0 },
> +	{ 0x31f4, 0x01 },
> +	{ 0x31e9, 0x00 },
> +	{ 0x3122, 0x02 },
> +	{ 0x3129, 0x90 },
> +	{ 0x312a, 0x02 },
> +	{ 0x311f, 0x00 },
> +	{ 0x3123, 0x00 },
> +	{ 0x3124, 0x00 },
> +	{ 0x3125, 0x01 },
> +	{ 0x3127, 0x02 },
> +	{ 0x312d, 0x02 },
> +	{ 0x3000, 0x12 },
> +	{ 0x310b, 0x00 },
> +	{ 0x3004, 0x1c },
> +	{ 0x3005, 0x06 },
> +	{ 0x3006, 0x00 },
> +	{ 0x3007, 0xa7 },
> +	{ 0x3047, 0x02 },
> +	{ 0x304e, 0x0b },
> +	{ 0x304f, 0x2a },
> +	{ 0x3052, 0xee },
> +	{ 0x3062, 0x25 },
> +	{ 0x3064, 0x78 },
> +	{ 0x3065, 0x33 },
> +	{ 0x3066, 0x64 },
> +	{ 0x3067, 0x71 },
> +	{ 0x307e, 0x07 },
> +	{ 0x3081, 0x00 },
> +	{ 0x3088, 0x75 },
> +	{ 0x308a, 0x09 },
> +	{ 0x308c, 0x61 },
> +	{ 0x30ef, 0x01 },
> +	{ 0x3146, 0x00 },
> +	{ 0x31f5, 0x01 },
> +	{ 0x3234, 0x32 },
> +	{ 0x3248, 0xbc },
> +	{ 0x3250, 0xbc },
> +	{ 0x3258, 0xbc },
> +	{ 0x3260, 0xbc },
> +	{ 0x3274, 0x13 },
> +	{ 0x3276, 0x00 },
> +	{ 0x3277, 0x00 },
> +	{ 0x327c, 0x13 },
> +	{ 0x327e, 0x00 },
> +	{ 0x327f, 0x00 },
> +	{ 0x3284, 0x13 },
> +	{ 0x3286, 0x00 },
> +	{ 0x3287, 0x00 },
> +	{ 0x328c, 0x13 },
> +	{ 0x328e, 0x00 },
> +	{ 0x328f, 0x00 },
> +	{ 0x32ae, 0x00 },
> +	{ 0x32af, 0x00 },
> +	{ 0x32ca, 0x5a },
> +	{ 0x332c, 0x00 },
> +	{ 0x332f, 0x00 },
> +	{ 0x334a, 0x00 },
> +	{ 0x334c, 0x01 },
> +	{ 0x3352, 0x50 },
> +	{ 0x3356, 0x4f },
> +	{ 0x335a, 0x79 },
> +	{ 0x335e, 0x56 },
> +	{ 0x3360, 0x6a },
> +	{ 0x336a, 0x56 },
> +	{ 0x33d6, 0x79 },
> +	{ 0x340c, 0x6e },
> +	{ 0x3448, 0x7e },
> +	{ 0x348e, 0x6f },
> +	{ 0x3492, 0x11 },
> +	{ 0x34c4, 0x5a },
> +	{ 0x3506, 0x56 },
> +	{ 0x350c, 0x56 },
> +	{ 0x350e, 0x58 },
> +	{ 0x353d, 0x10 },
> +	{ 0x3549, 0x04 },
> +	{ 0x355d, 0x03 },
> +	{ 0x355e, 0x03 },
> +	{ 0x3574, 0x56 },
> +	{ 0x357f, 0x0c },
> +	{ 0x3580, 0x0a },
> +	{ 0x3581, 0x08 },
> +	{ 0x3583, 0x72 },
> +	{ 0x3587, 0x01 },
> +	{ 0x35b6, 0x00 },
> +	{ 0x35b8, 0x00 },
> +	{ 0x35d0, 0x5e },
> +	{ 0x35d4, 0x63 },
> +	{ 0x366a, 0x04 },
> +	{ 0x366b, 0x04 },
> +	{ 0x366c, 0x00 },
> +	{ 0x366d, 0x00 },
> +	{ 0x366e, 0x00 },
> +	{ 0x366f, 0x00 },
> +	{ 0x3670, 0x00 },
> +	{ 0x3671, 0x05 },
> +	{ 0x3676, 0x83 },
> +	{ 0x3677, 0x03 },
> +	{ 0x3678, 0x00 },
> +	{ 0x3679, 0x04 },
> +	{ 0x367a, 0x2c },
> +	{ 0x367b, 0x05 },
> +	{ 0x367d, 0x06 },
> +	{ 0x367e, 0xff },
> +	{ 0x367f, 0x06 },
> +	{ 0x3680, 0x4b },
> +	{ 0x3688, 0x05 },
> +	{ 0x3690, 0x27 },
> +	{ 0x3692, 0x65 },
> +	{ 0x3694, 0x4f },
> +	{ 0x3696, 0xa1 },
> +	{ 0x36bc, 0x00 },
> +	{ 0x371c, 0x02 },
> +	{ 0x372f, 0x3c },
> +	{ 0x3730, 0x01 },
> +	{ 0x3732, 0xb8 },
> +	{ 0x3734, 0x4a },
> +	{ 0x3736, 0x57 },
> +	{ 0x3738, 0x4d },
> +	{ 0x3744, 0x0f },
> +	{ 0x375b, 0x01 },
> +	{ 0x382b, 0x68 },
> +	{ 0x38b3, 0x00 },
> +	{ 0x3910, 0x90 },
> +	{ 0x3911, 0x70 },
> +	{ 0x3912, 0x92 },
> +	{ 0x3913, 0x24 },
> +	{ 0x3914, 0x93 },
> +	{ 0x3915, 0x0b },
> +	{ 0x3916, 0x01 },
> +	{ 0x3918, 0x04 },
> +	{ 0x391c, 0x90 },
> +	{ 0x391d, 0x05 },
> +	{ 0x3920, 0x96 },
> +	{ 0x3921, 0x06 },
> +	{ 0x3a2a, 0x01 },
> +	{ 0x3a7a, 0x01 },
> +	{ 0x3a7b, 0x01 },
> +	{ 0x3acb, 0x06 },
> +	{ 0x3c08, 0x3f },
> +	{ 0x3c0c, 0x1b },
> +	{ 0x3e80, 0x14 },
> +	{ 0x3e82, 0x30 },
> +	{ 0x3e84, 0x0c },
> +	{ 0x3e85, 0x06 },
> +	{ 0x3e86, 0xfc },
> +	{ 0x3e87, 0x10 },
> +	{ 0x3e88, 0x03 },
> +	{ 0x3e89, 0xfe },
> +	{ 0x3e8a, 0x01 },
> +	{ 0x3e8b, 0x06 },
> +	{ 0x3e8e, 0x03 },
> +	{ 0x3e8f, 0xfe },
> +	{ 0x3e90, 0x01 },
> +	{ 0x3e91, 0x06 },
> +	{ 0x3e94, 0x33 },
> +	{ 0x3e95, 0x01 },
> +	{ 0x3e96, 0x19 },
> +	{ 0x3e98, 0x30 },
> +	{ 0x3e9a, 0x11 },
> +	{ 0x3e9b, 0x06 },
> +	{ 0x3e9c, 0xfc },
> +	{ 0x3e9d, 0x10 },
> +	{ 0x3e9e, 0xfe },
> +	{ 0x3e9f, 0x03 },
> +	{ 0x3ea0, 0x06 },
> +	{ 0x3ea3, 0x01 },
> +	{ 0x3ea4, 0xfe },
> +	{ 0x3ea5, 0x03 },
> +	{ 0x3ea6, 0x06 },
> +	{ 0x3ea9, 0x33 },
> +	{ 0x3eaa, 0x00 },
> +	{ 0x3eab, 0x08 },
> +	{ 0x3eac, 0x08 },
> +	{ 0x3ead, 0x01 },
> +	{ 0x3eae, 0x08 },
> +	{ 0x3eaf, 0x08 },
> +	{ 0x3eb0, 0x00 },
> +	{ 0x3eb1, 0x10 },
> +	{ 0x3eb2, 0x10 },
> +	{ 0x3eb3, 0x01 },
> +	{ 0x3eb4, 0x10 },
> +	{ 0x3eb5, 0x10 },
> +	{ 0x3eb6, 0x00 },
> +	{ 0x3eb7, 0x00 },
> +	{ 0x3eb8, 0x00 },
> +	{ 0x3eb9, 0x00 },
> +	{ 0x3eba, 0x00 },
> +	{ 0x3ebb, 0x00 },
> +	{ 0x3ec0, 0x54 },
> +	{ 0x3ecc, 0x04 },
> +	{ 0x3ecd, 0x04 },
> +	{ 0x3ed0, 0xf0 },
> +	{ 0x3ed1, 0x20 },
> +	{ 0x3ed2, 0x0b },
> +	{ 0x3ed3, 0x04 },
> +	{ 0x3ed5, 0x13 },
> +	{ 0x3ed6, 0x00 },
> +	{ 0x3ed9, 0x0f },
> +	{ 0x3ee4, 0x02 },
> +	{ 0x3ee5, 0x02 },
> +	{ 0x3ee7, 0x00 },
> +	{ 0x3ef6, 0x00 },
> +	{ 0x3ef8, 0x10 },
> +	{ 0x3efa, 0x00 },
> +	{ 0x3efc, 0x10 },
> +	{ 0x3134, 0xa7 },
> +	{ 0x3135, 0x00 },
> +	{ 0x3136, 0x9f },
> +	{ 0x3137, 0x00 },
> +	{ 0x3138, 0x6f },
> +	{ 0x3139, 0x00 },
> +	{ 0x313a, 0x5f },
> +	{ 0x313b, 0x00 },
> +	{ 0x313c, 0x5f },
> +	{ 0x313d, 0x00 },
> +	{ 0x313e, 0x7f },
> +	{ 0x313f, 0x01 },
> +	{ 0x3140, 0x6f },
> +	{ 0x3141, 0x00 },
> +	{ 0x3142, 0x4f },
> +	{ 0x3143, 0x00 },
> +	{ 0x300e, 0x00 },
> +	{ 0x300f, 0x00 },
> +	{ 0x302c, 0x0c },
> +	{ 0x302d, 0x00 },
> +	{ 0x3034, 0x01 },
> +	{ 0x3035, 0x01 },
> +	{ 0x3036, 0x64 },
> +	{ 0x3037, 0x00 },
> +	{ 0x3038, 0xc8 },
> +	{ 0x3039, 0x00 },
> +	{ 0x3084, 0x4e },
> +	{ 0x3085, 0x04 },
> +	{ 0x3086, 0x4e },
> +	{ 0x3087, 0x04 },
> +	{ 0x30a9, 0xe0 },
> +	{ 0x30aa, 0x2e },
> +	{ 0x30ab, 0x00 },
> +	{ 0x30ac, 0x48 },
> +	{ 0x30ad, 0x0d },
> +	{ 0x30e2, 0x00 },
> +	{ 0x312f, 0x20 },
> +	{ 0x3130, 0x1c },
> +	{ 0x3131, 0x11 },
> +	{ 0x3132, 0xfc },
> +	{ 0x3133, 0x10 },
> +	{ 0x3a54, 0xf0 },
> +	{ 0x3a55, 0x20 },
> +	{ 0x3a43, 0x01 },
> +	{ 0x3a3b, 0x00 },
> +	{ 0x3042, 0x32 },
> +	{ 0x3092, 0x00 },
> +	{ 0x30dd, 0x00 },
> +	{ 0x30de, 0x00 },
> +	{ 0x30df, 0x00 },
> +	{ 0x30e0, 0x00 },
> +	{ 0x30e1, 0x00 },
> +	{ 0x332c, 0x00 },
> +	{ 0x332d, 0x00 },
> +	{ 0x334a, 0x00 },
> +	{ 0x334b, 0x00 },
> +	{ 0x35b6, 0x00 },
> +	{ 0x35b7, 0x00 },
> +	{ 0x35b8, 0x00 },
> +	{ 0x35b9, 0x00 },
> +	{ 0x36bc, 0x00 },
> +	{ 0x36bd, 0x00 },
> +};
> +
> +static const struct imx492_reg mode_all_regs[] = {
> +	{ 0x3033, 0x30 },
> +	{ 0x303c, 0x01 },
> +	{ 0x31e8, 0xa0 },
> +	{ 0x31f4, 0x01 },
> +	{ 0x31e9, 0x00 },
> +	{ 0x3122, 0x02 },
> +	{ 0x3129, 0x90 },
> +	{ 0x312a, 0x02 },
> +	{ 0x311f, 0x00 },
> +	{ 0x3123, 0x00 },
> +	{ 0x3124, 0x00 },
> +	{ 0x3125, 0x01 },
> +	{ 0x3127, 0x02 },
> +	{ 0x312d, 0x02 },
> +	{ 0x3000, 0x12 },
> +	{ 0x310b, 0x00 },
> +	{ 0x3004, 0x1c },
> +	{ 0x3005, 0x06 },
> +	{ 0x3006, 0x00 },
> +	{ 0x3007, 0xa7 },
> +	{ 0x3047, 0x02 },
> +	{ 0x304e, 0x0b },
> +	{ 0x304f, 0x2a },
> +	{ 0x3052, 0xee },
> +	{ 0x3062, 0x25 },
> +	{ 0x3064, 0x78 },
> +	{ 0x3065, 0x33 },
> +	{ 0x3066, 0x64 },
> +	{ 0x3067, 0x71 },
> +	{ 0x307e, 0x07 },
> +	{ 0x3081, 0x00 },
> +	{ 0x3088, 0x75 },
> +	{ 0x308a, 0x09 },
> +	{ 0x308c, 0x61 },
> +	{ 0x30ef, 0x01 },
> +	{ 0x3146, 0x00 },
> +	{ 0x31f5, 0x01 },
> +	{ 0x3234, 0x32 },
> +	{ 0x3248, 0xbc },
> +	{ 0x3250, 0xbc },
> +	{ 0x3258, 0xbc },
> +	{ 0x3260, 0xbc },
> +	{ 0x3274, 0x13 },
> +	{ 0x3276, 0x00 },
> +	{ 0x3277, 0x00 },
> +	{ 0x327c, 0x13 },
> +	{ 0x327e, 0x00 },
> +	{ 0x327f, 0x00 },
> +	{ 0x3284, 0x13 },
> +	{ 0x3286, 0x00 },
> +	{ 0x3287, 0x00 },
> +	{ 0x328c, 0x13 },
> +	{ 0x328e, 0x00 },
> +	{ 0x328f, 0x00 },
> +	{ 0x32ae, 0x00 },
> +	{ 0x32af, 0x00 },
> +	{ 0x32ca, 0x5a },
> +	{ 0x332c, 0x00 },
> +	{ 0x332f, 0x00 },
> +	{ 0x334a, 0x00 },
> +	{ 0x334c, 0x01 },
> +	{ 0x3352, 0x50 },
> +	{ 0x3356, 0x4f },
> +	{ 0x335a, 0x79 },
> +	{ 0x335e, 0x56 },
> +	{ 0x3360, 0x6a },
> +	{ 0x336a, 0x56 },
> +	{ 0x33d6, 0x79 },
> +	{ 0x340c, 0x6e },
> +	{ 0x3448, 0x7e },
> +	{ 0x348e, 0x6f },
> +	{ 0x3492, 0x11 },
> +	{ 0x34c4, 0x5a },
> +	{ 0x3506, 0x56 },
> +	{ 0x350c, 0x56 },
> +	{ 0x350e, 0x58 },
> +	{ 0x353d, 0x10 },
> +	{ 0x3549, 0x04 },
> +	{ 0x355d, 0x03 },
> +	{ 0x355e, 0x03 },
> +	{ 0x3574, 0x56 },
> +	{ 0x357f, 0x0c },
> +	{ 0x3580, 0x0a },
> +	{ 0x3581, 0x08 },
> +	{ 0x3583, 0x72 },
> +	{ 0x3587, 0x01 },
> +	{ 0x35b6, 0x00 },
> +	{ 0x35b8, 0x00 },
> +	{ 0x35d0, 0x5e },
> +	{ 0x35d4, 0x63 },
> +	{ 0x366a, 0x04 },
> +	{ 0x366b, 0x04 },
> +	{ 0x366c, 0x00 },
> +	{ 0x366d, 0x00 },
> +	{ 0x366e, 0x00 },
> +	{ 0x366f, 0x00 },
> +	{ 0x3670, 0x00 },
> +	{ 0x3671, 0x05 },
> +	{ 0x3676, 0x83 },
> +	{ 0x3677, 0x03 },
> +	{ 0x3678, 0x00 },
> +	{ 0x3679, 0x04 },
> +	{ 0x367a, 0x2c },
> +	{ 0x367b, 0x05 },
> +	{ 0x367d, 0x06 },
> +	{ 0x367e, 0xff },
> +	{ 0x367f, 0x06 },
> +	{ 0x3680, 0x4b },
> +	{ 0x3688, 0x05 },
> +	{ 0x3690, 0x27 },
> +	{ 0x3692, 0x65 },
> +	{ 0x3694, 0x4f },
> +	{ 0x3696, 0xa1 },
> +	{ 0x36bc, 0x00 },
> +	{ 0x371c, 0x02 },
> +	{ 0x372f, 0x3c },
> +	{ 0x3730, 0x01 },
> +	{ 0x3732, 0xb8 },
> +	{ 0x3734, 0x4a },
> +	{ 0x3736, 0x57 },
> +	{ 0x3738, 0x4d },
> +	{ 0x3744, 0x0f },
> +	{ 0x375b, 0x01 },
> +	{ 0x382b, 0x68 },
> +	{ 0x38b3, 0x00 },
> +	{ 0x3910, 0x90 },
> +	{ 0x3911, 0x70 },
> +	{ 0x3912, 0x92 },
> +	{ 0x3913, 0x24 },
> +	{ 0x3914, 0x93 },
> +	{ 0x3915, 0x0b },
> +	{ 0x3916, 0x01 },
> +	{ 0x3918, 0x04 },
> +	{ 0x391c, 0x90 },
> +	{ 0x391d, 0x05 },
> +	{ 0x3920, 0x96 },
> +	{ 0x3921, 0x06 },
> +	{ 0x3a2a, 0x01 },
> +	{ 0x3a7a, 0x01 },
> +	{ 0x3a7b, 0x01 },
> +	{ 0x3acb, 0x06 },
> +	{ 0x3c08, 0x3f },
> +	{ 0x3c0c, 0x1b },
> +	{ 0x3e80, 0x14 },
> +	{ 0x3e82, 0x30 },
> +	{ 0x3e84, 0x0c },
> +	{ 0x3e85, 0x06 },
> +	{ 0x3e86, 0xfc },
> +	{ 0x3e87, 0x10 },
> +	{ 0x3e88, 0x03 },
> +	{ 0x3e89, 0xfe },
> +	{ 0x3e8a, 0x01 },
> +	{ 0x3e8b, 0x06 },
> +	{ 0x3e8e, 0x03 },
> +	{ 0x3e8f, 0xfe },
> +	{ 0x3e90, 0x01 },
> +	{ 0x3e91, 0x06 },
> +	{ 0x3e94, 0x33 },
> +	{ 0x3e95, 0x01 },
> +	{ 0x3e96, 0x19 },
> +	{ 0x3e98, 0x30 },
> +	{ 0x3e9a, 0x11 },
> +	{ 0x3e9b, 0x06 },
> +	{ 0x3e9c, 0xfc },
> +	{ 0x3e9d, 0x10 },
> +	{ 0x3e9e, 0xfe },
> +	{ 0x3e9f, 0x03 },
> +	{ 0x3ea0, 0x06 },
> +	{ 0x3ea3, 0x01 },
> +	{ 0x3ea4, 0xfe },
> +	{ 0x3ea5, 0x03 },
> +	{ 0x3ea6, 0x06 },
> +	{ 0x3ea9, 0x33 },
> +	{ 0x3eaa, 0x00 },
> +	{ 0x3eab, 0x08 },
> +	{ 0x3eac, 0x08 },
> +	{ 0x3ead, 0x01 },
> +	{ 0x3eae, 0x08 },
> +	{ 0x3eaf, 0x08 },
> +	{ 0x3eb0, 0x00 },
> +	{ 0x3eb1, 0x10 },
> +	{ 0x3eb2, 0x10 },
> +	{ 0x3eb3, 0x01 },
> +	{ 0x3eb4, 0x10 },
> +	{ 0x3eb5, 0x10 },
> +	{ 0x3eb6, 0x00 },
> +	{ 0x3eb7, 0x00 },
> +	{ 0x3eb8, 0x00 },
> +	{ 0x3eb9, 0x00 },
> +	{ 0x3eba, 0x00 },
> +	{ 0x3ebb, 0x00 },
> +	{ 0x3ec0, 0x54 },
> +	{ 0x3ecc, 0x04 },
> +	{ 0x3ecd, 0x04 },
> +	{ 0x3ed0, 0xf0 },
> +	{ 0x3ed1, 0x20 },
> +	{ 0x3ed2, 0x0b },
> +	{ 0x3ed3, 0x04 },
> +	{ 0x3ed5, 0x13 },
> +	{ 0x3ed6, 0x00 },
> +	{ 0x3ed9, 0x0f },
> +	{ 0x3ee4, 0x02 },
> +	{ 0x3ee5, 0x02 },
> +	{ 0x3ee7, 0x00 },
> +	{ 0x3ef6, 0x00 },
> +	{ 0x3ef8, 0x10 },
> +	{ 0x3efa, 0x00 },
> +	{ 0x3efc, 0x10 },
> +	{ 0x3134, 0xa7 },
> +	{ 0x3135, 0x00 },
> +	{ 0x3136, 0x9f },
> +	{ 0x3137, 0x00 },
> +	{ 0x3138, 0x6f },
> +	{ 0x3139, 0x00 },
> +	{ 0x313a, 0x5f },
> +	{ 0x313b, 0x00 },
> +	{ 0x313c, 0x5f },
> +	{ 0x313d, 0x00 },
> +	{ 0x313e, 0x7f },
> +	{ 0x313f, 0x01 },
> +	{ 0x3140, 0x6f },
> +	{ 0x3141, 0x00 },
> +	{ 0x3142, 0x4f },
> +	{ 0x3143, 0x00 },
> +	{ 0x300e, 0x00 },
> +	{ 0x300f, 0x00 },
> +	{ 0x302c, 0x0c },
> +	{ 0x302d, 0x00 },
> +	{ 0x3034, 0x01 },
> +	{ 0x3035, 0x01 },
> +	{ 0x3036, 0x64 },
> +	{ 0x3037, 0x00 },
> +	{ 0x3038, 0xc8 },
> +	{ 0x3039, 0x00 },
> +	{ 0x3084, 0x4e },
> +	{ 0x3085, 0x04 },
> +	{ 0x3086, 0x4e },
> +	{ 0x3087, 0x04 },
> +	{ 0x30a9, 0xe0 },
> +	{ 0x30aa, 0x2e },
> +	{ 0x30ab, 0x00 },
> +	{ 0x30ac, 0x48 },
> +	{ 0x30ad, 0x0d },
> +	{ 0x30e2, 0x00 },
> +	{ 0x312f, 0x20 },
> +	{ 0x3130, 0x1c },
> +	{ 0x3131, 0x11 },
> +	{ 0x3132, 0xfc },
> +	{ 0x3133, 0x10 },
> +	{ 0x3a54, 0xf0 },
> +	{ 0x3a55, 0x20 },
> +	{ 0x3a43, 0x01 },
> +	{ 0x3a3b, 0x00 },
> +	{ 0x3042, 0x32 },
> +	{ 0x3092, 0x00 },
> +	{ 0x30dd, 0x00 },
> +	{ 0x30de, 0x00 },
> +	{ 0x30df, 0x00 },
> +	{ 0x30e0, 0x00 },
> +	{ 0x30e1, 0x00 },
> +	{ 0x332c, 0x00 },
> +	{ 0x332d, 0x00 },
> +	{ 0x334a, 0x00 },
> +	{ 0x334b, 0x00 },
> +	{ 0x35b6, 0x00 },
> +	{ 0x35b7, 0x00 },
> +	{ 0x35b8, 0x00 },
> +	{ 0x35b9, 0x00 },
> +	{ 0x36bc, 0x00 },
> +	{ 0x36bd, 0x00 },
> +};
> +
> +#endif /* __imx492_h__ */
Kieran Bingham Nov. 28, 2022, 12:47 p.m. UTC | #2
Quoting Petko Manolov (2022-11-25 15:31:17)
> The header.  For the moment only two modes are supported.
> 
> Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
> ---
>  drivers/media/i2c/imx492.h | 555 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 555 insertions(+)
>  create mode 100644 drivers/media/i2c/imx492.h
> 
> diff --git a/drivers/media/i2c/imx492.h b/drivers/media/i2c/imx492.h
> new file mode 100644
> index 000000000000..301fd66c77d5
> --- /dev/null
> +++ b/drivers/media/i2c/imx492.h
> @@ -0,0 +1,555 @@
> +#ifndef        __imx492_h__
> +#define        __imx492_h__
> +
> +struct imx492_reg {
> +       u16 address;
> +       u8 val;
> +};
> +
> +static const struct imx492_reg mode_17to9_regs[] = {

Why is this table in the header? Should it be available in multiple
locations?

I think it is likely better in the driver itself.

Even the struct imx492_reg could then be in the driver file, and there
wouldn't be a need for a header ?

--
Kieran


> +       { 0x3033, 0x30 },
> +       { 0x303c, 0x01 },
> +       { 0x31e8, 0xa0 },
> +       { 0x31f4, 0x01 },
> +       { 0x31e9, 0x00 },
> +       { 0x3122, 0x02 },
> +       { 0x3129, 0x90 },
> +       { 0x312a, 0x02 },
> +       { 0x311f, 0x00 },
> +       { 0x3123, 0x00 },
> +       { 0x3124, 0x00 },
> +       { 0x3125, 0x01 },
> +       { 0x3127, 0x02 },
> +       { 0x312d, 0x02 },
> +       { 0x3000, 0x12 },
> +       { 0x310b, 0x00 },
> +       { 0x3004, 0x1c },
> +       { 0x3005, 0x06 },
> +       { 0x3006, 0x00 },
> +       { 0x3007, 0xa7 },
> +       { 0x3047, 0x02 },
> +       { 0x304e, 0x0b },
> +       { 0x304f, 0x2a },
> +       { 0x3052, 0xee },
> +       { 0x3062, 0x25 },
> +       { 0x3064, 0x78 },
> +       { 0x3065, 0x33 },
> +       { 0x3066, 0x64 },
> +       { 0x3067, 0x71 },
> +       { 0x307e, 0x07 },
> +       { 0x3081, 0x00 },
> +       { 0x3088, 0x75 },
> +       { 0x308a, 0x09 },
> +       { 0x308c, 0x61 },
> +       { 0x30ef, 0x01 },
> +       { 0x3146, 0x00 },
> +       { 0x31f5, 0x01 },
> +       { 0x3234, 0x32 },
> +       { 0x3248, 0xbc },
> +       { 0x3250, 0xbc },
> +       { 0x3258, 0xbc },
> +       { 0x3260, 0xbc },
> +       { 0x3274, 0x13 },
> +       { 0x3276, 0x00 },
> +       { 0x3277, 0x00 },
> +       { 0x327c, 0x13 },
> +       { 0x327e, 0x00 },
> +       { 0x327f, 0x00 },
> +       { 0x3284, 0x13 },
> +       { 0x3286, 0x00 },
> +       { 0x3287, 0x00 },
> +       { 0x328c, 0x13 },
> +       { 0x328e, 0x00 },
> +       { 0x328f, 0x00 },
> +       { 0x32ae, 0x00 },
> +       { 0x32af, 0x00 },
> +       { 0x32ca, 0x5a },
> +       { 0x332c, 0x00 },
> +       { 0x332f, 0x00 },
> +       { 0x334a, 0x00 },
> +       { 0x334c, 0x01 },
> +       { 0x3352, 0x50 },
> +       { 0x3356, 0x4f },
> +       { 0x335a, 0x79 },
> +       { 0x335e, 0x56 },
> +       { 0x3360, 0x6a },
> +       { 0x336a, 0x56 },
> +       { 0x33d6, 0x79 },
> +       { 0x340c, 0x6e },
> +       { 0x3448, 0x7e },
> +       { 0x348e, 0x6f },
> +       { 0x3492, 0x11 },
> +       { 0x34c4, 0x5a },
> +       { 0x3506, 0x56 },
> +       { 0x350c, 0x56 },
> +       { 0x350e, 0x58 },
> +       { 0x353d, 0x10 },
> +       { 0x3549, 0x04 },
> +       { 0x355d, 0x03 },
> +       { 0x355e, 0x03 },
> +       { 0x3574, 0x56 },
> +       { 0x357f, 0x0c },
> +       { 0x3580, 0x0a },
> +       { 0x3581, 0x08 },
> +       { 0x3583, 0x72 },
> +       { 0x3587, 0x01 },
> +       { 0x35b6, 0x00 },
> +       { 0x35b8, 0x00 },
> +       { 0x35d0, 0x5e },
> +       { 0x35d4, 0x63 },
> +       { 0x366a, 0x04 },
> +       { 0x366b, 0x04 },
> +       { 0x366c, 0x00 },
> +       { 0x366d, 0x00 },
> +       { 0x366e, 0x00 },
> +       { 0x366f, 0x00 },
> +       { 0x3670, 0x00 },
> +       { 0x3671, 0x05 },
> +       { 0x3676, 0x83 },
> +       { 0x3677, 0x03 },
> +       { 0x3678, 0x00 },
> +       { 0x3679, 0x04 },
> +       { 0x367a, 0x2c },
> +       { 0x367b, 0x05 },
> +       { 0x367d, 0x06 },
> +       { 0x367e, 0xff },
> +       { 0x367f, 0x06 },
> +       { 0x3680, 0x4b },
> +       { 0x3688, 0x05 },
> +       { 0x3690, 0x27 },
> +       { 0x3692, 0x65 },
> +       { 0x3694, 0x4f },
> +       { 0x3696, 0xa1 },
> +       { 0x36bc, 0x00 },
> +       { 0x371c, 0x02 },
> +       { 0x372f, 0x3c },
> +       { 0x3730, 0x01 },
> +       { 0x3732, 0xb8 },
> +       { 0x3734, 0x4a },
> +       { 0x3736, 0x57 },
> +       { 0x3738, 0x4d },
> +       { 0x3744, 0x0f },
> +       { 0x375b, 0x01 },
> +       { 0x382b, 0x68 },
> +       { 0x38b3, 0x00 },
> +       { 0x3910, 0x90 },
> +       { 0x3911, 0x70 },
> +       { 0x3912, 0x92 },
> +       { 0x3913, 0x24 },
> +       { 0x3914, 0x93 },
> +       { 0x3915, 0x0b },
> +       { 0x3916, 0x01 },
> +       { 0x3918, 0x04 },
> +       { 0x391c, 0x90 },
> +       { 0x391d, 0x05 },
> +       { 0x3920, 0x96 },
> +       { 0x3921, 0x06 },
> +       { 0x3a2a, 0x01 },
> +       { 0x3a7a, 0x01 },
> +       { 0x3a7b, 0x01 },
> +       { 0x3acb, 0x06 },
> +       { 0x3c08, 0x3f },
> +       { 0x3c0c, 0x1b },
> +       { 0x3e80, 0x14 },
> +       { 0x3e82, 0x30 },
> +       { 0x3e84, 0x0c },
> +       { 0x3e85, 0x06 },
> +       { 0x3e86, 0xfc },
> +       { 0x3e87, 0x10 },
> +       { 0x3e88, 0x03 },
> +       { 0x3e89, 0xfe },
> +       { 0x3e8a, 0x01 },
> +       { 0x3e8b, 0x06 },
> +       { 0x3e8e, 0x03 },
> +       { 0x3e8f, 0xfe },
> +       { 0x3e90, 0x01 },
> +       { 0x3e91, 0x06 },
> +       { 0x3e94, 0x33 },
> +       { 0x3e95, 0x01 },
> +       { 0x3e96, 0x19 },
> +       { 0x3e98, 0x30 },
> +       { 0x3e9a, 0x11 },
> +       { 0x3e9b, 0x06 },
> +       { 0x3e9c, 0xfc },
> +       { 0x3e9d, 0x10 },
> +       { 0x3e9e, 0xfe },
> +       { 0x3e9f, 0x03 },
> +       { 0x3ea0, 0x06 },
> +       { 0x3ea3, 0x01 },
> +       { 0x3ea4, 0xfe },
> +       { 0x3ea5, 0x03 },
> +       { 0x3ea6, 0x06 },
> +       { 0x3ea9, 0x33 },
> +       { 0x3eaa, 0x00 },
> +       { 0x3eab, 0x08 },
> +       { 0x3eac, 0x08 },
> +       { 0x3ead, 0x01 },
> +       { 0x3eae, 0x08 },
> +       { 0x3eaf, 0x08 },
> +       { 0x3eb0, 0x00 },
> +       { 0x3eb1, 0x10 },
> +       { 0x3eb2, 0x10 },
> +       { 0x3eb3, 0x01 },
> +       { 0x3eb4, 0x10 },
> +       { 0x3eb5, 0x10 },
> +       { 0x3eb6, 0x00 },
> +       { 0x3eb7, 0x00 },
> +       { 0x3eb8, 0x00 },
> +       { 0x3eb9, 0x00 },
> +       { 0x3eba, 0x00 },
> +       { 0x3ebb, 0x00 },
> +       { 0x3ec0, 0x54 },
> +       { 0x3ecc, 0x04 },
> +       { 0x3ecd, 0x04 },
> +       { 0x3ed0, 0xf0 },
> +       { 0x3ed1, 0x20 },
> +       { 0x3ed2, 0x0b },
> +       { 0x3ed3, 0x04 },
> +       { 0x3ed5, 0x13 },
> +       { 0x3ed6, 0x00 },
> +       { 0x3ed9, 0x0f },
> +       { 0x3ee4, 0x02 },
> +       { 0x3ee5, 0x02 },
> +       { 0x3ee7, 0x00 },
> +       { 0x3ef6, 0x00 },
> +       { 0x3ef8, 0x10 },
> +       { 0x3efa, 0x00 },
> +       { 0x3efc, 0x10 },
> +       { 0x3134, 0xa7 },
> +       { 0x3135, 0x00 },
> +       { 0x3136, 0x9f },
> +       { 0x3137, 0x00 },
> +       { 0x3138, 0x6f },
> +       { 0x3139, 0x00 },
> +       { 0x313a, 0x5f },
> +       { 0x313b, 0x00 },
> +       { 0x313c, 0x5f },
> +       { 0x313d, 0x00 },
> +       { 0x313e, 0x7f },
> +       { 0x313f, 0x01 },
> +       { 0x3140, 0x6f },
> +       { 0x3141, 0x00 },
> +       { 0x3142, 0x4f },
> +       { 0x3143, 0x00 },
> +       { 0x300e, 0x00 },
> +       { 0x300f, 0x00 },
> +       { 0x302c, 0x0c },
> +       { 0x302d, 0x00 },
> +       { 0x3034, 0x01 },
> +       { 0x3035, 0x01 },
> +       { 0x3036, 0x64 },
> +       { 0x3037, 0x00 },
> +       { 0x3038, 0xc8 },
> +       { 0x3039, 0x00 },
> +       { 0x3084, 0x4e },
> +       { 0x3085, 0x04 },
> +       { 0x3086, 0x4e },
> +       { 0x3087, 0x04 },
> +       { 0x30a9, 0xe0 },
> +       { 0x30aa, 0x2e },
> +       { 0x30ab, 0x00 },
> +       { 0x30ac, 0x48 },
> +       { 0x30ad, 0x0d },
> +       { 0x30e2, 0x00 },
> +       { 0x312f, 0x20 },
> +       { 0x3130, 0x1c },
> +       { 0x3131, 0x11 },
> +       { 0x3132, 0xfc },
> +       { 0x3133, 0x10 },
> +       { 0x3a54, 0xf0 },
> +       { 0x3a55, 0x20 },
> +       { 0x3a43, 0x01 },
> +       { 0x3a3b, 0x00 },
> +       { 0x3042, 0x32 },
> +       { 0x3092, 0x00 },
> +       { 0x30dd, 0x00 },
> +       { 0x30de, 0x00 },
> +       { 0x30df, 0x00 },
> +       { 0x30e0, 0x00 },
> +       { 0x30e1, 0x00 },
> +       { 0x332c, 0x00 },
> +       { 0x332d, 0x00 },
> +       { 0x334a, 0x00 },
> +       { 0x334b, 0x00 },
> +       { 0x35b6, 0x00 },
> +       { 0x35b7, 0x00 },
> +       { 0x35b8, 0x00 },
> +       { 0x35b9, 0x00 },
> +       { 0x36bc, 0x00 },
> +       { 0x36bd, 0x00 },
> +};
> +
> +static const struct imx492_reg mode_all_regs[] = {
> +       { 0x3033, 0x30 },
> +       { 0x303c, 0x01 },
> +       { 0x31e8, 0xa0 },
> +       { 0x31f4, 0x01 },
> +       { 0x31e9, 0x00 },
> +       { 0x3122, 0x02 },
> +       { 0x3129, 0x90 },
> +       { 0x312a, 0x02 },
> +       { 0x311f, 0x00 },
> +       { 0x3123, 0x00 },
> +       { 0x3124, 0x00 },
> +       { 0x3125, 0x01 },
> +       { 0x3127, 0x02 },
> +       { 0x312d, 0x02 },
> +       { 0x3000, 0x12 },
> +       { 0x310b, 0x00 },
> +       { 0x3004, 0x1c },
> +       { 0x3005, 0x06 },
> +       { 0x3006, 0x00 },
> +       { 0x3007, 0xa7 },
> +       { 0x3047, 0x02 },
> +       { 0x304e, 0x0b },
> +       { 0x304f, 0x2a },
> +       { 0x3052, 0xee },
> +       { 0x3062, 0x25 },
> +       { 0x3064, 0x78 },
> +       { 0x3065, 0x33 },
> +       { 0x3066, 0x64 },
> +       { 0x3067, 0x71 },
> +       { 0x307e, 0x07 },
> +       { 0x3081, 0x00 },
> +       { 0x3088, 0x75 },
> +       { 0x308a, 0x09 },
> +       { 0x308c, 0x61 },
> +       { 0x30ef, 0x01 },
> +       { 0x3146, 0x00 },
> +       { 0x31f5, 0x01 },
> +       { 0x3234, 0x32 },
> +       { 0x3248, 0xbc },
> +       { 0x3250, 0xbc },
> +       { 0x3258, 0xbc },
> +       { 0x3260, 0xbc },
> +       { 0x3274, 0x13 },
> +       { 0x3276, 0x00 },
> +       { 0x3277, 0x00 },
> +       { 0x327c, 0x13 },
> +       { 0x327e, 0x00 },
> +       { 0x327f, 0x00 },
> +       { 0x3284, 0x13 },
> +       { 0x3286, 0x00 },
> +       { 0x3287, 0x00 },
> +       { 0x328c, 0x13 },
> +       { 0x328e, 0x00 },
> +       { 0x328f, 0x00 },
> +       { 0x32ae, 0x00 },
> +       { 0x32af, 0x00 },
> +       { 0x32ca, 0x5a },
> +       { 0x332c, 0x00 },
> +       { 0x332f, 0x00 },
> +       { 0x334a, 0x00 },
> +       { 0x334c, 0x01 },
> +       { 0x3352, 0x50 },
> +       { 0x3356, 0x4f },
> +       { 0x335a, 0x79 },
> +       { 0x335e, 0x56 },
> +       { 0x3360, 0x6a },
> +       { 0x336a, 0x56 },
> +       { 0x33d6, 0x79 },
> +       { 0x340c, 0x6e },
> +       { 0x3448, 0x7e },
> +       { 0x348e, 0x6f },
> +       { 0x3492, 0x11 },
> +       { 0x34c4, 0x5a },
> +       { 0x3506, 0x56 },
> +       { 0x350c, 0x56 },
> +       { 0x350e, 0x58 },
> +       { 0x353d, 0x10 },
> +       { 0x3549, 0x04 },
> +       { 0x355d, 0x03 },
> +       { 0x355e, 0x03 },
> +       { 0x3574, 0x56 },
> +       { 0x357f, 0x0c },
> +       { 0x3580, 0x0a },
> +       { 0x3581, 0x08 },
> +       { 0x3583, 0x72 },
> +       { 0x3587, 0x01 },
> +       { 0x35b6, 0x00 },
> +       { 0x35b8, 0x00 },
> +       { 0x35d0, 0x5e },
> +       { 0x35d4, 0x63 },
> +       { 0x366a, 0x04 },
> +       { 0x366b, 0x04 },
> +       { 0x366c, 0x00 },
> +       { 0x366d, 0x00 },
> +       { 0x366e, 0x00 },
> +       { 0x366f, 0x00 },
> +       { 0x3670, 0x00 },
> +       { 0x3671, 0x05 },
> +       { 0x3676, 0x83 },
> +       { 0x3677, 0x03 },
> +       { 0x3678, 0x00 },
> +       { 0x3679, 0x04 },
> +       { 0x367a, 0x2c },
> +       { 0x367b, 0x05 },
> +       { 0x367d, 0x06 },
> +       { 0x367e, 0xff },
> +       { 0x367f, 0x06 },
> +       { 0x3680, 0x4b },
> +       { 0x3688, 0x05 },
> +       { 0x3690, 0x27 },
> +       { 0x3692, 0x65 },
> +       { 0x3694, 0x4f },
> +       { 0x3696, 0xa1 },
> +       { 0x36bc, 0x00 },
> +       { 0x371c, 0x02 },
> +       { 0x372f, 0x3c },
> +       { 0x3730, 0x01 },
> +       { 0x3732, 0xb8 },
> +       { 0x3734, 0x4a },
> +       { 0x3736, 0x57 },
> +       { 0x3738, 0x4d },
> +       { 0x3744, 0x0f },
> +       { 0x375b, 0x01 },
> +       { 0x382b, 0x68 },
> +       { 0x38b3, 0x00 },
> +       { 0x3910, 0x90 },
> +       { 0x3911, 0x70 },
> +       { 0x3912, 0x92 },
> +       { 0x3913, 0x24 },
> +       { 0x3914, 0x93 },
> +       { 0x3915, 0x0b },
> +       { 0x3916, 0x01 },
> +       { 0x3918, 0x04 },
> +       { 0x391c, 0x90 },
> +       { 0x391d, 0x05 },
> +       { 0x3920, 0x96 },
> +       { 0x3921, 0x06 },
> +       { 0x3a2a, 0x01 },
> +       { 0x3a7a, 0x01 },
> +       { 0x3a7b, 0x01 },
> +       { 0x3acb, 0x06 },
> +       { 0x3c08, 0x3f },
> +       { 0x3c0c, 0x1b },
> +       { 0x3e80, 0x14 },
> +       { 0x3e82, 0x30 },
> +       { 0x3e84, 0x0c },
> +       { 0x3e85, 0x06 },
> +       { 0x3e86, 0xfc },
> +       { 0x3e87, 0x10 },
> +       { 0x3e88, 0x03 },
> +       { 0x3e89, 0xfe },
> +       { 0x3e8a, 0x01 },
> +       { 0x3e8b, 0x06 },
> +       { 0x3e8e, 0x03 },
> +       { 0x3e8f, 0xfe },
> +       { 0x3e90, 0x01 },
> +       { 0x3e91, 0x06 },
> +       { 0x3e94, 0x33 },
> +       { 0x3e95, 0x01 },
> +       { 0x3e96, 0x19 },
> +       { 0x3e98, 0x30 },
> +       { 0x3e9a, 0x11 },
> +       { 0x3e9b, 0x06 },
> +       { 0x3e9c, 0xfc },
> +       { 0x3e9d, 0x10 },
> +       { 0x3e9e, 0xfe },
> +       { 0x3e9f, 0x03 },
> +       { 0x3ea0, 0x06 },
> +       { 0x3ea3, 0x01 },
> +       { 0x3ea4, 0xfe },
> +       { 0x3ea5, 0x03 },
> +       { 0x3ea6, 0x06 },
> +       { 0x3ea9, 0x33 },
> +       { 0x3eaa, 0x00 },
> +       { 0x3eab, 0x08 },
> +       { 0x3eac, 0x08 },
> +       { 0x3ead, 0x01 },
> +       { 0x3eae, 0x08 },
> +       { 0x3eaf, 0x08 },
> +       { 0x3eb0, 0x00 },
> +       { 0x3eb1, 0x10 },
> +       { 0x3eb2, 0x10 },
> +       { 0x3eb3, 0x01 },
> +       { 0x3eb4, 0x10 },
> +       { 0x3eb5, 0x10 },
> +       { 0x3eb6, 0x00 },
> +       { 0x3eb7, 0x00 },
> +       { 0x3eb8, 0x00 },
> +       { 0x3eb9, 0x00 },
> +       { 0x3eba, 0x00 },
> +       { 0x3ebb, 0x00 },
> +       { 0x3ec0, 0x54 },
> +       { 0x3ecc, 0x04 },
> +       { 0x3ecd, 0x04 },
> +       { 0x3ed0, 0xf0 },
> +       { 0x3ed1, 0x20 },
> +       { 0x3ed2, 0x0b },
> +       { 0x3ed3, 0x04 },
> +       { 0x3ed5, 0x13 },
> +       { 0x3ed6, 0x00 },
> +       { 0x3ed9, 0x0f },
> +       { 0x3ee4, 0x02 },
> +       { 0x3ee5, 0x02 },
> +       { 0x3ee7, 0x00 },
> +       { 0x3ef6, 0x00 },
> +       { 0x3ef8, 0x10 },
> +       { 0x3efa, 0x00 },
> +       { 0x3efc, 0x10 },
> +       { 0x3134, 0xa7 },
> +       { 0x3135, 0x00 },
> +       { 0x3136, 0x9f },
> +       { 0x3137, 0x00 },
> +       { 0x3138, 0x6f },
> +       { 0x3139, 0x00 },
> +       { 0x313a, 0x5f },
> +       { 0x313b, 0x00 },
> +       { 0x313c, 0x5f },
> +       { 0x313d, 0x00 },
> +       { 0x313e, 0x7f },
> +       { 0x313f, 0x01 },
> +       { 0x3140, 0x6f },
> +       { 0x3141, 0x00 },
> +       { 0x3142, 0x4f },
> +       { 0x3143, 0x00 },
> +       { 0x300e, 0x00 },
> +       { 0x300f, 0x00 },
> +       { 0x302c, 0x0c },
> +       { 0x302d, 0x00 },
> +       { 0x3034, 0x01 },
> +       { 0x3035, 0x01 },
> +       { 0x3036, 0x64 },
> +       { 0x3037, 0x00 },
> +       { 0x3038, 0xc8 },
> +       { 0x3039, 0x00 },
> +       { 0x3084, 0x4e },
> +       { 0x3085, 0x04 },
> +       { 0x3086, 0x4e },
> +       { 0x3087, 0x04 },
> +       { 0x30a9, 0xe0 },
> +       { 0x30aa, 0x2e },
> +       { 0x30ab, 0x00 },
> +       { 0x30ac, 0x48 },
> +       { 0x30ad, 0x0d },
> +       { 0x30e2, 0x00 },
> +       { 0x312f, 0x20 },
> +       { 0x3130, 0x1c },
> +       { 0x3131, 0x11 },
> +       { 0x3132, 0xfc },
> +       { 0x3133, 0x10 },
> +       { 0x3a54, 0xf0 },
> +       { 0x3a55, 0x20 },
> +       { 0x3a43, 0x01 },
> +       { 0x3a3b, 0x00 },
> +       { 0x3042, 0x32 },
> +       { 0x3092, 0x00 },
> +       { 0x30dd, 0x00 },
> +       { 0x30de, 0x00 },
> +       { 0x30df, 0x00 },
> +       { 0x30e0, 0x00 },
> +       { 0x30e1, 0x00 },
> +       { 0x332c, 0x00 },
> +       { 0x332d, 0x00 },
> +       { 0x334a, 0x00 },
> +       { 0x334b, 0x00 },
> +       { 0x35b6, 0x00 },
> +       { 0x35b7, 0x00 },
> +       { 0x35b8, 0x00 },
> +       { 0x35b9, 0x00 },
> +       { 0x36bc, 0x00 },
> +       { 0x36bd, 0x00 },
> +};
> +
> +#endif /* __imx492_h__ */
> -- 
> 2.30.2
>
Petko Manolov Nov. 28, 2022, 1:12 p.m. UTC | #3
On 22-11-28 06:40:23, Laurent Pinchart wrote:
> Hi Petko,
> 
> Thank you for the patch.
> 
> On Fri, Nov 25, 2022 at 05:31:17PM +0200, Petko Manolov wrote:
> > The header.  For the moment only two modes are supported.
> 
> No need to split this in a separate patch, you can squash patches 2/5 to 5/5
> together for v2.

Yup.

> > Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
> > ---
> >  drivers/media/i2c/imx492.h | 555 +++++++++++++++++++++++++++++++++++++
> >  1 file changed, 555 insertions(+)
> >  create mode 100644 drivers/media/i2c/imx492.h
> > 
> > diff --git a/drivers/media/i2c/imx492.h b/drivers/media/i2c/imx492.h
> > new file mode 100644
> > index 000000000000..301fd66c77d5
> > --- /dev/null
> > +++ b/drivers/media/i2c/imx492.h
> > @@ -0,0 +1,555 @@
> 
> Missing SPDX license header. Please run checkpath.pl on the whole series.

OK.

> > +#ifndef	__imx492_h__
> > +#define	__imx492_h__
> 
> checkpatch.pl will also complain about this.
> 
> > +
> > +struct imx492_reg {
> > +	u16 address;
> > +	u8 val;
> > +};
> > +
> > +static const struct imx492_reg mode_17to9_regs[] = {
> > +	{ 0x3033, 0x30 },
> > +	{ 0x303c, 0x01 },
> > +	{ 0x31e8, 0xa0 },
> > +	{ 0x31f4, 0x01 },
> > +	{ 0x31e9, 0x00 },
> > +	{ 0x3122, 0x02 },
> > +	{ 0x3129, 0x90 },
> > +	{ 0x312a, 0x02 },
> > +	{ 0x311f, 0x00 },
> > +	{ 0x3123, 0x00 },
> > +	{ 0x3124, 0x00 },
> > +	{ 0x3125, 0x01 },
> > +	{ 0x3127, 0x02 },
> > +	{ 0x312d, 0x02 },
> > +	{ 0x3000, 0x12 },
> > +	{ 0x310b, 0x00 },
> > +	{ 0x3004, 0x1c },
> > +	{ 0x3005, 0x06 },
> > +	{ 0x3006, 0x00 },
> > +	{ 0x3007, 0xa7 },
> > +	{ 0x3047, 0x02 },
> > +	{ 0x304e, 0x0b },
> > +	{ 0x304f, 0x2a },
> > +	{ 0x3052, 0xee },
> > +	{ 0x3062, 0x25 },
> > +	{ 0x3064, 0x78 },
> > +	{ 0x3065, 0x33 },
> > +	{ 0x3066, 0x64 },
> > +	{ 0x3067, 0x71 },
> > +	{ 0x307e, 0x07 },
> > +	{ 0x3081, 0x00 },
> > +	{ 0x3088, 0x75 },
> > +	{ 0x308a, 0x09 },
> > +	{ 0x308c, 0x61 },
> > +	{ 0x30ef, 0x01 },
> > +	{ 0x3146, 0x00 },
> > +	{ 0x31f5, 0x01 },
> > +	{ 0x3234, 0x32 },
> > +	{ 0x3248, 0xbc },
> > +	{ 0x3250, 0xbc },
> > +	{ 0x3258, 0xbc },
> > +	{ 0x3260, 0xbc },
> > +	{ 0x3274, 0x13 },
> > +	{ 0x3276, 0x00 },
> > +	{ 0x3277, 0x00 },
> > +	{ 0x327c, 0x13 },
> > +	{ 0x327e, 0x00 },
> > +	{ 0x327f, 0x00 },
> > +	{ 0x3284, 0x13 },
> > +	{ 0x3286, 0x00 },
> > +	{ 0x3287, 0x00 },
> > +	{ 0x328c, 0x13 },
> > +	{ 0x328e, 0x00 },
> > +	{ 0x328f, 0x00 },
> > +	{ 0x32ae, 0x00 },
> > +	{ 0x32af, 0x00 },
> > +	{ 0x32ca, 0x5a },
> > +	{ 0x332c, 0x00 },
> > +	{ 0x332f, 0x00 },
> > +	{ 0x334a, 0x00 },
> > +	{ 0x334c, 0x01 },
> > +	{ 0x3352, 0x50 },
> > +	{ 0x3356, 0x4f },
> > +	{ 0x335a, 0x79 },
> > +	{ 0x335e, 0x56 },
> > +	{ 0x3360, 0x6a },
> > +	{ 0x336a, 0x56 },
> > +	{ 0x33d6, 0x79 },
> > +	{ 0x340c, 0x6e },
> > +	{ 0x3448, 0x7e },
> > +	{ 0x348e, 0x6f },
> > +	{ 0x3492, 0x11 },
> > +	{ 0x34c4, 0x5a },
> > +	{ 0x3506, 0x56 },
> > +	{ 0x350c, 0x56 },
> > +	{ 0x350e, 0x58 },
> > +	{ 0x353d, 0x10 },
> > +	{ 0x3549, 0x04 },
> > +	{ 0x355d, 0x03 },
> > +	{ 0x355e, 0x03 },
> > +	{ 0x3574, 0x56 },
> > +	{ 0x357f, 0x0c },
> > +	{ 0x3580, 0x0a },
> > +	{ 0x3581, 0x08 },
> > +	{ 0x3583, 0x72 },
> > +	{ 0x3587, 0x01 },
> > +	{ 0x35b6, 0x00 },
> > +	{ 0x35b8, 0x00 },
> > +	{ 0x35d0, 0x5e },
> > +	{ 0x35d4, 0x63 },
> > +	{ 0x366a, 0x04 },
> > +	{ 0x366b, 0x04 },
> > +	{ 0x366c, 0x00 },
> > +	{ 0x366d, 0x00 },
> > +	{ 0x366e, 0x00 },
> > +	{ 0x366f, 0x00 },
> > +	{ 0x3670, 0x00 },
> > +	{ 0x3671, 0x05 },
> > +	{ 0x3676, 0x83 },
> > +	{ 0x3677, 0x03 },
> > +	{ 0x3678, 0x00 },
> > +	{ 0x3679, 0x04 },
> > +	{ 0x367a, 0x2c },
> > +	{ 0x367b, 0x05 },
> > +	{ 0x367d, 0x06 },
> > +	{ 0x367e, 0xff },
> > +	{ 0x367f, 0x06 },
> > +	{ 0x3680, 0x4b },
> > +	{ 0x3688, 0x05 },
> > +	{ 0x3690, 0x27 },
> > +	{ 0x3692, 0x65 },
> > +	{ 0x3694, 0x4f },
> > +	{ 0x3696, 0xa1 },
> > +	{ 0x36bc, 0x00 },
> > +	{ 0x371c, 0x02 },
> > +	{ 0x372f, 0x3c },
> > +	{ 0x3730, 0x01 },
> > +	{ 0x3732, 0xb8 },
> > +	{ 0x3734, 0x4a },
> > +	{ 0x3736, 0x57 },
> > +	{ 0x3738, 0x4d },
> > +	{ 0x3744, 0x0f },
> > +	{ 0x375b, 0x01 },
> > +	{ 0x382b, 0x68 },
> > +	{ 0x38b3, 0x00 },
> > +	{ 0x3910, 0x90 },
> > +	{ 0x3911, 0x70 },
> > +	{ 0x3912, 0x92 },
> > +	{ 0x3913, 0x24 },
> > +	{ 0x3914, 0x93 },
> > +	{ 0x3915, 0x0b },
> > +	{ 0x3916, 0x01 },
> > +	{ 0x3918, 0x04 },
> > +	{ 0x391c, 0x90 },
> > +	{ 0x391d, 0x05 },
> > +	{ 0x3920, 0x96 },
> > +	{ 0x3921, 0x06 },
> > +	{ 0x3a2a, 0x01 },
> > +	{ 0x3a7a, 0x01 },
> > +	{ 0x3a7b, 0x01 },
> > +	{ 0x3acb, 0x06 },
> > +	{ 0x3c08, 0x3f },
> > +	{ 0x3c0c, 0x1b },
> > +	{ 0x3e80, 0x14 },
> > +	{ 0x3e82, 0x30 },
> > +	{ 0x3e84, 0x0c },
> > +	{ 0x3e85, 0x06 },
> > +	{ 0x3e86, 0xfc },
> > +	{ 0x3e87, 0x10 },
> > +	{ 0x3e88, 0x03 },
> > +	{ 0x3e89, 0xfe },
> > +	{ 0x3e8a, 0x01 },
> > +	{ 0x3e8b, 0x06 },
> > +	{ 0x3e8e, 0x03 },
> > +	{ 0x3e8f, 0xfe },
> > +	{ 0x3e90, 0x01 },
> > +	{ 0x3e91, 0x06 },
> > +	{ 0x3e94, 0x33 },
> > +	{ 0x3e95, 0x01 },
> > +	{ 0x3e96, 0x19 },
> > +	{ 0x3e98, 0x30 },
> > +	{ 0x3e9a, 0x11 },
> > +	{ 0x3e9b, 0x06 },
> > +	{ 0x3e9c, 0xfc },
> > +	{ 0x3e9d, 0x10 },
> > +	{ 0x3e9e, 0xfe },
> > +	{ 0x3e9f, 0x03 },
> > +	{ 0x3ea0, 0x06 },
> > +	{ 0x3ea3, 0x01 },
> > +	{ 0x3ea4, 0xfe },
> > +	{ 0x3ea5, 0x03 },
> > +	{ 0x3ea6, 0x06 },
> > +	{ 0x3ea9, 0x33 },
> > +	{ 0x3eaa, 0x00 },
> > +	{ 0x3eab, 0x08 },
> > +	{ 0x3eac, 0x08 },
> > +	{ 0x3ead, 0x01 },
> > +	{ 0x3eae, 0x08 },
> > +	{ 0x3eaf, 0x08 },
> > +	{ 0x3eb0, 0x00 },
> > +	{ 0x3eb1, 0x10 },
> > +	{ 0x3eb2, 0x10 },
> > +	{ 0x3eb3, 0x01 },
> > +	{ 0x3eb4, 0x10 },
> > +	{ 0x3eb5, 0x10 },
> > +	{ 0x3eb6, 0x00 },
> > +	{ 0x3eb7, 0x00 },
> > +	{ 0x3eb8, 0x00 },
> > +	{ 0x3eb9, 0x00 },
> > +	{ 0x3eba, 0x00 },
> > +	{ 0x3ebb, 0x00 },
> > +	{ 0x3ec0, 0x54 },
> > +	{ 0x3ecc, 0x04 },
> > +	{ 0x3ecd, 0x04 },
> > +	{ 0x3ed0, 0xf0 },
> > +	{ 0x3ed1, 0x20 },
> > +	{ 0x3ed2, 0x0b },
> > +	{ 0x3ed3, 0x04 },
> > +	{ 0x3ed5, 0x13 },
> > +	{ 0x3ed6, 0x00 },
> > +	{ 0x3ed9, 0x0f },
> > +	{ 0x3ee4, 0x02 },
> > +	{ 0x3ee5, 0x02 },
> > +	{ 0x3ee7, 0x00 },
> > +	{ 0x3ef6, 0x00 },
> > +	{ 0x3ef8, 0x10 },
> > +	{ 0x3efa, 0x00 },
> > +	{ 0x3efc, 0x10 },
> > +	{ 0x3134, 0xa7 },
> > +	{ 0x3135, 0x00 },
> > +	{ 0x3136, 0x9f },
> > +	{ 0x3137, 0x00 },
> > +	{ 0x3138, 0x6f },
> > +	{ 0x3139, 0x00 },
> > +	{ 0x313a, 0x5f },
> > +	{ 0x313b, 0x00 },
> > +	{ 0x313c, 0x5f },
> > +	{ 0x313d, 0x00 },
> > +	{ 0x313e, 0x7f },
> > +	{ 0x313f, 0x01 },
> > +	{ 0x3140, 0x6f },
> > +	{ 0x3141, 0x00 },
> > +	{ 0x3142, 0x4f },
> > +	{ 0x3143, 0x00 },
> > +	{ 0x300e, 0x00 },
> > +	{ 0x300f, 0x00 },
> > +	{ 0x302c, 0x0c },
> > +	{ 0x302d, 0x00 },
> > +	{ 0x3034, 0x01 },
> > +	{ 0x3035, 0x01 },
> > +	{ 0x3036, 0x64 },
> > +	{ 0x3037, 0x00 },
> > +	{ 0x3038, 0xc8 },
> > +	{ 0x3039, 0x00 },
> > +	{ 0x3084, 0x4e },
> > +	{ 0x3085, 0x04 },
> > +	{ 0x3086, 0x4e },
> > +	{ 0x3087, 0x04 },
> > +	{ 0x30a9, 0xe0 },
> > +	{ 0x30aa, 0x2e },
> > +	{ 0x30ab, 0x00 },
> > +	{ 0x30ac, 0x48 },
> > +	{ 0x30ad, 0x0d },
> > +	{ 0x30e2, 0x00 },
> > +	{ 0x312f, 0x20 },
> > +	{ 0x3130, 0x1c },
> > +	{ 0x3131, 0x11 },
> > +	{ 0x3132, 0xfc },
> > +	{ 0x3133, 0x10 },
> > +	{ 0x3a54, 0xf0 },
> > +	{ 0x3a55, 0x20 },
> > +	{ 0x3a43, 0x01 },
> > +	{ 0x3a3b, 0x00 },
> > +	{ 0x3042, 0x32 },
> > +	{ 0x3092, 0x00 },
> > +	{ 0x30dd, 0x00 },
> > +	{ 0x30de, 0x00 },
> > +	{ 0x30df, 0x00 },
> > +	{ 0x30e0, 0x00 },
> > +	{ 0x30e1, 0x00 },
> > +	{ 0x332c, 0x00 },
> > +	{ 0x332d, 0x00 },
> > +	{ 0x334a, 0x00 },
> > +	{ 0x334b, 0x00 },
> > +	{ 0x35b6, 0x00 },
> > +	{ 0x35b7, 0x00 },
> > +	{ 0x35b8, 0x00 },
> > +	{ 0x35b9, 0x00 },
> > +	{ 0x36bc, 0x00 },
> > +	{ 0x36bd, 0x00 },
> > +};
> > +
> > +static const struct imx492_reg mode_all_regs[] = {
> > +	{ 0x3033, 0x30 },
> > +	{ 0x303c, 0x01 },
> > +	{ 0x31e8, 0xa0 },
> > +	{ 0x31f4, 0x01 },
> > +	{ 0x31e9, 0x00 },
> > +	{ 0x3122, 0x02 },
> > +	{ 0x3129, 0x90 },
> > +	{ 0x312a, 0x02 },
> > +	{ 0x311f, 0x00 },
> > +	{ 0x3123, 0x00 },
> > +	{ 0x3124, 0x00 },
> > +	{ 0x3125, 0x01 },
> > +	{ 0x3127, 0x02 },
> > +	{ 0x312d, 0x02 },
> > +	{ 0x3000, 0x12 },
> > +	{ 0x310b, 0x00 },
> > +	{ 0x3004, 0x1c },
> > +	{ 0x3005, 0x06 },
> > +	{ 0x3006, 0x00 },
> > +	{ 0x3007, 0xa7 },
> > +	{ 0x3047, 0x02 },
> > +	{ 0x304e, 0x0b },
> > +	{ 0x304f, 0x2a },
> > +	{ 0x3052, 0xee },
> > +	{ 0x3062, 0x25 },
> > +	{ 0x3064, 0x78 },
> > +	{ 0x3065, 0x33 },
> > +	{ 0x3066, 0x64 },
> > +	{ 0x3067, 0x71 },
> > +	{ 0x307e, 0x07 },
> > +	{ 0x3081, 0x00 },
> > +	{ 0x3088, 0x75 },
> > +	{ 0x308a, 0x09 },
> > +	{ 0x308c, 0x61 },
> > +	{ 0x30ef, 0x01 },
> > +	{ 0x3146, 0x00 },
> > +	{ 0x31f5, 0x01 },
> > +	{ 0x3234, 0x32 },
> > +	{ 0x3248, 0xbc },
> > +	{ 0x3250, 0xbc },
> > +	{ 0x3258, 0xbc },
> > +	{ 0x3260, 0xbc },
> > +	{ 0x3274, 0x13 },
> > +	{ 0x3276, 0x00 },
> > +	{ 0x3277, 0x00 },
> > +	{ 0x327c, 0x13 },
> > +	{ 0x327e, 0x00 },
> > +	{ 0x327f, 0x00 },
> > +	{ 0x3284, 0x13 },
> > +	{ 0x3286, 0x00 },
> > +	{ 0x3287, 0x00 },
> > +	{ 0x328c, 0x13 },
> > +	{ 0x328e, 0x00 },
> > +	{ 0x328f, 0x00 },
> > +	{ 0x32ae, 0x00 },
> > +	{ 0x32af, 0x00 },
> > +	{ 0x32ca, 0x5a },
> > +	{ 0x332c, 0x00 },
> > +	{ 0x332f, 0x00 },
> > +	{ 0x334a, 0x00 },
> > +	{ 0x334c, 0x01 },
> > +	{ 0x3352, 0x50 },
> > +	{ 0x3356, 0x4f },
> > +	{ 0x335a, 0x79 },
> > +	{ 0x335e, 0x56 },
> > +	{ 0x3360, 0x6a },
> > +	{ 0x336a, 0x56 },
> > +	{ 0x33d6, 0x79 },
> > +	{ 0x340c, 0x6e },
> > +	{ 0x3448, 0x7e },
> > +	{ 0x348e, 0x6f },
> > +	{ 0x3492, 0x11 },
> > +	{ 0x34c4, 0x5a },
> > +	{ 0x3506, 0x56 },
> > +	{ 0x350c, 0x56 },
> > +	{ 0x350e, 0x58 },
> > +	{ 0x353d, 0x10 },
> > +	{ 0x3549, 0x04 },
> > +	{ 0x355d, 0x03 },
> > +	{ 0x355e, 0x03 },
> > +	{ 0x3574, 0x56 },
> > +	{ 0x357f, 0x0c },
> > +	{ 0x3580, 0x0a },
> > +	{ 0x3581, 0x08 },
> > +	{ 0x3583, 0x72 },
> > +	{ 0x3587, 0x01 },
> > +	{ 0x35b6, 0x00 },
> > +	{ 0x35b8, 0x00 },
> > +	{ 0x35d0, 0x5e },
> > +	{ 0x35d4, 0x63 },
> > +	{ 0x366a, 0x04 },
> > +	{ 0x366b, 0x04 },
> > +	{ 0x366c, 0x00 },
> > +	{ 0x366d, 0x00 },
> > +	{ 0x366e, 0x00 },
> > +	{ 0x366f, 0x00 },
> > +	{ 0x3670, 0x00 },
> > +	{ 0x3671, 0x05 },
> > +	{ 0x3676, 0x83 },
> > +	{ 0x3677, 0x03 },
> > +	{ 0x3678, 0x00 },
> > +	{ 0x3679, 0x04 },
> > +	{ 0x367a, 0x2c },
> > +	{ 0x367b, 0x05 },
> > +	{ 0x367d, 0x06 },
> > +	{ 0x367e, 0xff },
> > +	{ 0x367f, 0x06 },
> > +	{ 0x3680, 0x4b },
> > +	{ 0x3688, 0x05 },
> > +	{ 0x3690, 0x27 },
> > +	{ 0x3692, 0x65 },
> > +	{ 0x3694, 0x4f },
> > +	{ 0x3696, 0xa1 },
> > +	{ 0x36bc, 0x00 },
> > +	{ 0x371c, 0x02 },
> > +	{ 0x372f, 0x3c },
> > +	{ 0x3730, 0x01 },
> > +	{ 0x3732, 0xb8 },
> > +	{ 0x3734, 0x4a },
> > +	{ 0x3736, 0x57 },
> > +	{ 0x3738, 0x4d },
> > +	{ 0x3744, 0x0f },
> > +	{ 0x375b, 0x01 },
> > +	{ 0x382b, 0x68 },
> > +	{ 0x38b3, 0x00 },
> > +	{ 0x3910, 0x90 },
> > +	{ 0x3911, 0x70 },
> > +	{ 0x3912, 0x92 },
> > +	{ 0x3913, 0x24 },
> > +	{ 0x3914, 0x93 },
> > +	{ 0x3915, 0x0b },
> > +	{ 0x3916, 0x01 },
> > +	{ 0x3918, 0x04 },
> > +	{ 0x391c, 0x90 },
> > +	{ 0x391d, 0x05 },
> > +	{ 0x3920, 0x96 },
> > +	{ 0x3921, 0x06 },
> > +	{ 0x3a2a, 0x01 },
> > +	{ 0x3a7a, 0x01 },
> > +	{ 0x3a7b, 0x01 },
> > +	{ 0x3acb, 0x06 },
> > +	{ 0x3c08, 0x3f },
> > +	{ 0x3c0c, 0x1b },
> > +	{ 0x3e80, 0x14 },
> > +	{ 0x3e82, 0x30 },
> > +	{ 0x3e84, 0x0c },
> > +	{ 0x3e85, 0x06 },
> > +	{ 0x3e86, 0xfc },
> > +	{ 0x3e87, 0x10 },
> > +	{ 0x3e88, 0x03 },
> > +	{ 0x3e89, 0xfe },
> > +	{ 0x3e8a, 0x01 },
> > +	{ 0x3e8b, 0x06 },
> > +	{ 0x3e8e, 0x03 },
> > +	{ 0x3e8f, 0xfe },
> > +	{ 0x3e90, 0x01 },
> > +	{ 0x3e91, 0x06 },
> > +	{ 0x3e94, 0x33 },
> > +	{ 0x3e95, 0x01 },
> > +	{ 0x3e96, 0x19 },
> > +	{ 0x3e98, 0x30 },
> > +	{ 0x3e9a, 0x11 },
> > +	{ 0x3e9b, 0x06 },
> > +	{ 0x3e9c, 0xfc },
> > +	{ 0x3e9d, 0x10 },
> > +	{ 0x3e9e, 0xfe },
> > +	{ 0x3e9f, 0x03 },
> > +	{ 0x3ea0, 0x06 },
> > +	{ 0x3ea3, 0x01 },
> > +	{ 0x3ea4, 0xfe },
> > +	{ 0x3ea5, 0x03 },
> > +	{ 0x3ea6, 0x06 },
> > +	{ 0x3ea9, 0x33 },
> > +	{ 0x3eaa, 0x00 },
> > +	{ 0x3eab, 0x08 },
> > +	{ 0x3eac, 0x08 },
> > +	{ 0x3ead, 0x01 },
> > +	{ 0x3eae, 0x08 },
> > +	{ 0x3eaf, 0x08 },
> > +	{ 0x3eb0, 0x00 },
> > +	{ 0x3eb1, 0x10 },
> > +	{ 0x3eb2, 0x10 },
> > +	{ 0x3eb3, 0x01 },
> > +	{ 0x3eb4, 0x10 },
> > +	{ 0x3eb5, 0x10 },
> > +	{ 0x3eb6, 0x00 },
> > +	{ 0x3eb7, 0x00 },
> > +	{ 0x3eb8, 0x00 },
> > +	{ 0x3eb9, 0x00 },
> > +	{ 0x3eba, 0x00 },
> > +	{ 0x3ebb, 0x00 },
> > +	{ 0x3ec0, 0x54 },
> > +	{ 0x3ecc, 0x04 },
> > +	{ 0x3ecd, 0x04 },
> > +	{ 0x3ed0, 0xf0 },
> > +	{ 0x3ed1, 0x20 },
> > +	{ 0x3ed2, 0x0b },
> > +	{ 0x3ed3, 0x04 },
> > +	{ 0x3ed5, 0x13 },
> > +	{ 0x3ed6, 0x00 },
> > +	{ 0x3ed9, 0x0f },
> > +	{ 0x3ee4, 0x02 },
> > +	{ 0x3ee5, 0x02 },
> > +	{ 0x3ee7, 0x00 },
> > +	{ 0x3ef6, 0x00 },
> > +	{ 0x3ef8, 0x10 },
> > +	{ 0x3efa, 0x00 },
> > +	{ 0x3efc, 0x10 },
> > +	{ 0x3134, 0xa7 },
> > +	{ 0x3135, 0x00 },
> > +	{ 0x3136, 0x9f },
> > +	{ 0x3137, 0x00 },
> > +	{ 0x3138, 0x6f },
> > +	{ 0x3139, 0x00 },
> > +	{ 0x313a, 0x5f },
> > +	{ 0x313b, 0x00 },
> > +	{ 0x313c, 0x5f },
> > +	{ 0x313d, 0x00 },
> > +	{ 0x313e, 0x7f },
> > +	{ 0x313f, 0x01 },
> > +	{ 0x3140, 0x6f },
> > +	{ 0x3141, 0x00 },
> > +	{ 0x3142, 0x4f },
> > +	{ 0x3143, 0x00 },
> > +	{ 0x300e, 0x00 },
> > +	{ 0x300f, 0x00 },
> > +	{ 0x302c, 0x0c },
> > +	{ 0x302d, 0x00 },
> > +	{ 0x3034, 0x01 },
> > +	{ 0x3035, 0x01 },
> > +	{ 0x3036, 0x64 },
> > +	{ 0x3037, 0x00 },
> > +	{ 0x3038, 0xc8 },
> > +	{ 0x3039, 0x00 },
> > +	{ 0x3084, 0x4e },
> > +	{ 0x3085, 0x04 },
> > +	{ 0x3086, 0x4e },
> > +	{ 0x3087, 0x04 },
> > +	{ 0x30a9, 0xe0 },
> > +	{ 0x30aa, 0x2e },
> > +	{ 0x30ab, 0x00 },
> > +	{ 0x30ac, 0x48 },
> > +	{ 0x30ad, 0x0d },
> > +	{ 0x30e2, 0x00 },
> > +	{ 0x312f, 0x20 },
> > +	{ 0x3130, 0x1c },
> > +	{ 0x3131, 0x11 },
> > +	{ 0x3132, 0xfc },
> > +	{ 0x3133, 0x10 },
> > +	{ 0x3a54, 0xf0 },
> > +	{ 0x3a55, 0x20 },
> > +	{ 0x3a43, 0x01 },
> > +	{ 0x3a3b, 0x00 },
> > +	{ 0x3042, 0x32 },
> > +	{ 0x3092, 0x00 },
> > +	{ 0x30dd, 0x00 },
> > +	{ 0x30de, 0x00 },
> > +	{ 0x30df, 0x00 },
> > +	{ 0x30e0, 0x00 },
> > +	{ 0x30e1, 0x00 },
> > +	{ 0x332c, 0x00 },
> > +	{ 0x332d, 0x00 },
> > +	{ 0x334a, 0x00 },
> > +	{ 0x334b, 0x00 },
> > +	{ 0x35b6, 0x00 },
> > +	{ 0x35b7, 0x00 },
> > +	{ 0x35b8, 0x00 },
> > +	{ 0x35b9, 0x00 },
> > +	{ 0x36bc, 0x00 },
> > +	{ 0x36bd, 0x00 },
> > +};
> > +
> > +#endif /* __imx492_h__ */
> 
> -- 
> Regards,
> 
> Laurent Pinchart


		Petko
Petko Manolov Nov. 28, 2022, 1:14 p.m. UTC | #4
On 22-11-28 12:47:25, Kieran Bingham wrote:
> Quoting Petko Manolov (2022-11-25 15:31:17)
> > The header.  For the moment only two modes are supported.
> > 
> > Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
> > ---
> >  drivers/media/i2c/imx492.h | 555 +++++++++++++++++++++++++++++++++++++
> >  1 file changed, 555 insertions(+)
> >  create mode 100644 drivers/media/i2c/imx492.h
> > 
> > diff --git a/drivers/media/i2c/imx492.h b/drivers/media/i2c/imx492.h
> > new file mode 100644
> > index 000000000000..301fd66c77d5
> > --- /dev/null
> > +++ b/drivers/media/i2c/imx492.h
> > @@ -0,0 +1,555 @@
> > +#ifndef        __imx492_h__
> > +#define        __imx492_h__
> > +
> > +struct imx492_reg {
> > +       u16 address;
> > +       u8 val;
> > +};
> > +
> > +static const struct imx492_reg mode_17to9_regs[] = {
> 
> Why is this table in the header? Should it be available in multiple locations?

Nope, but there are multiple modes that will eventually be in use and scrolling
down a couple of seconds until one gets to the code started to get a bit boring.

> I think it is likely better in the driver itself.

Will put register definitions in the .c file for the time being.


		Petko
Laurent Pinchart Nov. 28, 2022, 1:30 p.m. UTC | #5
On Mon, Nov 28, 2022 at 03:14:26PM +0200, Petko Manolov wrote:
> On 22-11-28 12:47:25, Kieran Bingham wrote:
> > Quoting Petko Manolov (2022-11-25 15:31:17)
> > > The header.  For the moment only two modes are supported.
> > > 
> > > Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
> > > ---
> > >  drivers/media/i2c/imx492.h | 555 +++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 555 insertions(+)
> > >  create mode 100644 drivers/media/i2c/imx492.h
> > > 
> > > diff --git a/drivers/media/i2c/imx492.h b/drivers/media/i2c/imx492.h
> > > new file mode 100644
> > > index 000000000000..301fd66c77d5
> > > --- /dev/null
> > > +++ b/drivers/media/i2c/imx492.h
> > > @@ -0,0 +1,555 @@
> > > +#ifndef        __imx492_h__
> > > +#define        __imx492_h__
> > > +
> > > +struct imx492_reg {
> > > +       u16 address;
> > > +       u8 val;
> > > +};
> > > +
> > > +static const struct imx492_reg mode_17to9_regs[] = {
> > 
> > Why is this table in the header? Should it be available in multiple locations?
> 
> Nope, but there are multiple modes that will eventually be in use and scrolling
> down a couple of seconds until one gets to the code started to get a bit boring.

Ideally we should get rid of those tables and use logic to compute
register values :-) That's a dream only at this point though.

I agree with Kieran that everything could be in the same file, and I
also agree with you that it's not nice to have a large list of registers
at the beginning of the driver. I'm thus fine with either option.

> > I think it is likely better in the driver itself.
> 
> Will put register definitions in the .c file for the time being.
Petko Manolov Nov. 28, 2022, 1:53 p.m. UTC | #6
On 22-11-28 15:30:37, Laurent Pinchart wrote:
> On Mon, Nov 28, 2022 at 03:14:26PM +0200, Petko Manolov wrote:
> > On 22-11-28 12:47:25, Kieran Bingham wrote:
> > > Quoting Petko Manolov (2022-11-25 15:31:17)
> > > > The header.  For the moment only two modes are supported.
> > > > 
> > > > Signed-off-by: Petko Manolov <petko.manolov@konsulko.com>
> > > > ---
> > > >  drivers/media/i2c/imx492.h | 555 +++++++++++++++++++++++++++++++++++++
> > > >  1 file changed, 555 insertions(+)
> > > >  create mode 100644 drivers/media/i2c/imx492.h
> > > > 
> > > > diff --git a/drivers/media/i2c/imx492.h b/drivers/media/i2c/imx492.h
> > > > new file mode 100644
> > > > index 000000000000..301fd66c77d5
> > > > --- /dev/null
> > > > +++ b/drivers/media/i2c/imx492.h
> > > > @@ -0,0 +1,555 @@
> > > > +#ifndef        __imx492_h__
> > > > +#define        __imx492_h__
> > > > +
> > > > +struct imx492_reg {
> > > > +       u16 address;
> > > > +       u8 val;
> > > > +};
> > > > +
> > > > +static const struct imx492_reg mode_17to9_regs[] = {
> > > 
> > > Why is this table in the header? Should it be available in multiple locations?
> > 
> > Nope, but there are multiple modes that will eventually be in use and scrolling
> > down a couple of seconds until one gets to the code started to get a bit boring.
> 
> Ideally we should get rid of those tables and use logic to compute register
> values :-) That's a dream only at this point though.

I don't see this happening anytime soon with this particular sensor. :)

> I agree with Kieran that everything could be in the same file, and I also
> agree with you that it's not nice to have a large list of registers at the
> beginning of the driver. I'm thus fine with either option.

I use one register/value pair in a row while the driver is in development,
because it is easy to modify some of them and put a comment at the back.  Once
done with it multiple entries per line will reduce the pain.

At that point most registers that are common for all modes could be put in a
separate array and modify only those that are relevant for a particular
mode/format.  Not quite there yet...

> > > I think it is likely better in the driver itself.
> > 
> > Will put register definitions in the .c file for the time being.
> 
> -- 
> Regards,
> 
> Laurent Pinchart


		Petko
diff mbox series

Patch

diff --git a/drivers/media/i2c/imx492.h b/drivers/media/i2c/imx492.h
new file mode 100644
index 000000000000..301fd66c77d5
--- /dev/null
+++ b/drivers/media/i2c/imx492.h
@@ -0,0 +1,555 @@ 
+#ifndef	__imx492_h__
+#define	__imx492_h__
+
+struct imx492_reg {
+	u16 address;
+	u8 val;
+};
+
+static const struct imx492_reg mode_17to9_regs[] = {
+	{ 0x3033, 0x30 },
+	{ 0x303c, 0x01 },
+	{ 0x31e8, 0xa0 },
+	{ 0x31f4, 0x01 },
+	{ 0x31e9, 0x00 },
+	{ 0x3122, 0x02 },
+	{ 0x3129, 0x90 },
+	{ 0x312a, 0x02 },
+	{ 0x311f, 0x00 },
+	{ 0x3123, 0x00 },
+	{ 0x3124, 0x00 },
+	{ 0x3125, 0x01 },
+	{ 0x3127, 0x02 },
+	{ 0x312d, 0x02 },
+	{ 0x3000, 0x12 },
+	{ 0x310b, 0x00 },
+	{ 0x3004, 0x1c },
+	{ 0x3005, 0x06 },
+	{ 0x3006, 0x00 },
+	{ 0x3007, 0xa7 },
+	{ 0x3047, 0x02 },
+	{ 0x304e, 0x0b },
+	{ 0x304f, 0x2a },
+	{ 0x3052, 0xee },
+	{ 0x3062, 0x25 },
+	{ 0x3064, 0x78 },
+	{ 0x3065, 0x33 },
+	{ 0x3066, 0x64 },
+	{ 0x3067, 0x71 },
+	{ 0x307e, 0x07 },
+	{ 0x3081, 0x00 },
+	{ 0x3088, 0x75 },
+	{ 0x308a, 0x09 },
+	{ 0x308c, 0x61 },
+	{ 0x30ef, 0x01 },
+	{ 0x3146, 0x00 },
+	{ 0x31f5, 0x01 },
+	{ 0x3234, 0x32 },
+	{ 0x3248, 0xbc },
+	{ 0x3250, 0xbc },
+	{ 0x3258, 0xbc },
+	{ 0x3260, 0xbc },
+	{ 0x3274, 0x13 },
+	{ 0x3276, 0x00 },
+	{ 0x3277, 0x00 },
+	{ 0x327c, 0x13 },
+	{ 0x327e, 0x00 },
+	{ 0x327f, 0x00 },
+	{ 0x3284, 0x13 },
+	{ 0x3286, 0x00 },
+	{ 0x3287, 0x00 },
+	{ 0x328c, 0x13 },
+	{ 0x328e, 0x00 },
+	{ 0x328f, 0x00 },
+	{ 0x32ae, 0x00 },
+	{ 0x32af, 0x00 },
+	{ 0x32ca, 0x5a },
+	{ 0x332c, 0x00 },
+	{ 0x332f, 0x00 },
+	{ 0x334a, 0x00 },
+	{ 0x334c, 0x01 },
+	{ 0x3352, 0x50 },
+	{ 0x3356, 0x4f },
+	{ 0x335a, 0x79 },
+	{ 0x335e, 0x56 },
+	{ 0x3360, 0x6a },
+	{ 0x336a, 0x56 },
+	{ 0x33d6, 0x79 },
+	{ 0x340c, 0x6e },
+	{ 0x3448, 0x7e },
+	{ 0x348e, 0x6f },
+	{ 0x3492, 0x11 },
+	{ 0x34c4, 0x5a },
+	{ 0x3506, 0x56 },
+	{ 0x350c, 0x56 },
+	{ 0x350e, 0x58 },
+	{ 0x353d, 0x10 },
+	{ 0x3549, 0x04 },
+	{ 0x355d, 0x03 },
+	{ 0x355e, 0x03 },
+	{ 0x3574, 0x56 },
+	{ 0x357f, 0x0c },
+	{ 0x3580, 0x0a },
+	{ 0x3581, 0x08 },
+	{ 0x3583, 0x72 },
+	{ 0x3587, 0x01 },
+	{ 0x35b6, 0x00 },
+	{ 0x35b8, 0x00 },
+	{ 0x35d0, 0x5e },
+	{ 0x35d4, 0x63 },
+	{ 0x366a, 0x04 },
+	{ 0x366b, 0x04 },
+	{ 0x366c, 0x00 },
+	{ 0x366d, 0x00 },
+	{ 0x366e, 0x00 },
+	{ 0x366f, 0x00 },
+	{ 0x3670, 0x00 },
+	{ 0x3671, 0x05 },
+	{ 0x3676, 0x83 },
+	{ 0x3677, 0x03 },
+	{ 0x3678, 0x00 },
+	{ 0x3679, 0x04 },
+	{ 0x367a, 0x2c },
+	{ 0x367b, 0x05 },
+	{ 0x367d, 0x06 },
+	{ 0x367e, 0xff },
+	{ 0x367f, 0x06 },
+	{ 0x3680, 0x4b },
+	{ 0x3688, 0x05 },
+	{ 0x3690, 0x27 },
+	{ 0x3692, 0x65 },
+	{ 0x3694, 0x4f },
+	{ 0x3696, 0xa1 },
+	{ 0x36bc, 0x00 },
+	{ 0x371c, 0x02 },
+	{ 0x372f, 0x3c },
+	{ 0x3730, 0x01 },
+	{ 0x3732, 0xb8 },
+	{ 0x3734, 0x4a },
+	{ 0x3736, 0x57 },
+	{ 0x3738, 0x4d },
+	{ 0x3744, 0x0f },
+	{ 0x375b, 0x01 },
+	{ 0x382b, 0x68 },
+	{ 0x38b3, 0x00 },
+	{ 0x3910, 0x90 },
+	{ 0x3911, 0x70 },
+	{ 0x3912, 0x92 },
+	{ 0x3913, 0x24 },
+	{ 0x3914, 0x93 },
+	{ 0x3915, 0x0b },
+	{ 0x3916, 0x01 },
+	{ 0x3918, 0x04 },
+	{ 0x391c, 0x90 },
+	{ 0x391d, 0x05 },
+	{ 0x3920, 0x96 },
+	{ 0x3921, 0x06 },
+	{ 0x3a2a, 0x01 },
+	{ 0x3a7a, 0x01 },
+	{ 0x3a7b, 0x01 },
+	{ 0x3acb, 0x06 },
+	{ 0x3c08, 0x3f },
+	{ 0x3c0c, 0x1b },
+	{ 0x3e80, 0x14 },
+	{ 0x3e82, 0x30 },
+	{ 0x3e84, 0x0c },
+	{ 0x3e85, 0x06 },
+	{ 0x3e86, 0xfc },
+	{ 0x3e87, 0x10 },
+	{ 0x3e88, 0x03 },
+	{ 0x3e89, 0xfe },
+	{ 0x3e8a, 0x01 },
+	{ 0x3e8b, 0x06 },
+	{ 0x3e8e, 0x03 },
+	{ 0x3e8f, 0xfe },
+	{ 0x3e90, 0x01 },
+	{ 0x3e91, 0x06 },
+	{ 0x3e94, 0x33 },
+	{ 0x3e95, 0x01 },
+	{ 0x3e96, 0x19 },
+	{ 0x3e98, 0x30 },
+	{ 0x3e9a, 0x11 },
+	{ 0x3e9b, 0x06 },
+	{ 0x3e9c, 0xfc },
+	{ 0x3e9d, 0x10 },
+	{ 0x3e9e, 0xfe },
+	{ 0x3e9f, 0x03 },
+	{ 0x3ea0, 0x06 },
+	{ 0x3ea3, 0x01 },
+	{ 0x3ea4, 0xfe },
+	{ 0x3ea5, 0x03 },
+	{ 0x3ea6, 0x06 },
+	{ 0x3ea9, 0x33 },
+	{ 0x3eaa, 0x00 },
+	{ 0x3eab, 0x08 },
+	{ 0x3eac, 0x08 },
+	{ 0x3ead, 0x01 },
+	{ 0x3eae, 0x08 },
+	{ 0x3eaf, 0x08 },
+	{ 0x3eb0, 0x00 },
+	{ 0x3eb1, 0x10 },
+	{ 0x3eb2, 0x10 },
+	{ 0x3eb3, 0x01 },
+	{ 0x3eb4, 0x10 },
+	{ 0x3eb5, 0x10 },
+	{ 0x3eb6, 0x00 },
+	{ 0x3eb7, 0x00 },
+	{ 0x3eb8, 0x00 },
+	{ 0x3eb9, 0x00 },
+	{ 0x3eba, 0x00 },
+	{ 0x3ebb, 0x00 },
+	{ 0x3ec0, 0x54 },
+	{ 0x3ecc, 0x04 },
+	{ 0x3ecd, 0x04 },
+	{ 0x3ed0, 0xf0 },
+	{ 0x3ed1, 0x20 },
+	{ 0x3ed2, 0x0b },
+	{ 0x3ed3, 0x04 },
+	{ 0x3ed5, 0x13 },
+	{ 0x3ed6, 0x00 },
+	{ 0x3ed9, 0x0f },
+	{ 0x3ee4, 0x02 },
+	{ 0x3ee5, 0x02 },
+	{ 0x3ee7, 0x00 },
+	{ 0x3ef6, 0x00 },
+	{ 0x3ef8, 0x10 },
+	{ 0x3efa, 0x00 },
+	{ 0x3efc, 0x10 },
+	{ 0x3134, 0xa7 },
+	{ 0x3135, 0x00 },
+	{ 0x3136, 0x9f },
+	{ 0x3137, 0x00 },
+	{ 0x3138, 0x6f },
+	{ 0x3139, 0x00 },
+	{ 0x313a, 0x5f },
+	{ 0x313b, 0x00 },
+	{ 0x313c, 0x5f },
+	{ 0x313d, 0x00 },
+	{ 0x313e, 0x7f },
+	{ 0x313f, 0x01 },
+	{ 0x3140, 0x6f },
+	{ 0x3141, 0x00 },
+	{ 0x3142, 0x4f },
+	{ 0x3143, 0x00 },
+	{ 0x300e, 0x00 },
+	{ 0x300f, 0x00 },
+	{ 0x302c, 0x0c },
+	{ 0x302d, 0x00 },
+	{ 0x3034, 0x01 },
+	{ 0x3035, 0x01 },
+	{ 0x3036, 0x64 },
+	{ 0x3037, 0x00 },
+	{ 0x3038, 0xc8 },
+	{ 0x3039, 0x00 },
+	{ 0x3084, 0x4e },
+	{ 0x3085, 0x04 },
+	{ 0x3086, 0x4e },
+	{ 0x3087, 0x04 },
+	{ 0x30a9, 0xe0 },
+	{ 0x30aa, 0x2e },
+	{ 0x30ab, 0x00 },
+	{ 0x30ac, 0x48 },
+	{ 0x30ad, 0x0d },
+	{ 0x30e2, 0x00 },
+	{ 0x312f, 0x20 },
+	{ 0x3130, 0x1c },
+	{ 0x3131, 0x11 },
+	{ 0x3132, 0xfc },
+	{ 0x3133, 0x10 },
+	{ 0x3a54, 0xf0 },
+	{ 0x3a55, 0x20 },
+	{ 0x3a43, 0x01 },
+	{ 0x3a3b, 0x00 },
+	{ 0x3042, 0x32 },
+	{ 0x3092, 0x00 },
+	{ 0x30dd, 0x00 },
+	{ 0x30de, 0x00 },
+	{ 0x30df, 0x00 },
+	{ 0x30e0, 0x00 },
+	{ 0x30e1, 0x00 },
+	{ 0x332c, 0x00 },
+	{ 0x332d, 0x00 },
+	{ 0x334a, 0x00 },
+	{ 0x334b, 0x00 },
+	{ 0x35b6, 0x00 },
+	{ 0x35b7, 0x00 },
+	{ 0x35b8, 0x00 },
+	{ 0x35b9, 0x00 },
+	{ 0x36bc, 0x00 },
+	{ 0x36bd, 0x00 },
+};
+
+static const struct imx492_reg mode_all_regs[] = {
+	{ 0x3033, 0x30 },
+	{ 0x303c, 0x01 },
+	{ 0x31e8, 0xa0 },
+	{ 0x31f4, 0x01 },
+	{ 0x31e9, 0x00 },
+	{ 0x3122, 0x02 },
+	{ 0x3129, 0x90 },
+	{ 0x312a, 0x02 },
+	{ 0x311f, 0x00 },
+	{ 0x3123, 0x00 },
+	{ 0x3124, 0x00 },
+	{ 0x3125, 0x01 },
+	{ 0x3127, 0x02 },
+	{ 0x312d, 0x02 },
+	{ 0x3000, 0x12 },
+	{ 0x310b, 0x00 },
+	{ 0x3004, 0x1c },
+	{ 0x3005, 0x06 },
+	{ 0x3006, 0x00 },
+	{ 0x3007, 0xa7 },
+	{ 0x3047, 0x02 },
+	{ 0x304e, 0x0b },
+	{ 0x304f, 0x2a },
+	{ 0x3052, 0xee },
+	{ 0x3062, 0x25 },
+	{ 0x3064, 0x78 },
+	{ 0x3065, 0x33 },
+	{ 0x3066, 0x64 },
+	{ 0x3067, 0x71 },
+	{ 0x307e, 0x07 },
+	{ 0x3081, 0x00 },
+	{ 0x3088, 0x75 },
+	{ 0x308a, 0x09 },
+	{ 0x308c, 0x61 },
+	{ 0x30ef, 0x01 },
+	{ 0x3146, 0x00 },
+	{ 0x31f5, 0x01 },
+	{ 0x3234, 0x32 },
+	{ 0x3248, 0xbc },
+	{ 0x3250, 0xbc },
+	{ 0x3258, 0xbc },
+	{ 0x3260, 0xbc },
+	{ 0x3274, 0x13 },
+	{ 0x3276, 0x00 },
+	{ 0x3277, 0x00 },
+	{ 0x327c, 0x13 },
+	{ 0x327e, 0x00 },
+	{ 0x327f, 0x00 },
+	{ 0x3284, 0x13 },
+	{ 0x3286, 0x00 },
+	{ 0x3287, 0x00 },
+	{ 0x328c, 0x13 },
+	{ 0x328e, 0x00 },
+	{ 0x328f, 0x00 },
+	{ 0x32ae, 0x00 },
+	{ 0x32af, 0x00 },
+	{ 0x32ca, 0x5a },
+	{ 0x332c, 0x00 },
+	{ 0x332f, 0x00 },
+	{ 0x334a, 0x00 },
+	{ 0x334c, 0x01 },
+	{ 0x3352, 0x50 },
+	{ 0x3356, 0x4f },
+	{ 0x335a, 0x79 },
+	{ 0x335e, 0x56 },
+	{ 0x3360, 0x6a },
+	{ 0x336a, 0x56 },
+	{ 0x33d6, 0x79 },
+	{ 0x340c, 0x6e },
+	{ 0x3448, 0x7e },
+	{ 0x348e, 0x6f },
+	{ 0x3492, 0x11 },
+	{ 0x34c4, 0x5a },
+	{ 0x3506, 0x56 },
+	{ 0x350c, 0x56 },
+	{ 0x350e, 0x58 },
+	{ 0x353d, 0x10 },
+	{ 0x3549, 0x04 },
+	{ 0x355d, 0x03 },
+	{ 0x355e, 0x03 },
+	{ 0x3574, 0x56 },
+	{ 0x357f, 0x0c },
+	{ 0x3580, 0x0a },
+	{ 0x3581, 0x08 },
+	{ 0x3583, 0x72 },
+	{ 0x3587, 0x01 },
+	{ 0x35b6, 0x00 },
+	{ 0x35b8, 0x00 },
+	{ 0x35d0, 0x5e },
+	{ 0x35d4, 0x63 },
+	{ 0x366a, 0x04 },
+	{ 0x366b, 0x04 },
+	{ 0x366c, 0x00 },
+	{ 0x366d, 0x00 },
+	{ 0x366e, 0x00 },
+	{ 0x366f, 0x00 },
+	{ 0x3670, 0x00 },
+	{ 0x3671, 0x05 },
+	{ 0x3676, 0x83 },
+	{ 0x3677, 0x03 },
+	{ 0x3678, 0x00 },
+	{ 0x3679, 0x04 },
+	{ 0x367a, 0x2c },
+	{ 0x367b, 0x05 },
+	{ 0x367d, 0x06 },
+	{ 0x367e, 0xff },
+	{ 0x367f, 0x06 },
+	{ 0x3680, 0x4b },
+	{ 0x3688, 0x05 },
+	{ 0x3690, 0x27 },
+	{ 0x3692, 0x65 },
+	{ 0x3694, 0x4f },
+	{ 0x3696, 0xa1 },
+	{ 0x36bc, 0x00 },
+	{ 0x371c, 0x02 },
+	{ 0x372f, 0x3c },
+	{ 0x3730, 0x01 },
+	{ 0x3732, 0xb8 },
+	{ 0x3734, 0x4a },
+	{ 0x3736, 0x57 },
+	{ 0x3738, 0x4d },
+	{ 0x3744, 0x0f },
+	{ 0x375b, 0x01 },
+	{ 0x382b, 0x68 },
+	{ 0x38b3, 0x00 },
+	{ 0x3910, 0x90 },
+	{ 0x3911, 0x70 },
+	{ 0x3912, 0x92 },
+	{ 0x3913, 0x24 },
+	{ 0x3914, 0x93 },
+	{ 0x3915, 0x0b },
+	{ 0x3916, 0x01 },
+	{ 0x3918, 0x04 },
+	{ 0x391c, 0x90 },
+	{ 0x391d, 0x05 },
+	{ 0x3920, 0x96 },
+	{ 0x3921, 0x06 },
+	{ 0x3a2a, 0x01 },
+	{ 0x3a7a, 0x01 },
+	{ 0x3a7b, 0x01 },
+	{ 0x3acb, 0x06 },
+	{ 0x3c08, 0x3f },
+	{ 0x3c0c, 0x1b },
+	{ 0x3e80, 0x14 },
+	{ 0x3e82, 0x30 },
+	{ 0x3e84, 0x0c },
+	{ 0x3e85, 0x06 },
+	{ 0x3e86, 0xfc },
+	{ 0x3e87, 0x10 },
+	{ 0x3e88, 0x03 },
+	{ 0x3e89, 0xfe },
+	{ 0x3e8a, 0x01 },
+	{ 0x3e8b, 0x06 },
+	{ 0x3e8e, 0x03 },
+	{ 0x3e8f, 0xfe },
+	{ 0x3e90, 0x01 },
+	{ 0x3e91, 0x06 },
+	{ 0x3e94, 0x33 },
+	{ 0x3e95, 0x01 },
+	{ 0x3e96, 0x19 },
+	{ 0x3e98, 0x30 },
+	{ 0x3e9a, 0x11 },
+	{ 0x3e9b, 0x06 },
+	{ 0x3e9c, 0xfc },
+	{ 0x3e9d, 0x10 },
+	{ 0x3e9e, 0xfe },
+	{ 0x3e9f, 0x03 },
+	{ 0x3ea0, 0x06 },
+	{ 0x3ea3, 0x01 },
+	{ 0x3ea4, 0xfe },
+	{ 0x3ea5, 0x03 },
+	{ 0x3ea6, 0x06 },
+	{ 0x3ea9, 0x33 },
+	{ 0x3eaa, 0x00 },
+	{ 0x3eab, 0x08 },
+	{ 0x3eac, 0x08 },
+	{ 0x3ead, 0x01 },
+	{ 0x3eae, 0x08 },
+	{ 0x3eaf, 0x08 },
+	{ 0x3eb0, 0x00 },
+	{ 0x3eb1, 0x10 },
+	{ 0x3eb2, 0x10 },
+	{ 0x3eb3, 0x01 },
+	{ 0x3eb4, 0x10 },
+	{ 0x3eb5, 0x10 },
+	{ 0x3eb6, 0x00 },
+	{ 0x3eb7, 0x00 },
+	{ 0x3eb8, 0x00 },
+	{ 0x3eb9, 0x00 },
+	{ 0x3eba, 0x00 },
+	{ 0x3ebb, 0x00 },
+	{ 0x3ec0, 0x54 },
+	{ 0x3ecc, 0x04 },
+	{ 0x3ecd, 0x04 },
+	{ 0x3ed0, 0xf0 },
+	{ 0x3ed1, 0x20 },
+	{ 0x3ed2, 0x0b },
+	{ 0x3ed3, 0x04 },
+	{ 0x3ed5, 0x13 },
+	{ 0x3ed6, 0x00 },
+	{ 0x3ed9, 0x0f },
+	{ 0x3ee4, 0x02 },
+	{ 0x3ee5, 0x02 },
+	{ 0x3ee7, 0x00 },
+	{ 0x3ef6, 0x00 },
+	{ 0x3ef8, 0x10 },
+	{ 0x3efa, 0x00 },
+	{ 0x3efc, 0x10 },
+	{ 0x3134, 0xa7 },
+	{ 0x3135, 0x00 },
+	{ 0x3136, 0x9f },
+	{ 0x3137, 0x00 },
+	{ 0x3138, 0x6f },
+	{ 0x3139, 0x00 },
+	{ 0x313a, 0x5f },
+	{ 0x313b, 0x00 },
+	{ 0x313c, 0x5f },
+	{ 0x313d, 0x00 },
+	{ 0x313e, 0x7f },
+	{ 0x313f, 0x01 },
+	{ 0x3140, 0x6f },
+	{ 0x3141, 0x00 },
+	{ 0x3142, 0x4f },
+	{ 0x3143, 0x00 },
+	{ 0x300e, 0x00 },
+	{ 0x300f, 0x00 },
+	{ 0x302c, 0x0c },
+	{ 0x302d, 0x00 },
+	{ 0x3034, 0x01 },
+	{ 0x3035, 0x01 },
+	{ 0x3036, 0x64 },
+	{ 0x3037, 0x00 },
+	{ 0x3038, 0xc8 },
+	{ 0x3039, 0x00 },
+	{ 0x3084, 0x4e },
+	{ 0x3085, 0x04 },
+	{ 0x3086, 0x4e },
+	{ 0x3087, 0x04 },
+	{ 0x30a9, 0xe0 },
+	{ 0x30aa, 0x2e },
+	{ 0x30ab, 0x00 },
+	{ 0x30ac, 0x48 },
+	{ 0x30ad, 0x0d },
+	{ 0x30e2, 0x00 },
+	{ 0x312f, 0x20 },
+	{ 0x3130, 0x1c },
+	{ 0x3131, 0x11 },
+	{ 0x3132, 0xfc },
+	{ 0x3133, 0x10 },
+	{ 0x3a54, 0xf0 },
+	{ 0x3a55, 0x20 },
+	{ 0x3a43, 0x01 },
+	{ 0x3a3b, 0x00 },
+	{ 0x3042, 0x32 },
+	{ 0x3092, 0x00 },
+	{ 0x30dd, 0x00 },
+	{ 0x30de, 0x00 },
+	{ 0x30df, 0x00 },
+	{ 0x30e0, 0x00 },
+	{ 0x30e1, 0x00 },
+	{ 0x332c, 0x00 },
+	{ 0x332d, 0x00 },
+	{ 0x334a, 0x00 },
+	{ 0x334b, 0x00 },
+	{ 0x35b6, 0x00 },
+	{ 0x35b7, 0x00 },
+	{ 0x35b8, 0x00 },
+	{ 0x35b9, 0x00 },
+	{ 0x36bc, 0x00 },
+	{ 0x36bd, 0x00 },
+};
+
+#endif /* __imx492_h__ */