lcd_osk.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * LCD panel support for the TI OMAP OSK board
  4. *
  5. * Copyright (C) 2004 Nokia Corporation
  6. * Author: Imre Deak <[email protected]>
  7. * Adapted for OSK by <[email protected]>
  8. */
  9. #include <linux/module.h>
  10. #include <linux/platform_device.h>
  11. #include <linux/gpio.h>
  12. #include <linux/soc/ti/omap1-io.h>
  13. #include <linux/soc/ti/omap1-mux.h>
  14. #include "omapfb.h"
  15. static int osk_panel_enable(struct lcd_panel *panel)
  16. {
  17. /* configure PWL pin */
  18. omap_cfg_reg(PWL);
  19. /* Enable PWL unit */
  20. omap_writeb(0x01, OMAP_PWL_CLK_ENABLE);
  21. /* Set PWL level */
  22. omap_writeb(0xFF, OMAP_PWL_ENABLE);
  23. /* set GPIO2 high (lcd power enabled) */
  24. gpio_set_value(2, 1);
  25. return 0;
  26. }
  27. static void osk_panel_disable(struct lcd_panel *panel)
  28. {
  29. /* Set PWL level to zero */
  30. omap_writeb(0x00, OMAP_PWL_ENABLE);
  31. /* Disable PWL unit */
  32. omap_writeb(0x00, OMAP_PWL_CLK_ENABLE);
  33. /* set GPIO2 low */
  34. gpio_set_value(2, 0);
  35. }
  36. static struct lcd_panel osk_panel = {
  37. .name = "osk",
  38. .config = OMAP_LCDC_PANEL_TFT,
  39. .bpp = 16,
  40. .data_lines = 16,
  41. .x_res = 240,
  42. .y_res = 320,
  43. .pixel_clock = 12500,
  44. .hsw = 40,
  45. .hfp = 40,
  46. .hbp = 72,
  47. .vsw = 1,
  48. .vfp = 1,
  49. .vbp = 0,
  50. .pcd = 12,
  51. .enable = osk_panel_enable,
  52. .disable = osk_panel_disable,
  53. };
  54. static int osk_panel_probe(struct platform_device *pdev)
  55. {
  56. omapfb_register_panel(&osk_panel);
  57. return 0;
  58. }
  59. static struct platform_driver osk_panel_driver = {
  60. .probe = osk_panel_probe,
  61. .driver = {
  62. .name = "lcd_osk",
  63. },
  64. };
  65. module_platform_driver(osk_panel_driver);
  66. MODULE_AUTHOR("Imre Deak");
  67. MODULE_DESCRIPTION("LCD panel support for the TI OMAP OSK board");
  68. MODULE_LICENSE("GPL");