aboutsummaryrefslogtreecommitdiff
path: root/target/linux/bcm27xx/patches-6.1/950-0801-media-i2c-arducam_64mp-Add-8000x6000-resolution.patch
blob: 475ae634ad2ca419289eb32f32ca859788944922 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
From 7b3d0124c5cf462d5be0b0d4e558002b74750911 Mon Sep 17 00:00:00 2001
From: Lee Jackson <lee.jackson@arducam.com>
Date: Fri, 5 May 2023 14:36:15 +0800
Subject: [PATCH] media: i2c: arducam_64mp: Add 8000x6000 resolution

Added 8000x6000 10-bit (cropped) @ 3fps mode for Arducam 64MP

Signed-off-by: Lee Jackson <lee.jackson@arducam.com>
---
 drivers/media/i2c/arducam_64mp.c | 77 ++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

--- a/drivers/media/i2c/arducam_64mp.c
+++ b/drivers/media/i2c/arducam_64mp.c
@@ -849,6 +849,65 @@ static const struct arducam_64mp_reg mod
 	{0x020f, 0x00},
 };
 
+/* 48 mpix 3.0fps */
+static const struct arducam_64mp_reg mode_8000x6000_regs[] = {
+	{0x0342, 0xb6},
+	{0x0343, 0xb2},
+	{0x0340, 0x19},
+	{0x0341, 0x0e},
+	{0x0344, 0x02},
+	{0x0345, 0x70},
+	{0x0346, 0x01},
+	{0x0347, 0xd8},
+	{0x0348, 0x21},
+	{0x0349, 0xaf},
+	{0x034a, 0x19},
+	{0x034b, 0x47},
+	{0x0900, 0x00},
+	{0x0901, 0x11},
+	{0x0902, 0x0a},
+	{0x30d8, 0x00},
+	{0x3200, 0x01},
+	{0x3201, 0x01},
+	{0x0408, 0x00},
+	{0x0409, 0x00},
+	{0x040a, 0x00},
+	{0x040b, 0x00},
+	{0x040c, 0x1f},
+	{0x040d, 0x40},
+	{0x040e, 0x17},
+	{0x040f, 0x70},
+	{0x034c, 0x1f},
+	{0x034d, 0x40},
+	{0x034e, 0x17},
+	{0x034f, 0x70},
+	{0x30d9, 0x01},
+	{0x32d5, 0x01},
+	{0x32d6, 0x00},
+	{0x401e, 0x00},
+	{0x40b8, 0x04},
+	{0x40b9, 0x20},
+	{0x40bc, 0x02},
+	{0x40bd, 0x58},
+	{0x40be, 0x02},
+	{0x40bf, 0x58},
+	{0x41a4, 0x00},
+	{0x5a09, 0x01},
+	{0x5a17, 0x01},
+	{0x5a25, 0x01},
+	{0x5a33, 0x01},
+	{0x98d7, 0x14},
+	{0x98d8, 0x14},
+	{0x98d9, 0x00},
+	{0x99c4, 0x00},
+	{0x0202, 0x03},
+	{0x0203, 0xe8},
+	{0x0204, 0x00},
+	{0x0205, 0x00},
+	{0x020e, 0x01},
+	{0x020f, 0x00},
+};
+
 /* 16 mpix 10fps */
 static const struct arducam_64mp_reg mode_4624x3472_regs[] = {
 	{0x0342, 0x63},
@@ -1135,6 +1194,24 @@ static const struct arducam_64mp_mode su
 			.regs = mode_9152x6944_regs,
 		}
 	}, {
+		.width = 8000,
+		.height = 6000,
+		.line_length_pix = 0xb6b2,
+		.crop = {
+			.left = ARDUCAM_64MP_PIXEL_ARRAY_LEFT + 624,
+			.top = ARDUCAM_64MP_PIXEL_ARRAY_TOP + 472,
+			.width = 9248,
+			.height = 6944,
+		},
+		.timeperframe_default = {
+			.numerator = 100,
+			.denominator = 300
+		},
+		.reg_list = {
+			.num_of_regs = ARRAY_SIZE(mode_8000x6000_regs),
+			.regs = mode_8000x6000_regs,
+		}
+	}, {
 		.width = 4624,
 		.height = 3472,
 		.line_length_pix = 0x6397,