[v1,2/5] media: i2c: imx492: driver's header
Commit Message
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
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__ */
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
>
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
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
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.
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
new file mode 100644
@@ -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__ */