use super::RegOp;
pub const SCCB_ADDR: u8 = 0x3C;
pub const DEFAULT_REGS: &[RegOp] = &[
RegOp::Write {
addr: 0x3008,
value: 0x82,
},
RegOp::DelayMs(10),
RegOp::Write {
addr: 0x3008,
value: 0x42,
},
RegOp::Write {
addr: 0x3103,
value: 0x13,
},
RegOp::Write {
addr: 0x3017,
value: 0xFF,
},
RegOp::Write {
addr: 0x3018,
value: 0xFF,
},
RegOp::Write {
addr: 0x302C,
value: 0xC3,
},
RegOp::Write {
addr: 0x4740,
value: 0x21,
},
RegOp::Write {
addr: 0x4713,
value: 0x02,
},
RegOp::Write {
addr: 0x5001,
value: 0x83,
},
RegOp::Write {
addr: 0x3000,
value: 0x20,
},
RegOp::DelayMs(10),
RegOp::Write {
addr: 0x3002,
value: 0x1C,
},
RegOp::Write {
addr: 0x3004,
value: 0xFF,
},
RegOp::Write {
addr: 0x3006,
value: 0xC3,
},
RegOp::Write {
addr: 0x5000,
value: 0xA7,
},
RegOp::Write {
addr: 0x5001,
value: 0xA3,
},
RegOp::Write {
addr: 0x5003,
value: 0x08,
},
RegOp::Write {
addr: 0x370C,
value: 0x02,
},
RegOp::Write {
addr: 0x3634,
value: 0x40,
},
RegOp::Write {
addr: 0x3A02,
value: 0x03,
},
RegOp::Write {
addr: 0x3A03,
value: 0xD8,
},
RegOp::Write {
addr: 0x3A08,
value: 0x01,
},
RegOp::Write {
addr: 0x3A09,
value: 0x27,
},
RegOp::Write {
addr: 0x3A0A,
value: 0x00,
},
RegOp::Write {
addr: 0x3A0B,
value: 0xF6,
},
RegOp::Write {
addr: 0x3A0D,
value: 0x04,
},
RegOp::Write {
addr: 0x3A0E,
value: 0x03,
},
RegOp::Write {
addr: 0x3A0F,
value: 0x30,
},
RegOp::Write {
addr: 0x3A10,
value: 0x28,
},
RegOp::Write {
addr: 0x3A11,
value: 0x60,
},
RegOp::Write {
addr: 0x3A13,
value: 0x43,
},
RegOp::Write {
addr: 0x3A14,
value: 0x03,
},
RegOp::Write {
addr: 0x3A15,
value: 0xD8,
},
RegOp::Write {
addr: 0x3A18,
value: 0x00,
},
RegOp::Write {
addr: 0x3A19,
value: 0xF8,
},
RegOp::Write {
addr: 0x3A1B,
value: 0x30,
},
RegOp::Write {
addr: 0x3A1E,
value: 0x26,
},
RegOp::Write {
addr: 0x3A1F,
value: 0x14,
},
RegOp::Write {
addr: 0x3600,
value: 0x08,
},
RegOp::Write {
addr: 0x3601,
value: 0x33,
},
RegOp::Write {
addr: 0x3C01,
value: 0xA4,
},
RegOp::Write {
addr: 0x3C04,
value: 0x28,
},
RegOp::Write {
addr: 0x3C05,
value: 0x98,
},
RegOp::Write {
addr: 0x3C06,
value: 0x00,
},
RegOp::Write {
addr: 0x3C07,
value: 0x08,
},
RegOp::Write {
addr: 0x3C08,
value: 0x00,
},
RegOp::Write {
addr: 0x3C09,
value: 0x1C,
},
RegOp::Write {
addr: 0x3C0A,
value: 0x9C,
},
RegOp::Write {
addr: 0x3C0B,
value: 0x40,
},
RegOp::Write {
addr: 0x460C,
value: 0x22,
},
RegOp::Write {
addr: 0x4001,
value: 0x02,
},
RegOp::Write {
addr: 0x4004,
value: 0x02,
},
RegOp::Write {
addr: 0x5180,
value: 0xFF,
},
RegOp::Write {
addr: 0x5181,
value: 0xF2,
},
RegOp::Write {
addr: 0x5182,
value: 0x00,
},
RegOp::Write {
addr: 0x5183,
value: 0x14,
},
RegOp::Write {
addr: 0x5184,
value: 0x25,
},
RegOp::Write {
addr: 0x5185,
value: 0x24,
},
RegOp::Write {
addr: 0x5186,
value: 0x09,
},
RegOp::Write {
addr: 0x5187,
value: 0x09,
},
RegOp::Write {
addr: 0x5188,
value: 0x09,
},
RegOp::Write {
addr: 0x5189,
value: 0x75,
},
RegOp::Write {
addr: 0x518A,
value: 0x54,
},
RegOp::Write {
addr: 0x518B,
value: 0xE0,
},
RegOp::Write {
addr: 0x518C,
value: 0xB2,
},
RegOp::Write {
addr: 0x518D,
value: 0x42,
},
RegOp::Write {
addr: 0x518E,
value: 0x3D,
},
RegOp::Write {
addr: 0x518F,
value: 0x56,
},
RegOp::Write {
addr: 0x5190,
value: 0x46,
},
RegOp::Write {
addr: 0x5191,
value: 0xF8,
},
RegOp::Write {
addr: 0x5192,
value: 0x04,
},
RegOp::Write {
addr: 0x5193,
value: 0x70,
},
RegOp::Write {
addr: 0x5194,
value: 0xF0,
},
RegOp::Write {
addr: 0x5195,
value: 0xF0,
},
RegOp::Write {
addr: 0x5196,
value: 0x03,
},
RegOp::Write {
addr: 0x5197,
value: 0x01,
},
RegOp::Write {
addr: 0x5198,
value: 0x04,
},
RegOp::Write {
addr: 0x5199,
value: 0x12,
},
RegOp::Write {
addr: 0x519A,
value: 0x04,
},
RegOp::Write {
addr: 0x519B,
value: 0x00,
},
RegOp::Write {
addr: 0x519C,
value: 0x06,
},
RegOp::Write {
addr: 0x519D,
value: 0x82,
},
RegOp::Write {
addr: 0x519E,
value: 0x38,
},
RegOp::Write {
addr: 0x5381,
value: 0x1E,
},
RegOp::Write {
addr: 0x5382,
value: 0x5B,
},
RegOp::Write {
addr: 0x5383,
value: 0x08,
},
RegOp::Write {
addr: 0x5384,
value: 0x0A,
},
RegOp::Write {
addr: 0x5385,
value: 0x7E,
},
RegOp::Write {
addr: 0x5386,
value: 0x88,
},
RegOp::Write {
addr: 0x5387,
value: 0x7C,
},
RegOp::Write {
addr: 0x5388,
value: 0x6C,
},
RegOp::Write {
addr: 0x5389,
value: 0x10,
},
RegOp::Write {
addr: 0x538A,
value: 0x01,
},
RegOp::Write {
addr: 0x538B,
value: 0x98,
},
RegOp::Write {
addr: 0x5300,
value: 0x10,
},
RegOp::Write {
addr: 0x5301,
value: 0x10,
},
RegOp::Write {
addr: 0x5302,
value: 0x18,
},
RegOp::Write {
addr: 0x5303,
value: 0x19,
},
RegOp::Write {
addr: 0x5304,
value: 0x10,
},
RegOp::Write {
addr: 0x5305,
value: 0x10,
},
RegOp::Write {
addr: 0x5306,
value: 0x08,
},
RegOp::Write {
addr: 0x5307,
value: 0x16,
},
RegOp::Write {
addr: 0x5308,
value: 0x40,
},
RegOp::Write {
addr: 0x5309,
value: 0x10,
},
RegOp::Write {
addr: 0x530A,
value: 0x10,
},
RegOp::Write {
addr: 0x530B,
value: 0x04,
},
RegOp::Write {
addr: 0x530C,
value: 0x06,
},
RegOp::Write {
addr: 0x5480,
value: 0x01,
},
RegOp::Write {
addr: 0x5481,
value: 0x00,
},
RegOp::Write {
addr: 0x5482,
value: 0x1E,
},
RegOp::Write {
addr: 0x5483,
value: 0x3B,
},
RegOp::Write {
addr: 0x5484,
value: 0x58,
},
RegOp::Write {
addr: 0x5485,
value: 0x66,
},
RegOp::Write {
addr: 0x5486,
value: 0x71,
},
RegOp::Write {
addr: 0x5487,
value: 0x7D,
},
RegOp::Write {
addr: 0x5488,
value: 0x83,
},
RegOp::Write {
addr: 0x5489,
value: 0x8F,
},
RegOp::Write {
addr: 0x548A,
value: 0x98,
},
RegOp::Write {
addr: 0x548B,
value: 0xA6,
},
RegOp::Write {
addr: 0x548C,
value: 0xB8,
},
RegOp::Write {
addr: 0x548D,
value: 0xCA,
},
RegOp::Write {
addr: 0x548E,
value: 0xD7,
},
RegOp::Write {
addr: 0x548F,
value: 0xE3,
},
RegOp::Write {
addr: 0x5490,
value: 0x1D,
},
RegOp::Write {
addr: 0x5580,
value: 0x06,
},
RegOp::Write {
addr: 0x5583,
value: 0x40,
},
RegOp::Write {
addr: 0x5584,
value: 0x10,
},
RegOp::Write {
addr: 0x5586,
value: 0x20,
},
RegOp::Write {
addr: 0x5587,
value: 0x00,
},
RegOp::Write {
addr: 0x5588,
value: 0x00,
},
RegOp::Write {
addr: 0x5589,
value: 0x10,
},
RegOp::Write {
addr: 0x558A,
value: 0x00,
},
RegOp::Write {
addr: 0x558B,
value: 0xF8,
},
RegOp::Write {
addr: 0x501D,
value: 0x40,
},
RegOp::Write {
addr: 0x3008,
value: 0x02,
},
RegOp::Write {
addr: 0x3C00,
value: 0x04,
},
RegOp::DelayMs(300),
];
pub const FMT_JPEG: &[RegOp] = &[
RegOp::Write {
addr: 0x501F,
value: 0x00,
},
RegOp::Write {
addr: 0x4300,
value: 0x30,
},
RegOp::Write {
addr: 0x3002,
value: 0x00,
},
RegOp::Write {
addr: 0x3006,
value: 0xFF,
},
RegOp::Write {
addr: 0x471C,
value: 0x50,
},
];
pub const FMT_RAW: &[RegOp] = &[
RegOp::Write {
addr: 0x501F,
value: 0x03,
},
RegOp::Write {
addr: 0x4300,
value: 0x00,
},
];
pub const FMT_GRAYSCALE: &[RegOp] = &[
RegOp::Write {
addr: 0x501F,
value: 0x00,
},
RegOp::Write {
addr: 0x4300,
value: 0x10,
},
];
pub const FMT_YUV422: &[RegOp] = &[
RegOp::Write {
addr: 0x501F,
value: 0x00,
},
RegOp::Write {
addr: 0x4300,
value: 0x30,
},
];
pub const FMT_RGB565: &[RegOp] = &[
RegOp::Write {
addr: 0x501F,
value: 0x01,
},
RegOp::Write {
addr: 0x4300,
value: 0x61,
},
];
pub const REGS_GAMMA0: &[RegOp] = &[
RegOp::Write {
addr: 0x5480,
value: 0x01,
},
RegOp::Write {
addr: 0x5481,
value: 0x08,
},
RegOp::Write {
addr: 0x5482,
value: 0x14,
},
RegOp::Write {
addr: 0x5483,
value: 0x28,
},
RegOp::Write {
addr: 0x5484,
value: 0x51,
},
RegOp::Write {
addr: 0x5485,
value: 0x65,
},
RegOp::Write {
addr: 0x5486,
value: 0x71,
},
RegOp::Write {
addr: 0x5487,
value: 0x7D,
},
RegOp::Write {
addr: 0x5488,
value: 0x87,
},
RegOp::Write {
addr: 0x5489,
value: 0x91,
},
RegOp::Write {
addr: 0x548A,
value: 0x9A,
},
RegOp::Write {
addr: 0x548B,
value: 0xAA,
},
RegOp::Write {
addr: 0x548C,
value: 0xB8,
},
RegOp::Write {
addr: 0x548D,
value: 0xCD,
},
RegOp::Write {
addr: 0x548E,
value: 0xDD,
},
RegOp::Write {
addr: 0x548F,
value: 0xEA,
},
RegOp::Write {
addr: 0x5490,
value: 0x1D,
},
];
pub const REGS_GAMMA1: &[RegOp] = &[
RegOp::Write {
addr: 0x5480,
value: 0x01,
},
RegOp::Write {
addr: 0x5481,
value: 0x00,
},
RegOp::Write {
addr: 0x5482,
value: 0x1E,
},
RegOp::Write {
addr: 0x5483,
value: 0x3B,
},
RegOp::Write {
addr: 0x5484,
value: 0x58,
},
RegOp::Write {
addr: 0x5485,
value: 0x66,
},
RegOp::Write {
addr: 0x5486,
value: 0x71,
},
RegOp::Write {
addr: 0x5487,
value: 0x7D,
},
RegOp::Write {
addr: 0x5488,
value: 0x83,
},
RegOp::Write {
addr: 0x5489,
value: 0x8F,
},
RegOp::Write {
addr: 0x548A,
value: 0x98,
},
RegOp::Write {
addr: 0x548B,
value: 0xA6,
},
RegOp::Write {
addr: 0x548C,
value: 0xB8,
},
RegOp::Write {
addr: 0x548D,
value: 0xCA,
},
RegOp::Write {
addr: 0x548E,
value: 0xD7,
},
RegOp::Write {
addr: 0x548F,
value: 0xE3,
},
RegOp::Write {
addr: 0x5490,
value: 0x1D,
},
];
pub const REGS_AWB0: &[RegOp] = &[
RegOp::Write {
addr: 0x5180,
value: 0xFF,
},
RegOp::Write {
addr: 0x5181,
value: 0xF2,
},
RegOp::Write {
addr: 0x5182,
value: 0x00,
},
RegOp::Write {
addr: 0x5183,
value: 0x14,
},
RegOp::Write {
addr: 0x5184,
value: 0x25,
},
RegOp::Write {
addr: 0x5185,
value: 0x24,
},
RegOp::Write {
addr: 0x5186,
value: 0x09,
},
RegOp::Write {
addr: 0x5187,
value: 0x09,
},
RegOp::Write {
addr: 0x5188,
value: 0x09,
},
RegOp::Write {
addr: 0x5189,
value: 0x75,
},
RegOp::Write {
addr: 0x518A,
value: 0x54,
},
RegOp::Write {
addr: 0x518B,
value: 0xE0,
},
RegOp::Write {
addr: 0x518C,
value: 0xB2,
},
RegOp::Write {
addr: 0x518D,
value: 0x42,
},
RegOp::Write {
addr: 0x518E,
value: 0x3D,
},
RegOp::Write {
addr: 0x518F,
value: 0x56,
},
RegOp::Write {
addr: 0x5190,
value: 0x46,
},
RegOp::Write {
addr: 0x5191,
value: 0xF8,
},
RegOp::Write {
addr: 0x5192,
value: 0x04,
},
RegOp::Write {
addr: 0x5193,
value: 0x70,
},
RegOp::Write {
addr: 0x5194,
value: 0xF0,
},
RegOp::Write {
addr: 0x5195,
value: 0xF0,
},
RegOp::Write {
addr: 0x5196,
value: 0x03,
},
RegOp::Write {
addr: 0x5197,
value: 0x01,
},
RegOp::Write {
addr: 0x5198,
value: 0x04,
},
RegOp::Write {
addr: 0x5199,
value: 0x12,
},
RegOp::Write {
addr: 0x519A,
value: 0x04,
},
RegOp::Write {
addr: 0x519B,
value: 0x00,
},
RegOp::Write {
addr: 0x519C,
value: 0x06,
},
RegOp::Write {
addr: 0x519D,
value: 0x82,
},
RegOp::Write {
addr: 0x519E,
value: 0x38,
},
];