summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/panel
AgeCommit message (Collapse)AuthorFilesLines
2014-09-10drm/panel/simple: add optronics B101XTN01.0 (v3)Rob Clark1-0/+27
LVDS panel, make/model described as: AU Optronics Corporation - B101XTN01.0 (H/W:0A) See: http://www.encore-electronic.com/media/B101XTN01.0.pdf Tested with panel attached to an Inforce IFC6410 board. Signed-off-by: Rob Clark <robdclark@gmail.com>
2014-08-07drm/panel: simple: Use devm_gpiod_get_optional()Alexandre Courbot1-7/+5
Use the new devm_gpiod_get_optional() to simplify the probe code. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: ld9040: Replace upcasting macro by functionThierry Reding1-1/+4
Using a function instead of a macro provides proper type checking. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: simple: Add AUO B133HTN01 panel supportAjay Kumar1-0/+30
The AUO B133HTN01 is a 13.6" FHD TFT LCD panel connecting to an eDP interface and with an integrated LED backlight unit. This panel is used on the Samsung Chromebook 2 (XE503C32). Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: simple: Support delays in panel functionsAjay Kumar1-0/+30
For most of the panels, we need to provide delays during various stages of panel power up and power down. Add a structure to hold those delay values and use them in corresponding functions. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: simple: Add proper definition for prepare and unprepareAjay Kumar1-10/+27
Move out code from enable and disable routines to prepare and unprepare routines, so that functionality is properly distributed across all the panel functions. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: s6e8aa0: Add proper definition for prepare and unprepareAjay Kumar1-11/+11
Move out code from enable and disable routines to prepare and unprepare routines, so that functionality is properly distributed across all the panel functions. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: ld9040: Add proper definition for prepare and unprepareAjay Kumar1-11/+11
Move out code from enable and disable routines to prepare and unprepare routines, so that functionality is properly distributed across all the panel functions. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: simple: Add dummy prepare and unprepare routinesAjay Kumar1-0/+12
This patch adds dummy definition for prepare and unprepare routines to simple panel driver. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: s6e8aa0: Add dummy prepare and unprepare routinesAjay Kumar1-0/+12
This patch adds dummy definition for prepare and unprepare routines to s6e8aa0 panel driver. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: ld9040: Add dummy prepare and unprepare routinesAjay Kumar1-0/+12
This patch adds dummy definition for prepare and unprepare routines to ld9040 panel driver. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: simple: Remove simple-panel compatibleThierry Reding1-2/+0
simple-panel is not a valid panel model, so there is no data (video timings, etc.) associated with it. Therefore drivers can't do anything useful with it, so it should not appear in the table of OF matches. Device trees will always need to specify the exact model of the panel. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-06drm/panel: simple: Add Innolux N116BGE panel supportThierry Reding1-0/+27
The Innolux N116BGE is an 11.6" WXGA TFT LCD panel connecting to an eDP interface and with an integrated LED backlight unit. It is used in the Tegra132 Norrin reference design. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-01drm/panel: simple: Add bits-per-color supportStéphane Marchesin1-0/+12
The bits-per-color is provided by the EDID normally, but if we're using panels, we need to store it somewhere. So we add a field to the panel descriptor for it. Signed-off-by: Stéphane Marchesin <marcheu@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-07-22drm/panel: simple: add support for InnoLux N156BGE-L21 panelAlban Bedel1-0/+25
This panel is used by the Medcom Wide and supported by the simple-panel driver. Signed-off-by: Alban Bedel <alban.bedel@avionic-design.de> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-07-22drm/panel: s6e8aa0: Use static inline for upcastingThierry Reding1-1/+4
Use a static inline function for upcasting a struct drm_panel to the driver-specific structure. The advantage over using a macro is that it gives us additional type checking. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-07-22drm/dsi: Use peripheral's channel for DCS commandsThierry Reding1-2/+2
When executing DCS commands, use the channel associated with the DSI peripheral rather than one explicitly specified in the function call. Devices shouldn't be able to step on each others' toes like this. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-07-22drm/dsi: Make mipi_dsi_dcs_write() return ssize_tThierry Reding1-2/+2
This function returns the value of the struct mipi_dsi_host_ops' .transfer() so make sure the return types are consistent. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-07-15drm/panel: add support for Foxlink FL500WVR00-A0T panelBoris BREZILLON1-0/+25
This panel is used by Atmel's SAMA5D3 Evaluation Kits (sama5d3xek) and supported by the simple-panel driver. Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-07-14drm/panel: Set non-continuous clock flag on supporting panelsAlexandre Courbot1-2/+3
The LG LD070WX3-SL01 and Panasonic VVX10F004B00 are DSI support non-continuous clock mode. Set the MIPI_DSI_CLOCK_NON_CONTINUOUS to their definition so host drivers become aware of this capability. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-07-14drm/panel: make DRM_PANEL_LD9040 depend on SPIRussell King1-2/+1
Rather than DRM_PANEL_LD9040 selecting SPI, which then results in an increase in the probability of Kconf reporting circular dependencies (we're one "select" away from that right now), make this depend on SPI instead. This is akin to having some driver select DRM. Having some drivers depend on a subsystem, and other drivers select a subsystem is a recipe for circular dependencies, and there's really no need for it. The potential circular dependency (which can be caused today by the addition of selecting DRM_PANEL from DRM_IMX_LDB) is: symbol DMADEVICES is selected by SAMSUNG_DMADEV symbol SAMSUNG_DMADEV is selected by S3C64XX_PL080 symbol S3C64XX_PL080 is selected by SPI_S3C64XX symbol SPI_S3C64XX depends on SPI symbol SPI is selected by DRM_PANEL_LD9040 symbol DRM_PANEL_LD9040 depends on DRM_PANEL symbol DRM_PANEL is selected by DRM_IMX_LDB symbol DRM_IMX_LDB depends on MFD_SYSCON symbol MFD_SYSCON is selected by POWER_RESET_KEYSTONE symbol POWER_RESET_KEYSTONE depends on POWER_SUPPLY symbol POWER_SUPPLY is selected by HID_SONY symbol HID_SONY depends on NEW_LEDS symbol NEW_LEDS is selected by BACKLIGHT_ADP8860 symbol BACKLIGHT_ADP8860 depends on BACKLIGHT_CLASS_DEVICE symbol BACKLIGHT_CLASS_DEVICE is selected by FB_MX3 symbol FB_MX3 depends on MX3_IPU symbol MX3_IPU depends on DMADEVICES Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-07-14drm/panel: consolidate unnecessary explicit dependenciesRussell King1-3/+1
DRM_PANEL_LD9040 and DRM_PANEL_S6E8AA0 both explicitly depended on DRM_PANEL && DRM, whereas DRM_PANEL_SIMPLE relies upon the dependency on the menu. We do not need to use explicit dependencies if we make the menu depend on DRM_PANEL && DRM - this will implicitly make each entry in the menu depend on DRM_PANEL && DRM without this needing to be explicitly stated against every entry. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-09drm/panel: simple - Add AUO B133XTN01 panel supportStéphane Marchesin1-0/+25
This panel is used by nyan-big and can be supported by the simple-panel driver. Signed-off-by: Stéphane Marchesin <marcheu@chromium.org> [treding@nvidia.com: add device tree binding document] Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-05drm/panel: simple - Disable panel on shutdownThierry Reding1-0/+19
When a device is shut down, disable the panel to make sure the display backlight doesn't stay lit. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-05drm/panel: add support for EDT ET057090DHU panelStefan Agner1-0/+26
This panel is sold by Toradex for Colibri T20/T30 and Apalis T30 evaluation kits. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-05drm/panel: Add support for EDT ETM0700G0DH6 and ET070080DH6 panelsPhilipp Zabel1-0/+29
The EDT ETM0700G0DH6 and ET070080DH6 are 7" 800x480 panels, which can be supported by the simple panel driver. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-05drm/panel: ld9040: add power control sequenceAndrzej Hajda1-0/+3
Some ld9040 panels do not start without providing power control sequence during initialization. The patch fixes the driver by providing such sequence for all panels. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-06-05drm/panel: s6e8aa0: silence array overflow warningDan Carpenter1-0/+1
Smatch complains that we are reading beyond the end of the array here: drivers/gpu/drm/panel/panel-s6e8aa0.c:852 s6e8aa0_read_mtp_id() warn: buffer overflow 's6e8aa0_variants' 4 <= 4 We set the error code, so it's not harmful but it looks like a return was intended here so lets add that and silence the warning. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-04-05Merge tag 'drm/panel/for-3.15-rc1' of ↵Dave Airlie1-51/+106
git://anongit.freedesktop.org/tegra/linux into drm-next drm/panel: Changes for v3.15-rc1 Add support for a couple more simple panels. A few cleanups to the simple panel driver are also included (gpiod interface conversion, removal of redundant call to regulator_disable()). * tag 'drm/panel/for-3.15-rc1' of git://anongit.freedesktop.org/tegra/linux: drm/panel: add support for LG LD070WX3-SL01 panel drm/panel: add support for LG LH500WX1-SD03 panel drm/panel: simple: Allow DSI panels to provide mode flags drm/panel: simple: Allow GPIO accesses to sleep drm/panel: remove redundant regulator_disable() drm/panel: use gpiod interface for enable GPIO drm/panel: Add LG 12.9" LCD panel MAINTAINERS: Add entry for DRM panel drivers Conflicts: MAINTAINERS
2014-04-04drm/panel: add S6E8AA0 driverAndrzej Hajda3-0/+1077
The patch adds MIPI-DSI based S6E8AA0 AMOLED LCD panel driver. Driver uses mipi_dsi bus to communicate with panel and exposes drm_panel interface. v2 - added bus error handling, - set maxmimum DSI packet size on init, - removed unsupported brightness drm_panel callbacks, - minor improvements v3 - switched to gpiod framework, - minor fixes in error handling Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-04drm/panel: add ld9040 driverAndrzej Hajda3-0/+384
The patch adds LD9040 parallel RGB panel driver with SPI control interface. The driver uses drm_panel framework. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-04-04drm/panel: add support for LG LD070WX3-SL01 panelAlexandre Courbot1-0/+30
This panel is used by Tegra Note 7 and supported by the simple-panel driver. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-04-04drm/panel: add support for LG LH500WX1-SD03 panelAlexandre Courbot1-0/+30
This panel is used by the NVIDIA SHIELD and supported by the simple-panel driver. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-04-04drm/panel: simple: Allow DSI panels to provide mode flagsThierry Reding1-0/+3
In order to differentiate between the different video modes (burst vs. non-burst, sync pulses vs. sync events) supported by peripherals, pass the flags that specify this mode in the panel description to the DSI peripheral device when probed. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-04-04drm/panel: simple: Allow GPIO accesses to sleepThierry Reding1-2/+2
The enable GPIO for panels may be provided by GPIO expanders on slow busses (such as I2C), and therefore toggling the GPIO may sleep. Since these accesses don't happen in interrupt context, use the *_cansleep() variants of the GPIO API. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-04-04drm/panel: remove redundant regulator_disable()Alexandre Courbot1-2/+0
regulator_disable() is already performed by panel_simple_disable(), which is called by panel_simple_remove(). Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-04-04drm/panel: use gpiod interface for enable GPIOAlexandre Courbot1-49/+18
Use the new GPIO descriptor interface to handle the panel's enable GPIO. This considerably simplifies the code. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> [treding@nvidia.com: rework to improve readability] Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-04-04drm/panel: Add LG 12.9" LCD panelThierry Reding1-0/+25
The LP129QE LCD has an LED backlight and a display resolution of 2560x1700 pixels. Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-01-14drm/panel: update EDID BLOB in panel_simple_get_modes()Stephen Warren1-0/+1
This stashes away the EDID data so that the sysfs per-connector file "edid" can display it. Without this change, the "edid" file is always empty. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-01-08drm/panel: Add support for Chunghwa CLAA101WA01A panelStephen Warren1-0/+25
The Chunghwa CLAA101WA01A is a 10.1" 1366x768 panel, which can be supported by the simple panel driver. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-01-08drm/panel: Add support for Samsung LTN101NT05 panelMarc Dietrich1-0/+25
The Samsung LNT101NT05 10.1" WXVGA panel can be supported by the simple panel driver. Cc: linux-fbdev@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: David Airlie <airlied@linux.ie> Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Thierry Reding <treding@nvidia.com>
2013-12-17drm/panel: Add support for Panasonic VVX10F004B0Thierry Reding1-7/+87
The Panasonic VVX10F004B0 is a 10.1" WUXGA TFT LCD panel connected using four DSI lanes. Signed-off-by: Thierry Reding <treding@nvidia.com>
2013-12-17drm/panel: Add simple panel supportThierry Reding3-0/+432
Add a driver for simple panels. Such panels can have a regulator that provides the supply voltage and a separate GPIO to enable the panel. Optionally the panels can have a backlight associated with them so it can be enabled or disabled according to the panel's power management mode. Support is added for two panels: An AU Optronics 10.1" WSVGA and a Chunghwa Picture Tubes 10.1" WXGA panel. Signed-off-by: Thierry Reding <treding@nvidia.com>
2013-12-17drm: Add panel supportThierry Reding1-0/+5
Add a very simple framework to register and lookup panels. Panel drivers can initialize a DRM panel and register it with the framework, allowing them to be retrieved and used by display drivers. Currently only support for DPMS and obtaining panel modes is provided. However it should be sufficient to enable a large number of panels. The framework should also be easily extensible to support more sophisticated kinds of panels such as DSI. The framework hasn't been tied into the DRM core, even though it should be easily possible to do so if that's what we want. In the current implementation, display drivers can simple make use of it to retrieve a panel, obtain its modes and control its DPMS mode. Note that this is currently only tested on systems that boot from a device tree. No glue code has been written yet for systems that use platform data, but it should be easy to add. Signed-off-by: Thierry Reding <treding@nvidia.com>