Merge tag 'afs-fixes-20220802' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowe...
[linux-block.git] / drivers / video / fbdev / omap / lcd_osk.c
CommitLineData
1a59d1b8 1// SPDX-License-Identifier: GPL-2.0-or-later
107cc64b
DB
2/*
3 * LCD panel support for the TI OMAP OSK board
4 *
5 * Copyright (C) 2004 Nokia Corporation
6 * Author: Imre Deak <imre.deak@nokia.com>
7 * Adapted for OSK by <dirk.behme@de.bosch.com>
107cc64b
DB
8 */
9
10#include <linux/module.h>
11#include <linux/platform_device.h>
288e6eaa 12#include <linux/gpio.h>
0adcbaf7 13
804f7f19
AB
14#include <linux/soc/ti/omap1-io.h>
15#include <linux/soc/ti/omap1-mux.h>
0adcbaf7 16
91773a00 17#include "omapfb.h"
107cc64b 18
107cc64b
DB
19static int osk_panel_enable(struct lcd_panel *panel)
20{
21 /* configure PWL pin */
22 omap_cfg_reg(PWL);
23
24 /* Enable PWL unit */
25 omap_writeb(0x01, OMAP_PWL_CLK_ENABLE);
26
27 /* Set PWL level */
28 omap_writeb(0xFF, OMAP_PWL_ENABLE);
29
93a22f8b
DB
30 /* set GPIO2 high (lcd power enabled) */
31 gpio_set_value(2, 1);
107cc64b
DB
32
33 return 0;
34}
35
36static void osk_panel_disable(struct lcd_panel *panel)
37{
38 /* Set PWL level to zero */
39 omap_writeb(0x00, OMAP_PWL_ENABLE);
40
41 /* Disable PWL unit */
42 omap_writeb(0x00, OMAP_PWL_CLK_ENABLE);
43
44 /* set GPIO2 low */
93a22f8b 45 gpio_set_value(2, 0);
107cc64b
DB
46}
47
b2c1e8a7 48static struct lcd_panel osk_panel = {
107cc64b
DB
49 .name = "osk",
50 .config = OMAP_LCDC_PANEL_TFT,
51
52 .bpp = 16,
53 .data_lines = 16,
54 .x_res = 240,
55 .y_res = 320,
56 .pixel_clock = 12500,
57 .hsw = 40,
58 .hfp = 40,
59 .hbp = 72,
60 .vsw = 1,
61 .vfp = 1,
62 .vbp = 0,
63 .pcd = 12,
64
107cc64b
DB
65 .enable = osk_panel_enable,
66 .disable = osk_panel_disable,
107cc64b
DB
67};
68
69static int osk_panel_probe(struct platform_device *pdev)
70{
71 omapfb_register_panel(&osk_panel);
72 return 0;
73}
74
f9905441 75static struct platform_driver osk_panel_driver = {
107cc64b 76 .probe = osk_panel_probe,
107cc64b
DB
77 .driver = {
78 .name = "lcd_osk",
107cc64b
DB
79 },
80};
81
f806f9b6 82module_platform_driver(osk_panel_driver);
1bde9f2c
AB
83
84MODULE_AUTHOR("Imre Deak");
85MODULE_DESCRIPTION("LCD panel support for the TI OMAP OSK board");
86MODULE_LICENSE("GPL");