diff options
| author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2013-06-28 06:01:14 -0400 |
|---|---|---|
| committer | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2013-06-28 06:01:14 -0400 |
| commit | b75bf98b5d2b7fdb876d3dd7eaec8246d4cc7174 (patch) | |
| tree | 47e77ad068f9e91c4730d5144c0ad4aa51f1b05d | |
| parent | 8e9804557ca1188f3a9d9129180f46c2c73ba942 (diff) | |
| parent | c545b59515cca4ccaf920e12582a43836cddaa2b (diff) | |
Merge tag 'omapdss-for-3.11-2' of git://gitorious.org/linux-omap-dss2/linux into fbdev/for-next
OMAP display subsystem changes for 3.11 (part 2/2)
This is the second part of OMAP DSS changes for 3.11. This part contains the
new DSS device model support.
The current OMAP panel drivers use a custom DSS bus, and there's a hard limit
of one external display block per video pipeline. In the new DSS device model
the devices/drivers are made according to the control bus of the display block,
usually platform, i2c or spi. The display blocks can also be chained so that we
can have separate drivers for setups with both external encoder and panel.
To allow the current board files, which use the old style panels, to function,
the old display drivers are left in their current state, and new ones are added
to drivers/video/omap2/displays-new/. When the board files have been converted
to use the new style panels, we can remove the old code. This is planned to
happen in v3.12.
Having to support two very different DSS device models makes the driver
somewhat confusing in some parts, and prevents us from properly cleaning up
some other parts. These cleanups will be done when the old code is removed.
The new device model is designed with CDF (Common Display Framework) in mind.
While CDF is still under work, the new DSS device model should be much more
similar to CDF's model than the old device model, which should make the
eventual conversion to CDF much easier.
30 files changed, 6911 insertions, 36 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c index 2c2316a59b6c..a3004f12b9a3 100644 --- a/drivers/gpu/drm/omapdrm/omap_drv.c +++ b/drivers/gpu/drm/omapdrm/omap_drv.c | |||
| @@ -65,10 +65,8 @@ static int get_connector_type(struct omap_dss_device *dssdev) | |||
| 65 | switch (dssdev->type) { | 65 | switch (dssdev->type) { |
| 66 | case OMAP_DISPLAY_TYPE_HDMI: | 66 | case OMAP_DISPLAY_TYPE_HDMI: |
| 67 | return DRM_MODE_CONNECTOR_HDMIA; | 67 | return DRM_MODE_CONNECTOR_HDMIA; |
| 68 | case OMAP_DISPLAY_TYPE_DPI: | 68 | case OMAP_DISPLAY_TYPE_DVI: |
| 69 | if (!strcmp(dssdev->name, "dvi")) | 69 | return DRM_MODE_CONNECTOR_DVID; |
| 70 | return DRM_MODE_CONNECTOR_DVID; | ||
| 71 | /* fallthrough */ | ||
| 72 | default: | 70 | default: |
| 73 | return DRM_MODE_CONNECTOR_Unknown; | 71 | return DRM_MODE_CONNECTOR_Unknown; |
| 74 | } | 72 | } |
diff --git a/drivers/video/omap2/Kconfig b/drivers/video/omap2/Kconfig index b07b2b042e7e..56cad0f5386c 100644 --- a/drivers/video/omap2/Kconfig +++ b/drivers/video/omap2/Kconfig | |||
| @@ -6,5 +6,6 @@ if ARCH_OMAP2PLUS | |||
| 6 | source "drivers/video/omap2/dss/Kconfig" | 6 | source "drivers/video/omap2/dss/Kconfig" |
| 7 | source "drivers/video/omap2/omapfb/Kconfig" | 7 | source "drivers/video/omap2/omapfb/Kconfig" |
| 8 | source "drivers/video/omap2/displays/Kconfig" | 8 | source "drivers/video/omap2/displays/Kconfig" |
| 9 | source "drivers/video/omap2/displays-new/Kconfig" | ||
| 9 | 10 | ||
| 10 | endif | 11 | endif |
diff --git a/drivers/video/omap2/Makefile b/drivers/video/omap2/Makefile index 296e5c5281c5..86873c2fbb27 100644 --- a/drivers/video/omap2/Makefile +++ b/drivers/video/omap2/Makefile | |||
| @@ -2,4 +2,5 @@ obj-$(CONFIG_OMAP2_VRFB) += vrfb.o | |||
| 2 | 2 | ||
| 3 | obj-$(CONFIG_OMAP2_DSS) += dss/ | 3 | obj-$(CONFIG_OMAP2_DSS) += dss/ |
| 4 | obj-y += displays/ | 4 | obj-y += displays/ |
| 5 | obj-y += displays-new/ | ||
| 5 | obj-$(CONFIG_FB_OMAP2) += omapfb/ | 6 | obj-$(CONFIG_FB_OMAP2) += omapfb/ |
diff --git a/drivers/video/omap2/displays-new/Kconfig b/drivers/video/omap2/displays-new/Kconfig new file mode 100644 index 000000000000..6c90885b0940 --- /dev/null +++ b/drivers/video/omap2/displays-new/Kconfig | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | menu "OMAP Display Device Drivers (new device model)" | ||
| 2 | depends on OMAP2_DSS | ||
| 3 | |||
| 4 | config DISPLAY_ENCODER_TFP410 | ||
| 5 | tristate "TFP410 DPI to DVI Encoder" | ||
| 6 | help | ||
| 7 | Driver for TFP410 DPI to DVI encoder. | ||
| 8 | |||
| 9 | config DISPLAY_ENCODER_TPD12S015 | ||
| 10 | tristate "TPD12S015 HDMI ESD protection and level shifter" | ||
| 11 | help | ||
| 12 | Driver for TPD12S015, which offers HDMI ESD protection and level | ||
| 13 | shifting. | ||
| 14 | |||
| 15 | config DISPLAY_CONNECTOR_DVI | ||
| 16 | tristate "DVI Connector" | ||
| 17 | depends on I2C | ||
| 18 | help | ||
| 19 | Driver for a generic DVI connector. | ||
| 20 | |||
| 21 | config DISPLAY_CONNECTOR_HDMI | ||
| 22 | tristate "HDMI Connector" | ||
| 23 | help | ||
| 24 | Driver for a generic HDMI connector. | ||
| 25 | |||
| 26 | config DISPLAY_CONNECTOR_ANALOG_TV | ||
| 27 | tristate "Analog TV Connector" | ||
| 28 | help | ||
| 29 | Driver for a generic analog TV connector. | ||
| 30 | |||
| 31 | config DISPLAY_PANEL_DPI | ||
| 32 | tristate "Generic DPI panel" | ||
| 33 | help | ||
| 34 | Driver for generic DPI panels. | ||
| 35 | |||
| 36 | config DISPLAY_PANEL_DSI_CM | ||
| 37 | tristate "Generic DSI Command Mode Panel" | ||
| 38 | help | ||
| 39 | Driver for generic DSI command mode panels. | ||
| 40 | |||
| 41 | config DISPLAY_PANEL_SONY_ACX565AKM | ||
| 42 | tristate "ACX565AKM Panel" | ||
| 43 | depends on SPI && BACKLIGHT_CLASS_DEVICE | ||
| 44 | help | ||
| 45 | This is the LCD panel used on Nokia N900 | ||
| 46 | |||
| 47 | config DISPLAY_PANEL_LGPHILIPS_LB035Q02 | ||
| 48 | tristate "LG.Philips LB035Q02 LCD Panel" | ||
| 49 | depends on SPI | ||
| 50 | help | ||
| 51 | LCD Panel used on the Gumstix Overo Palo35 | ||
| 52 | |||
| 53 | config DISPLAY_PANEL_SHARP_LS037V7DW01 | ||
| 54 | tristate "Sharp LS037V7DW01 LCD Panel" | ||
| 55 | depends on BACKLIGHT_CLASS_DEVICE | ||
| 56 | help | ||
| 57 | LCD Panel used in TI's SDP3430 and EVM boards | ||
| 58 | |||
| 59 | config DISPLAY_PANEL_TPO_TD043MTEA1 | ||
| 60 | tristate "TPO TD043MTEA1 LCD Panel" | ||
| 61 | depends on SPI | ||
| 62 | help | ||
| 63 | LCD Panel used in OMAP3 Pandora | ||
| 64 | |||
| 65 | config DISPLAY_PANEL_NEC_NL8048HL11 | ||
| 66 | tristate "NEC NL8048HL11 Panel" | ||
| 67 | depends on SPI | ||
| 68 | depends on BACKLIGHT_CLASS_DEVICE | ||
| 69 | help | ||
| 70 | This NEC NL8048HL11 panel is TFT LCD used in the | ||
| 71 | Zoom2/3/3630 sdp boards. | ||
| 72 | |||
| 73 | endmenu | ||
diff --git a/drivers/video/omap2/displays-new/Makefile b/drivers/video/omap2/displays-new/Makefile new file mode 100644 index 000000000000..5aeb11b8fcd5 --- /dev/null +++ b/drivers/video/omap2/displays-new/Makefile | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | obj-$(CONFIG_DISPLAY_ENCODER_TFP410) += encoder-tfp410.o | ||
| 2 | obj-$(CONFIG_DISPLAY_ENCODER_TPD12S015) += encoder-tpd12s015.o | ||
| 3 | obj-$(CONFIG_DISPLAY_CONNECTOR_DVI) += connector-dvi.o | ||
| 4 | obj-$(CONFIG_DISPLAY_CONNECTOR_HDMI) += connector-hdmi.o | ||
| 5 | obj-$(CONFIG_DISPLAY_CONNECTOR_ANALOG_TV) += connector-analog-tv.o | ||
| 6 | obj-$(CONFIG_DISPLAY_PANEL_DPI) += panel-dpi.o | ||
| 7 | obj-$(CONFIG_DISPLAY_PANEL_DSI_CM) += panel-dsi-cm.o | ||
| 8 | obj-$(CONFIG_DISPLAY_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o | ||
| 9 | obj-$(CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02) += panel-lgphilips-lb035q02.o | ||
| 10 | obj-$(CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o | ||
| 11 | obj-$(CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o | ||
| 12 | obj-$(CONFIG_DISPLAY_PANEL_NEC_NL8048HL11) += panel-nec-nl8048hl11.o | ||
diff --git a/drivers/video/omap2/displays-new/connector-analog-tv.c b/drivers/video/omap2/displays-new/connector-analog-tv.c new file mode 100644 index 000000000000..5338f362293b --- /dev/null +++ b/drivers/video/omap2/displays-new/connector-analog-tv.c | |||
| @@ -0,0 +1,265 @@ | |||
| 1 | /* | ||
| 2 | * Analog TV Connector driver | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Texas Instruments | ||
| 5 | * Author: Tomi Valkeinen <tomi.valkeinen@ti.com> | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify it | ||
| 8 | * under the terms of the GNU General Public License version 2 as published by | ||
