Skip to content

Commit 2aa1dea

Browse files
committed
support for more RGB panels
1 parent 2a15e84 commit 2aa1dea

File tree

5 files changed

+690
-4
lines changed

5 files changed

+690
-4
lines changed

arch/arm64/configs/nanopim3_defconfig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1513,7 +1513,7 @@ CONFIG_TOUCHSCREEN_PROPERTIES=y
15131513
# CONFIG_TOUCHSCREEN_EGALAX is not set
15141514
# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
15151515
# CONFIG_TOUCHSCREEN_FUJITSU is not set
1516-
# CONFIG_TOUCHSCREEN_GOODIX is not set
1516+
CONFIG_TOUCHSCREEN_GOODIX=m
15171517
# CONFIG_TOUCHSCREEN_ILI210X is not set
15181518
# CONFIG_TOUCHSCREEN_GUNZE is not set
15191519
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
@@ -1552,6 +1552,7 @@ CONFIG_TOUCHSCREEN_EDT_FT5X06=m
15521552
# CONFIG_TOUCHSCREEN_ZFORCE is not set
15531553
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
15541554
CONFIG_TOUCHSCREEN_IT7260=m
1555+
CONFIG_TOUCHSCREEN_HIMAX=m
15551556
CONFIG_TOUCHSCREEN_1WIRE=y
15561557
CONFIG_SENSOR_LOADER_1WIRE=m
15571558
# CONFIG_INPUT_MISC is not set

drivers/gpu/drm/panel/panel-nanopi.c

Lines changed: 142 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,88 @@ static const struct drm_display_mode mode_w35 = {
215215
DRM_MODE_FLAG_NCSYNC
216216
};
217217

218+
static const struct drm_display_mode mode_w50 = {
219+
.clock = 34558,
220+
.hdisplay = 800,
221+
.hsync_start = 800 + 40,
222+
.hsync_end = 800 + 40 + 48,
223+
.htotal = 800 + 40 + 48 + 40,
224+
.vdisplay = 480,
225+
.vsync_start = 480 + 20,
226+
.vsync_end = 480 + 20 + 12,
227+
.vtotal = 480 + 20 + 12 + 20,
228+
.vrefresh = 70,
229+
};
230+
231+
static const struct drm_display_mode mode_w101 = {
232+
.clock = 49447,
233+
.hdisplay = 1024,
234+
.hsync_start = 1024 + 40,
235+
.hsync_end = 1024 + 40 + 200,
236+
.htotal = 1024 + 40 + 200 + 40,
237+
.vdisplay = 600,
238+
.vsync_start = 600 + 8,
239+
.vsync_end = 600 + 8 + 16,
240+
.vtotal = 600 + 8 + 16 + 8,
241+
.vrefresh = 60,
242+
.flags = DRM_MODE_FLAG_NCSYNC
243+
};
244+
245+
static const struct drm_display_mode mode_a97 = {
246+
.clock = 50567,
247+
.hdisplay = 1024,
248+
.hsync_start = 1024 + 12,
249+
.hsync_end = 1024 + 12 + 4,
250+
.htotal = 1024 + 12 + 4 + 12,
251+
.vdisplay = 768,
252+
.vsync_start = 768 + 8,
253+
.vsync_end = 768 + 8 + 4,
254+
.vtotal = 768 + 8 + 4 + 8,
255+
.vrefresh = 61,
256+
};
257+
258+
static const struct drm_display_mode mode_lq150 = {
259+
.clock = 53790,
260+
.hdisplay = 1024,
261+
.hsync_start = 1024 + 12,
262+
.hsync_end = 1024 + 12 + 40,
263+
.htotal = 1024 + 12 + 40 + 12,
264+
.vdisplay = 768,
265+
.vsync_start = 768 + 8,
266+
.vsync_end = 768 + 8 + 40,
267+
.vtotal = 768 + 8 + 40 + 8,
268+
.vrefresh = 60,
269+
};
270+
271+
static const struct drm_display_mode mode_l80 = {
272+
.clock = 24895,
273+
.hdisplay = 640,
274+
.hsync_start = 640 + 35,
275+
.hsync_end = 640 + 35 + 73,
276+
.htotal = 640 + 35 + 73 + 53,
277+
.vdisplay = 480,
278+
.vsync_start = 480 + 3,
279+
.vsync_end = 480 + 3 + 6,
280+
.vtotal = 480 + 3 + 6 + 29,
281+
.vrefresh = 60,
282+
};
283+
284+
static const struct drm_display_mode mode_bp101 = {
285+
.clock = 65802,
286+
.hdisplay = 1280,
287+
.hsync_start = 1280 + 20,
288+
.hsync_end = 1280 + 20 + 24,
289+
.htotal = 1280 + 20 + 24 + 20,
290+
.vdisplay = 800,
291+
.vsync_start = 800 + 4,
292+
.vsync_end = 800 + 4 + 8,
293+
.vtotal = 800 + 4 + 8 + 4,
294+
.vrefresh = 60,
295+
.flags = DRM_MODE_FLAG_NCSYNC
296+
};
297+
218298
static const struct drm_display_mode mode_atops = {
219-
.clock = 34539,
299+
.clock = 34540,
220300
.hdisplay = 800,
221301
.hsync_start = 800 + 210,
222302
.hsync_end = 800 + 210 + 20,
@@ -231,49 +311,57 @@ static const struct drm_display_mode mode_atops = {
231311
static const struct nanopi_panel_desc nanopi_panels[] = {
232312
{
233313
.name = "hd101",
314+
.onewireType = 25,
234315
.i2c_touch_drv = "onewire",
235316
.bpc = 8,
236317
.p_width = 218,
237318
.p_height = 136,
238319
.mode = &mode_hd101,
239320
},{
240321
.name = "hd101b",
322+
.onewireType = 0, /* unknown */
241323
.i2c_touch_drv = "Goodix-TS",
324+
.i2c_touch_reg = 0x5d,
242325
.bpc = 8,
243326
.p_width = 218,
244327
.p_height = 136,
245328
.mode = &mode_hd101,
246329
},{
247330
.name = "hd700",
331+
.onewireType = 18,
248332
.i2c_touch_drv = "onewire",
249333
.bpc = 8,
250334
.p_width = 94,
251335
.p_height = 151,
252336
.mode = &mode_hd700,
253337
},{
254338
.name = "hd702",
255-
.onewireType = 24,
339+
.onewireType = 30,
256340
.i2c_touch_drv = "Goodix-TS",
341+
.i2c_touch_reg = 0x5d,
257342
.bpc = 8,
258343
.p_width = 94,
259344
.p_height = 151,
260345
.mode = &mode_hd700,
261346
},{
262347
.name = "s70",
348+
.onewireType = 3,
263349
.i2c_touch_drv = "onewire",
264350
.bpc = 8,
265351
.p_width = 155,
266352
.p_height = 93,
267353
.mode = &mode_s70,
268354
},{
269355
.name = "s702",
356+
.onewireType = 24,
270357
.i2c_touch_drv = "onewire",
271358
.bpc = 8,
272359
.p_width = 155,
273360
.p_height = 93,
274361
.mode = &mode_s702,
275362
},{
276363
.name = "s70d",
364+
.onewireType = 26,
277365
.bpc = 8,
278366
.p_width = 155,
279367
.p_height = 93,
@@ -289,29 +377,80 @@ static const struct nanopi_panel_desc nanopi_panels[] = {
289377
.mode = &mode_x710,
290378
},{
291379
.name = "s430",
292-
.i2c_touch_drv = "himax_ts",
380+
.onewireType = 31,
381+
.i2c_touch_drv = "hx8528-a",
382+
.i2c_touch_reg = 0x48,
293383
.bpc = 8,
294384
.p_width = 108,
295385
.p_height = 64,
296386
.mode = &mode_s430,
297387
},{
298388
.name = "h43",
389+
.onewireType = 14,
299390
.bpc = 8,
300391
.p_width = 96,
301392
.p_height = 54,
302393
.mode = &mode_h43,
303394
},{
304395
.name = "p43",
396+
.onewireType = 19,
305397
.bpc = 8,
306398
.p_width = 96,
307399
.p_height = 54,
308400
.mode = &mode_p43,
309401
},{
310402
.name = "w35",
403+
.onewireType = 8,
311404
.bpc = 6,
312405
.p_width = 70,
313406
.p_height = 52,
314407
.mode = &mode_w35,
408+
},{
409+
.name = "w50",
410+
.onewireType = 4,
411+
.bpc = 8,
412+
.p_width = 108,
413+
.p_height = 64,
414+
.mode = &mode_w50,
415+
},{
416+
.name = "w101",
417+
.onewireType = 15,
418+
.i2c_touch_drv = "onewire",
419+
.bpc = 8,
420+
.p_width = 204,
421+
.p_height = 120,
422+
.mode = &mode_w101,
423+
},{
424+
.name = "a97",
425+
.onewireType = 0, /* unknown */
426+
.bpc = 8,
427+
.p_width = 200,
428+
.p_height = 150,
429+
.mode = &mode_a97,
430+
},{
431+
.name = "lq150",
432+
.onewireType = 0, /* unknown */
433+
.i2c_touch_drv = "onewire",
434+
.bpc = 8,
435+
.p_width = 304,
436+
.p_height = 228,
437+
.mode = &mode_lq150,
438+
},{
439+
.name = "l80",
440+
.onewireType = 5,
441+
.i2c_touch_drv = "onewire",
442+
.bpc = 8,
443+
.p_width = 160,
444+
.p_height = 120,
445+
.mode = &mode_l80,
446+
},{
447+
.name = "bp101",
448+
.onewireType = 0, /* unknown */
449+
.i2c_touch_drv = "onewire",
450+
.bpc = 8,
451+
.p_width = 218,
452+
.p_height = 136,
453+
.mode = &mode_bp101,
315454
},{
316455
.name = "atops",
317456
.bpc = 6,

drivers/input/touchscreen/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,6 +1225,16 @@ config TOUCHSCREEN_IT7260
12251225
To compile this driver as a module, choose M here: the
12261226
module will be called it7260_mts.ko.
12271227

1228+
config TOUCHSCREEN_HIMAX
1229+
tristate "Himax touchscreen support"
1230+
depends on I2C
1231+
help
1232+
Say Y here if you have a Himax touchscreen and your
1233+
board-specific setup code includes that in its table
1234+
of I2C devices.
1235+
1236+
If unsure, say N.
1237+
12281238
config TOUCHSCREEN_1WIRE
12291239
tristate "1-Wire host and Touch Screen Driver"
12301240
depends on ARCH_S5P6818

drivers/input/touchscreen/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,5 +100,6 @@ obj-$(CONFIG_TOUCHSCREEN_ZFORCE) += zforce_ts.o
100100
obj-$(CONFIG_TOUCHSCREEN_COLIBRI_VF50) += colibri-vf50-ts.o
101101
obj-$(CONFIG_TOUCHSCREEN_ROHM_BU21023) += rohm_bu21023.o
102102
obj-$(CONFIG_TOUCHSCREEN_IT7260) += it7260_mts.o
103+
obj-$(CONFIG_TOUCHSCREEN_HIMAX) += himax_ts.o
103104
obj-$(CONFIG_TOUCHSCREEN_1WIRE) += onewire.o
104105
obj-$(CONFIG_SENSOR_LOADER_1WIRE) += onewire-touch.o

0 commit comments

Comments
 (0)