From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Mavrodiev Subject: Re: [PATCH v2 1/1] drm/panel: Add support for Olimex LCD-OLinuXino panel Date: Tue, 10 Jul 2018 16:08:54 +0300 Message-ID: References: <1529909093-17021-1-git-send-email-stefan@olimex.com> <20180710103250.GG1504@ulmo> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <20180710103250.GG1504@ulmo> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Thierry Reding , Stefan Mavrodiev Cc: David Airlie , Rob Herring , Mark Rutland , "David S. Miller" , Mauro Carvalho Chehab , Greg Kroah-Hartman , Andrew Morton , Randy Dunlap , "open list:DRM PANEL DRIVERS" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , open list List-Id: devicetree@vger.kernel.org On 07/10/2018 01:32 PM, Thierry Reding wrote: > On Mon, Jun 25, 2018 at 09:44:35AM +0300, Stefan Mavrodiev wrote: >> This patch adds Olimex Ltd. LCD-OLinuXino bridge panel driver. The >> panel is used with different LCDs (currently from 480x272 to 1280x800). >> Small EEPROM chip is used for identification, which holds some >> factory data and timing requirements. >> >> Signed-off-by: Stefan Mavrodiev >> --- >> Changes for v2: >> - Changed lcd_olinuxino_funcs to static const >> >> .../display/panel/olimex,lcd-olinuxino.txt | 42 +++ >> MAINTAINERS | 6 + >> drivers/gpu/drm/panel/Kconfig | 10 + >> drivers/gpu/drm/panel/Makefile | 1 + >> drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c | 360 +++++++++++++++++++++ >> 5 files changed, 419 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt >> create mode 100644 drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c >> >> diff --git a/Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt b/Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt >> new file mode 100644 >> index 0000000..a89f9c8 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt >> @@ -0,0 +1,42 @@ >> +Binding for Olimex Ltd. LCD-OLinuXino bridge panel. >> + >> +This device can be used as bridge between a host controller and LCD panels. >> +Currently supported LCDs are: >> + - LCD-OLinuXino-4.3TS >> + - LCD-OLinuXino-5 >> + - LCD-OLinuXino-7 >> + - LCD-OLinuXino-10 >> + >> +The panel itself contains: >> + - AT24C16C EEPROM holding panel identification and timing requirements >> + - AR1021 resistive touch screen controller (optional) >> + - FT5x6 capacitive touch screnn controller (optional) >> + - GT911/GT928 capacitive touch screen controller (optional) >> + >> +The above chips share same I2C bus. The EEPROM is factory preprogrammed with >> +device information (id, serial, etc.) and timing requirements. >> + >> +Touchscreen bingings can be found in these files: >> + - input/touchscreen/goodix.txt >> + - input/touchscreen/edt-ft5x06.txt >> + - input/touchscreen/ar1021.txt >> + >> +Required properties: >> + - compatible: should be "olimex,lcd-olinuxino" >> + - reg: address of the configuration EEPROM, should be <0x50> >> + - power-supply: phandle of the regulator that provides the supply voltage >> + >> +Optional properties: >> + - enable-gpios: GPIO pin to enable or disable the panel >> + - backlight: phandle of the backlight device attacked to the panel >> + >> +Example: >> +&i2c2 { >> + panel@50 { >> + compatible = "olimex,lcd-olinuxino"; >> + reg = <0x50>; >> + power-supply = <®_vcc5v0>; >> + enable-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; >> + backlight = <&backlight>; >> + }; >> +}; >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 624c3fd..30343f1 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -4557,6 +4557,12 @@ S: Supported >> F: drivers/gpu/drm/nouveau/ >> F: include/uapi/drm/nouveau_drm.h >> >> +DRM DRIVER FOR OLIMEX LCD-OLINUXINO PANELS >> +M: Stefan Mavrodiev >> +S: Maintained >> +F: drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c >> +F: Documentation/devicetree/bindings/display/panel/olimex,lcd-olinuxino.txt >> + >> DRM DRIVER FOR PERVASIVE DISPLAYS REPAPER PANELS >> M: Noralf Trønnes >> S: Maintained >> diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig >> index 25682ff..0292994 100644 >> --- a/drivers/gpu/drm/panel/Kconfig >> +++ b/drivers/gpu/drm/panel/Kconfig >> @@ -81,6 +81,16 @@ config DRM_PANEL_LG_LG4573 >> Say Y here if you want to enable support for LG4573 RGB panel. >> To compile this driver as a module, choose M here. >> >> +config DRM_PANEL_OLIMEX_LCD_OLINUXINO >> + tristate "Olimex LCD-OLinuXino panel" >> + depends on OF >> + depends on I2C >> + depends on BACKLIGHT_CLASS_DEVICE >> + help >> + Say Y here if you want to enable support for Olimex Ltd. >> + LCD-OLinuXino panel. The panel is used with different sizes LCDs, >> + from 480x272 to 1280x800, and 24 bit per pixel. >> + >> config DRM_PANEL_ORISETECH_OTM8009A >> tristate "Orise Technology otm8009a 480x800 dsi 2dl panel" >> depends on OF >> diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile >> index f26efc1..185027f 100644 >> --- a/drivers/gpu/drm/panel/Makefile >> +++ b/drivers/gpu/drm/panel/Makefile >> @@ -6,6 +6,7 @@ obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) += panel-ilitek-ili9322.o >> obj-$(CONFIG_DRM_PANEL_INNOLUX_P079ZCA) += panel-innolux-p079zca.o >> obj-$(CONFIG_DRM_PANEL_JDI_LT070ME05000) += panel-jdi-lt070me05000.o >> obj-$(CONFIG_DRM_PANEL_LG_LG4573) += panel-lg-lg4573.o >> +obj-$(CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO) += panel-olimex-lcd-olinuxino.o >> obj-$(CONFIG_DRM_PANEL_ORISETECH_OTM8009A) += panel-orisetech-otm8009a.o >> obj-$(CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00) += panel-panasonic-vvx10f034n00.o >> obj-$(CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN) += panel-raspberrypi-touchscreen.o >> diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c >> new file mode 100644 >> index 0000000..89d7816 >> --- /dev/null >> +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c >> @@ -0,0 +1,360 @@ >> +// SPDX-License-Identifier: GPL-2.0+ >> +/* >> + * LCD-OLinuXino support for panel driver >> + * >> + * Copyright (C) 2018 Olimex Ltd. >> + * Author: Stefan Mavrodiev >> + */ >> + >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> + >> +#include >> +#include >> +#include >> + >> +#include