@@ -39,6 +39,117 @@ static const u8 visionox_rm69299_1080x2248_60hz_init_seq[][2] = {
39
39
{ 0xfe , 0x00 }, { 0xc2 , 0x08 }, { 0x35 , 0x00 }, { 0x51 , 0xff },
40
40
};
41
41
42
+ static const u8 visionox_rm69299_1080x2160_60hz_init_seq [][2 ] = {
43
+ { 0xfe , 0x40 }, { 0x05 , 0x04 }, { 0x06 , 0x08 }, { 0x08 , 0x04 },
44
+ { 0x09 , 0x08 }, { 0x0a , 0x07 }, { 0x0b , 0xcc }, { 0x0c , 0x07 },
45
+ { 0x0d , 0x90 }, { 0x0f , 0x87 }, { 0x20 , 0x8d }, { 0x21 , 0x8d },
46
+ { 0x24 , 0x05 }, { 0x26 , 0x05 }, { 0x28 , 0x05 }, { 0x2a , 0x05 },
47
+ { 0x2d , 0x28 }, { 0x2f , 0x28 }, { 0x30 , 0x32 }, { 0x31 , 0x32 },
48
+ { 0x37 , 0x80 }, { 0x38 , 0x30 }, { 0x39 , 0xa8 }, { 0x46 , 0x48 },
49
+ { 0x47 , 0x48 }, { 0x6b , 0x10 }, { 0x6f , 0x02 }, { 0x74 , 0x2b },
50
+ { 0x80 , 0x1a }, { 0xfe , 0x40 }, { 0x93 , 0x10 }, { 0x16 , 0x00 },
51
+ { 0x85 , 0x07 }, { 0x84 , 0x01 }, { 0x86 , 0x0f }, { 0x87 , 0x05 },
52
+ { 0x8c , 0x00 }, { 0x88 , 0x2e }, { 0x89 , 0x2e }, { 0x8b , 0x09 },
53
+ { 0x95 , 0x00 }, { 0x91 , 0x00 }, { 0x90 , 0x00 }, { 0x8d , 0xd0 },
54
+ { 0x8a , 0x03 }, { 0xfe , 0xa0 }, { 0x13 , 0x00 }, { 0x33 , 0x00 },
55
+ { 0x0b , 0x33 }, { 0x36 , 0x1e }, { 0x31 , 0x88 }, { 0x32 , 0x88 },
56
+ { 0x37 , 0xf1 }, { 0xfe , 0x50 }, { 0x00 , 0x00 }, { 0x01 , 0x00 },
57
+ { 0x02 , 0x00 }, { 0x03 , 0xe9 }, { 0x04 , 0x00 }, { 0x05 , 0xf6 },
58
+ { 0x06 , 0x01 }, { 0x07 , 0x2c }, { 0x08 , 0x01 }, { 0x09 , 0x62 },
59
+ { 0x0a , 0x01 }, { 0x0b , 0x98 }, { 0x0c , 0x01 }, { 0x0d , 0xbf },
60
+ { 0x0e , 0x01 }, { 0x0f , 0xf6 }, { 0x10 , 0x02 }, { 0x11 , 0x24 },
61
+ { 0x12 , 0x02 }, { 0x13 , 0x4e }, { 0x14 , 0x02 }, { 0x15 , 0x70 },
62
+ { 0x16 , 0x02 }, { 0x17 , 0xaf }, { 0x18 , 0x02 }, { 0x19 , 0xe2 },
63
+ { 0x1a , 0x03 }, { 0x1b , 0x1f }, { 0x1c , 0x03 }, { 0x1d , 0x52 },
64
+ { 0x1e , 0x03 }, { 0x1f , 0x82 }, { 0x20 , 0x03 }, { 0x21 , 0xb6 },
65
+ { 0x22 , 0x03 }, { 0x23 , 0xf0 }, { 0x24 , 0x04 }, { 0x25 , 0x1f },
66
+ { 0x26 , 0x04 }, { 0x27 , 0x37 }, { 0x28 , 0x04 }, { 0x29 , 0x59 },
67
+ { 0x2a , 0x04 }, { 0x2b , 0x68 }, { 0x30 , 0x04 }, { 0x31 , 0x85 },
68
+ { 0x32 , 0x04 }, { 0x33 , 0xa2 }, { 0x34 , 0x04 }, { 0x35 , 0xbc },
69
+ { 0x36 , 0x04 }, { 0x37 , 0xd8 }, { 0x38 , 0x04 }, { 0x39 , 0xf4 },
70
+ { 0x3a , 0x05 }, { 0x3b , 0x0e }, { 0x40 , 0x05 }, { 0x41 , 0x13 },
71
+ { 0x42 , 0x05 }, { 0x43 , 0x1f }, { 0x44 , 0x05 }, { 0x45 , 0x1f },
72
+ { 0x46 , 0x00 }, { 0x47 , 0x00 }, { 0x48 , 0x01 }, { 0x49 , 0x43 },
73
+ { 0x4a , 0x01 }, { 0x4b , 0x4c }, { 0x4c , 0x01 }, { 0x4d , 0x6f },
74
+ { 0x4e , 0x01 }, { 0x4f , 0x92 }, { 0x50 , 0x01 }, { 0x51 , 0xb5 },
75
+ { 0x52 , 0x01 }, { 0x53 , 0xd4 }, { 0x58 , 0x02 }, { 0x59 , 0x06 },
76
+ { 0x5a , 0x02 }, { 0x5b , 0x33 }, { 0x5c , 0x02 }, { 0x5d , 0x59 },
77
+ { 0x5e , 0x02 }, { 0x5f , 0x7d }, { 0x60 , 0x02 }, { 0x61 , 0xbd },
78
+ { 0x62 , 0x02 }, { 0x63 , 0xf7 }, { 0x64 , 0x03 }, { 0x65 , 0x31 },
79
+ { 0x66 , 0x03 }, { 0x67 , 0x63 }, { 0x68 , 0x03 }, { 0x69 , 0x9d },
80
+ { 0x6a , 0x03 }, { 0x6b , 0xd2 }, { 0x6c , 0x04 }, { 0x6d , 0x05 },
81
+ { 0x6e , 0x04 }, { 0x6f , 0x38 }, { 0x70 , 0x04 }, { 0x71 , 0x51 },
82
+ { 0x72 , 0x04 }, { 0x73 , 0x70 }, { 0x74 , 0x04 }, { 0x75 , 0x85 },
83
+ { 0x76 , 0x04 }, { 0x77 , 0xa1 }, { 0x78 , 0x04 }, { 0x79 , 0xc0 },
84
+ { 0x7a , 0x04 }, { 0x7b , 0xd8 }, { 0x7c , 0x04 }, { 0x7d , 0xf2 },
85
+ { 0x7e , 0x05 }, { 0x7f , 0x10 }, { 0x80 , 0x05 }, { 0x81 , 0x21 },
86
+ { 0x82 , 0x05 }, { 0x83 , 0x2e }, { 0x84 , 0x05 }, { 0x85 , 0x3a },
87
+ { 0x86 , 0x05 }, { 0x87 , 0x3e }, { 0x88 , 0x00 }, { 0x89 , 0x00 },
88
+ { 0x8a , 0x01 }, { 0x8b , 0x86 }, { 0x8c , 0x01 }, { 0x8d , 0x8f },
89
+ { 0x8e , 0x01 }, { 0x8f , 0xb3 }, { 0x90 , 0x01 }, { 0x91 , 0xd7 },
90
+ { 0x92 , 0x01 }, { 0x93 , 0xfb }, { 0x94 , 0x02 }, { 0x95 , 0x18 },
91
+ { 0x96 , 0x02 }, { 0x97 , 0x4f }, { 0x98 , 0x02 }, { 0x99 , 0x7e },
92
+ { 0x9a , 0x02 }, { 0x9b , 0xa6 }, { 0x9c , 0x02 }, { 0x9d , 0xcf },
93
+ { 0x9e , 0x03 }, { 0x9f , 0x14 }, { 0xa4 , 0x03 }, { 0xa5 , 0x52 },
94
+ { 0xa6 , 0x03 }, { 0xa7 , 0x93 }, { 0xac , 0x03 }, { 0xad , 0xcf },
95
+ { 0xae , 0x04 }, { 0xaf , 0x08 }, { 0xb0 , 0x04 }, { 0xb1 , 0x42 },
96
+ { 0xb2 , 0x04 }, { 0xb3 , 0x7f }, { 0xb4 , 0x04 }, { 0xb5 , 0xb4 },
97
+ { 0xb6 , 0x04 }, { 0xb7 , 0xcc }, { 0xb8 , 0x04 }, { 0xb9 , 0xf2 },
98
+ { 0xba , 0x05 }, { 0xbb , 0x0c }, { 0xbc , 0x05 }, { 0xbd , 0x26 },
99
+ { 0xbe , 0x05 }, { 0xbf , 0x4b }, { 0xc0 , 0x05 }, { 0xc1 , 0x64 },
100
+ { 0xc2 , 0x05 }, { 0xc3 , 0x83 }, { 0xc4 , 0x05 }, { 0xc5 , 0xa1 },
101
+ { 0xc6 , 0x05 }, { 0xc7 , 0xba }, { 0xc8 , 0x05 }, { 0xc9 , 0xc4 },
102
+ { 0xca , 0x05 }, { 0xcb , 0xd5 }, { 0xcc , 0x05 }, { 0xcd , 0xd5 },
103
+ { 0xce , 0x00 }, { 0xcf , 0xce }, { 0xd0 , 0x00 }, { 0xd1 , 0xdb },
104
+ { 0xd2 , 0x01 }, { 0xd3 , 0x32 }, { 0xd4 , 0x01 }, { 0xd5 , 0x3b },
105
+ { 0xd6 , 0x01 }, { 0xd7 , 0x74 }, { 0xd8 , 0x01 }, { 0xd9 , 0x7d },
106
+ { 0xfe , 0x60 }, { 0x00 , 0xcc }, { 0x01 , 0x0f }, { 0x02 , 0xff },
107
+ { 0x03 , 0x01 }, { 0x04 , 0x00 }, { 0x05 , 0x02 }, { 0x06 , 0x00 },
108
+ { 0x07 , 0x00 }, { 0x09 , 0xc4 }, { 0x0a , 0x00 }, { 0x0b , 0x04 },
109
+ { 0x0c , 0x01 }, { 0x0d , 0x00 }, { 0x0e , 0x04 }, { 0x0f , 0x00 },
110
+ { 0x10 , 0x71 }, { 0x12 , 0xc4 }, { 0x13 , 0x00 }, { 0x14 , 0x04 },
111
+ { 0x15 , 0x01 }, { 0x16 , 0x00 }, { 0x17 , 0x06 }, { 0x18 , 0x00 },
112
+ { 0x19 , 0x71 }, { 0x1b , 0xc4 }, { 0x1c , 0x00 }, { 0x1d , 0x02 },
113
+ { 0x1e , 0x00 }, { 0x1f , 0x00 }, { 0x20 , 0x08 }, { 0x21 , 0x66 },
114
+ { 0x22 , 0xb4 }, { 0x24 , 0xc4 }, { 0x25 , 0x00 }, { 0x26 , 0x02 },
115
+ { 0x27 , 0x00 }, { 0x28 , 0x00 }, { 0x29 , 0x07 }, { 0x2a , 0x66 },
116
+ { 0x2b , 0xb4 }, { 0x2f , 0xc4 }, { 0x30 , 0x00 }, { 0x31 , 0x04 },
117
+ { 0x32 , 0x01 }, { 0x33 , 0x00 }, { 0x34 , 0x03 }, { 0x35 , 0x00 },
118
+ { 0x36 , 0x71 }, { 0x38 , 0xc4 }, { 0x39 , 0x00 }, { 0x3a , 0x04 },
119
+ { 0x3b , 0x01 }, { 0x3d , 0x00 }, { 0x3f , 0x05 }, { 0x40 , 0x00 },
120
+ { 0x41 , 0x71 }, { 0x83 , 0xce }, { 0x84 , 0x02 }, { 0x85 , 0x20 },
121
+ { 0x86 , 0xdc }, { 0x87 , 0x00 }, { 0x88 , 0x04 }, { 0x89 , 0x00 },
122
+ { 0x8a , 0xbb }, { 0x8b , 0x80 }, { 0xc7 , 0x0e }, { 0xc8 , 0x05 },
123
+ { 0xc9 , 0x1f }, { 0xca , 0x06 }, { 0xcb , 0x00 }, { 0xcc , 0x03 },
124
+ { 0xcd , 0x04 }, { 0xce , 0x1f }, { 0xcf , 0x1f }, { 0xd0 , 0x1f },
125
+ { 0xd1 , 0x1f }, { 0xd2 , 0x1f }, { 0xd3 , 0x1f }, { 0xd4 , 0x1f },
126
+ { 0xd5 , 0x1f }, { 0xd6 , 0x1f }, { 0xd7 , 0x17 }, { 0xd8 , 0x1f },
127
+ { 0xd9 , 0x16 }, { 0xda , 0x1f }, { 0xdb , 0x0e }, { 0xdc , 0x01 },
128
+ { 0xdd , 0x1f }, { 0xde , 0x02 }, { 0xdf , 0x00 }, { 0xe0 , 0x03 },
129
+ { 0xe1 , 0x04 }, { 0xe2 , 0x1f }, { 0xe3 , 0x1f }, { 0xe4 , 0x1f },
130
+ { 0xe5 , 0x1f }, { 0xe6 , 0x1f }, { 0xe7 , 0x1f }, { 0xe8 , 0x1f },
131
+ { 0xe9 , 0x1f }, { 0xea , 0x1f }, { 0xeb , 0x17 }, { 0xec , 0x1f },
132
+ { 0xed , 0x16 }, { 0xee , 0x1f }, { 0xef , 0x03 }, { 0xfe , 0x70 },
133
+ { 0x5a , 0x0b }, { 0x5b , 0x0b }, { 0x5c , 0x55 }, { 0x5d , 0x24 },
134
+ { 0xfe , 0x90 }, { 0x12 , 0x24 }, { 0x13 , 0x49 }, { 0x14 , 0x92 },
135
+ { 0x15 , 0x86 }, { 0x16 , 0x61 }, { 0x17 , 0x18 }, { 0x18 , 0x24 },
136
+ { 0x19 , 0x49 }, { 0x1a , 0x92 }, { 0x1b , 0x86 }, { 0x1c , 0x61 },
137
+ { 0x1d , 0x18 }, { 0x1e , 0x24 }, { 0x1f , 0x49 }, { 0x20 , 0x92 },
138
+ { 0x21 , 0x86 }, { 0x22 , 0x61 }, { 0x23 , 0x18 }, { 0xfe , 0x40 },
139
+ { 0x0e , 0x10 }, { 0xfe , 0xa0 }, { 0x04 , 0x80 }, { 0x16 , 0x00 },
140
+ { 0x26 , 0x10 }, { 0x2f , 0x37 }, { 0xfe , 0xd0 }, { 0x06 , 0x0f },
141
+ { 0x4b , 0x00 }, { 0x56 , 0x4a }, { 0xfe , 0x00 }, { 0xc2 , 0x09 },
142
+ { 0x35 , 0x00 }, { 0xfe , 0x70 }, { 0x7d , 0x61 }, { 0x7f , 0x00 },
143
+ { 0x7e , 0x4e }, { 0x52 , 0x2c }, { 0x49 , 0x00 }, { 0x4a , 0x00 },
144
+ { 0x4b , 0x00 }, { 0x4c , 0x00 }, { 0x4d , 0xe8 }, { 0x4e , 0x25 },
145
+ { 0x4f , 0x6e }, { 0x50 , 0xae }, { 0x51 , 0x2f }, { 0xad , 0xf4 },
146
+ { 0xae , 0x8f }, { 0xaf , 0x00 }, { 0xb0 , 0x54 }, { 0xb1 , 0x3a },
147
+ { 0xb2 , 0x00 }, { 0xb3 , 0x00 }, { 0xb4 , 0x00 }, { 0xb5 , 0x00 },
148
+ { 0xb6 , 0x18 }, { 0xb7 , 0x30 }, { 0xb8 , 0x4a }, { 0xb9 , 0x98 },
149
+ { 0xba , 0x30 }, { 0xbb , 0x60 }, { 0xbc , 0x50 }, { 0xbd , 0x00 },
150
+ { 0xbe , 0x00 }, { 0xbf , 0x39 }, { 0xfe , 0x00 }, { 0x51 , 0x66 },
151
+ };
152
+
42
153
static inline struct visionox_rm69299 * panel_to_ctx (struct drm_panel * panel )
43
154
{
44
155
return container_of (panel , struct visionox_rm69299 , panel );
@@ -135,6 +246,19 @@ static const struct drm_display_mode visionox_rm69299_1080x2248_60hz = {
135
246
.flags = 0 ,
136
247
};
137
248
249
+ static const struct drm_display_mode visionox_rm69299_1080x2160_60hz = {
250
+ .clock = 158695 ,
251
+ .hdisplay = 1080 ,
252
+ .hsync_start = 1080 + 26 ,
253
+ .hsync_end = 1080 + 26 + 2 ,
254
+ .htotal = 1080 + 26 + 2 + 36 ,
255
+ .vdisplay = 2160 ,
256
+ .vsync_start = 2160 + 8 ,
257
+ .vsync_end = 2160 + 8 + 4 ,
258
+ .vtotal = 2160 + 8 + 4 + 4 ,
259
+ .flags = 0 ,
260
+ };
261
+
138
262
static int visionox_rm69299_get_modes (struct drm_panel * panel ,
139
263
struct drm_connector * connector )
140
264
{
@@ -225,9 +349,17 @@ const struct visionox_rm69299_panel_desc visionox_rm69299_1080p_display_desc = {
225
349
.init_seq_len = ARRAY_SIZE (visionox_rm69299_1080x2248_60hz_init_seq ),
226
350
};
227
351
352
+ const struct visionox_rm69299_panel_desc visionox_rm69299_shift_desc = {
353
+ .mode = & visionox_rm69299_1080x2160_60hz ,
354
+ .init_seq = (const u8 * )visionox_rm69299_1080x2160_60hz_init_seq ,
355
+ .init_seq_len = ARRAY_SIZE (visionox_rm69299_1080x2160_60hz_init_seq ),
356
+ };
357
+
228
358
static const struct of_device_id visionox_rm69299_of_match [] = {
229
359
{ .compatible = "visionox,rm69299-1080p-display" ,
230
360
.data = & visionox_rm69299_1080p_display_desc },
361
+ { .compatible = "visionox,rm69299-shift" ,
362
+ .data = & visionox_rm69299_shift_desc },
231
363
{ /* sentinel */ }
232
364
};
233
365
MODULE_DEVICE_TABLE (of , visionox_rm69299_of_match );
0 commit comments