From 76cb841cb886eef6b3bee341a2266c76578724ad Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 6 May 2024 03:02:30 +0200 Subject: Adding upstream version 4.19.249. Signed-off-by: Daniel Baumann --- drivers/video/fbdev/omap2/Kconfig | 5 + drivers/video/fbdev/omap2/Makefile | 1 + drivers/video/fbdev/omap2/omapfb/Kconfig | 40 + drivers/video/fbdev/omap2/omapfb/Makefile | 6 + drivers/video/fbdev/omap2/omapfb/displays/Kconfig | 86 + drivers/video/fbdev/omap2/omapfb/displays/Makefile | 15 + .../omap2/omapfb/displays/connector-analog-tv.c | 314 ++ .../fbdev/omap2/omapfb/displays/connector-dvi.c | 353 ++ .../fbdev/omap2/omapfb/displays/connector-hdmi.c | 318 ++ .../fbdev/omap2/omapfb/displays/encoder-opa362.c | 278 + .../fbdev/omap2/omapfb/displays/encoder-tfp410.c | 288 + .../omap2/omapfb/displays/encoder-tpd12s015.c | 331 ++ .../video/fbdev/omap2/omapfb/displays/panel-dpi.c | 328 ++ .../fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 1332 +++++ .../omapfb/displays/panel-lgphilips-lb035q02.c | 360 ++ .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 404 ++ .../omapfb/displays/panel-sharp-ls037v7dw01.c | 342 ++ .../omap2/omapfb/displays/panel-sony-acx565akm.c | 917 ++++ .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 490 ++ .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 654 +++ drivers/video/fbdev/omap2/omapfb/dss/Kconfig | 130 + drivers/video/fbdev/omap2/omapfb/dss/Makefile | 19 + drivers/video/fbdev/omap2/omapfb/dss/apply.c | 1702 ++++++ drivers/video/fbdev/omap2/omapfb/dss/core.c | 337 ++ .../video/fbdev/omap2/omapfb/dss/dispc-compat.c | 668 +++ .../video/fbdev/omap2/omapfb/dss/dispc-compat.h | 30 + drivers/video/fbdev/omap2/omapfb/dss/dispc.c | 4220 +++++++++++++++ drivers/video/fbdev/omap2/omapfb/dss/dispc.h | 919 ++++ drivers/video/fbdev/omap2/omapfb/dss/dispc_coefs.c | 325 ++ .../video/fbdev/omap2/omapfb/dss/display-sysfs.c | 356 ++ drivers/video/fbdev/omap2/omapfb/dss/display.c | 338 ++ drivers/video/fbdev/omap2/omapfb/dss/dpi.c | 899 ++++ drivers/video/fbdev/omap2/omapfb/dss/dsi.c | 5598 ++++++++++++++++++++ drivers/video/fbdev/omap2/omapfb/dss/dss-of.c | 184 + drivers/video/fbdev/omap2/omapfb/dss/dss.c | 1318 +++++ drivers/video/fbdev/omap2/omapfb/dss/dss.h | 557 ++ .../video/fbdev/omap2/omapfb/dss/dss_features.c | 950 ++++ .../video/fbdev/omap2/omapfb/dss/dss_features.h | 108 + drivers/video/fbdev/omap2/omapfb/dss/hdmi.h | 371 ++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c | 827 +++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4_core.c | 904 ++++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4_core.h | 273 + drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c | 867 +++ drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c | 916 ++++ drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.h | 304 ++ drivers/video/fbdev/omap2/omapfb/dss/hdmi_common.c | 149 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_phy.c | 232 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_pll.c | 256 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_wp.c | 284 + .../video/fbdev/omap2/omapfb/dss/manager-sysfs.c | 525 ++ drivers/video/fbdev/omap2/omapfb/dss/manager.c | 262 + .../fbdev/omap2/omapfb/dss/omapdss-boot-init.c | 225 + drivers/video/fbdev/omap2/omapfb/dss/output.c | 267 + .../video/fbdev/omap2/omapfb/dss/overlay-sysfs.c | 456 ++ drivers/video/fbdev/omap2/omapfb/dss/overlay.c | 202 + drivers/video/fbdev/omap2/omapfb/dss/pll.c | 389 ++ drivers/video/fbdev/omap2/omapfb/dss/rfbi.c | 1078 ++++ drivers/video/fbdev/omap2/omapfb/dss/sdi.c | 454 ++ drivers/video/fbdev/omap2/omapfb/dss/venc.c | 1000 ++++ drivers/video/fbdev/omap2/omapfb/dss/video-pll.c | 211 + drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c | 930 ++++ drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2656 ++++++++++ drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c | 605 +++ drivers/video/fbdev/omap2/omapfb/omapfb.h | 207 + drivers/video/fbdev/omap2/omapfb/vrfb.c | 399 ++ 65 files changed, 40769 insertions(+) create mode 100644 drivers/video/fbdev/omap2/Kconfig create mode 100644 drivers/video/fbdev/omap2/Makefile create mode 100644 drivers/video/fbdev/omap2/omapfb/Kconfig create mode 100644 drivers/video/fbdev/omap2/omapfb/Makefile create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/Kconfig create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/Makefile create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/connector-dvi.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/connector-hdmi.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/encoder-opa362.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/encoder-tfp410.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/encoder-tpd12s015.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/panel-dpi.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/panel-dsi-cm.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/panel-sharp-ls037v7dw01.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c create mode 100644 drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/Kconfig create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/Makefile create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/apply.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/core.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dispc-compat.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dispc-compat.h create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dispc.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dispc.h create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dispc_coefs.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/display-sysfs.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/display.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dpi.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dsi.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dss-of.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dss.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dss.h create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dss_features.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/dss_features.h create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi.h create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi4_core.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi4_core.h create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.h create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi_common.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi_phy.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi_pll.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/hdmi_wp.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/manager-sysfs.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/manager.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/omapdss-boot-init.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/output.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/overlay-sysfs.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/overlay.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/pll.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/rfbi.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/sdi.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/venc.c create mode 100644 drivers/video/fbdev/omap2/omapfb/dss/video-pll.c create mode 100644 drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c create mode 100644 drivers/video/fbdev/omap2/omapfb/omapfb-main.c create mode 100644 drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c create mode 100644 drivers/video/fbdev/omap2/omapfb/omapfb.h create mode 100644 drivers/video/fbdev/omap2/omapfb/vrfb.c (limited to 'drivers/video/fbdev/omap2') diff --git a/drivers/video/fbdev/omap2/Kconfig b/drivers/video/fbdev/omap2/Kconfig new file mode 100644 index 000000000..4de381f24 --- /dev/null +++ b/drivers/video/fbdev/omap2/Kconfig @@ -0,0 +1,5 @@ +if OF && (ARCH_OMAP2PLUS || COMPILE_TEST) + +source "drivers/video/fbdev/omap2/omapfb/Kconfig" + +endif diff --git a/drivers/video/fbdev/omap2/Makefile b/drivers/video/fbdev/omap2/Makefile new file mode 100644 index 000000000..71ab5ac91 --- /dev/null +++ b/drivers/video/fbdev/omap2/Makefile @@ -0,0 +1 @@ +obj-y += omapfb/ diff --git a/drivers/video/fbdev/omap2/omapfb/Kconfig b/drivers/video/fbdev/omap2/omapfb/Kconfig new file mode 100644 index 000000000..3bf154e67 --- /dev/null +++ b/drivers/video/fbdev/omap2/omapfb/Kconfig @@ -0,0 +1,40 @@ +config OMAP2_VRFB + bool + +menuconfig FB_OMAP2 + tristate "OMAP2+ frame buffer support" + depends on FB + depends on DRM_OMAP = n + depends on GPIOLIB + + select FB_OMAP2_DSS + select OMAP2_VRFB if ARCH_OMAP2 || ARCH_OMAP3 + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT + help + Frame buffer driver for OMAP2+ based boards. + +if FB_OMAP2 + +config FB_OMAP2_DEBUG_SUPPORT + bool "Debug support for OMAP2+ FB" + default y + depends on FB_OMAP2 + help + Support for debug output. You have to enable the actual printing + with 'debug' module parameter. + +config FB_OMAP2_NUM_FBS + int "Number of framebuffers" + range 1 10 + default 3 + depends on FB_OMAP2 + help + Select the number of framebuffers created. OMAP2/3 has 3 overlays + so normally this would be 3. + +source "drivers/video/fbdev/omap2/omapfb/dss/Kconfig" +source "drivers/video/fbdev/omap2/omapfb/displays/Kconfig" + +endif diff --git a/drivers/video/fbdev/omap2/omapfb/Makefile b/drivers/video/fbdev/omap2/omapfb/Makefile new file mode 100644 index 000000000..f54c3f56b --- /dev/null +++ b/drivers/video/fbdev/omap2/omapfb/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_OMAP2_VRFB) += vrfb.o +obj-y += dss/ +obj-y += displays/ +obj-$(CONFIG_FB_OMAP2) += omap2fb.o +omap2fb-y := omapfb-main.o omapfb-sysfs.o omapfb-ioctl.o diff --git a/drivers/video/fbdev/omap2/omapfb/displays/Kconfig b/drivers/video/fbdev/omap2/omapfb/displays/Kconfig new file mode 100644 index 000000000..08f12039d --- /dev/null +++ b/drivers/video/fbdev/omap2/omapfb/displays/Kconfig @@ -0,0 +1,86 @@ +menu "OMAPFB Panel and Encoder Drivers" + depends on FB_OMAP2_DSS + +config FB_OMAP2_ENCODER_OPA362 + tristate "OPA362 external analog amplifier" + help + Driver for OPA362 external analog TV amplifier controlled + through a GPIO. + +config FB_OMAP2_ENCODER_TFP410 + tristate "TFP410 DPI to DVI Encoder" + help + Driver for TFP410 DPI to DVI encoder. + +config FB_OMAP2_ENCODER_TPD12S015 + tristate "TPD12S015 HDMI ESD protection and level shifter" + help + Driver for TPD12S015, which offers HDMI ESD protection and level + shifting. + +config FB_OMAP2_CONNECTOR_DVI + tristate "DVI Connector" + depends on I2C + help + Driver for a generic DVI connector. + +config FB_OMAP2_CONNECTOR_HDMI + tristate "HDMI Connector" + help + Driver for a generic HDMI connector. + +config FB_OMAP2_CONNECTOR_ANALOG_TV + tristate "Analog TV Connector" + help + Driver for a generic analog TV connector. + +config FB_OMAP2_PANEL_DPI + tristate "Generic DPI panel" + help + Driver for generic DPI panels. + +config FB_OMAP2_PANEL_DSI_CM + tristate "Generic DSI Command Mode Panel" + depends on BACKLIGHT_CLASS_DEVICE + help + Driver for generic DSI command mode panels. + +config FB_OMAP2_PANEL_SONY_ACX565AKM + tristate "ACX565AKM Panel" + depends on SPI && BACKLIGHT_CLASS_DEVICE + help + This is the LCD panel used on Nokia N900 + +config FB_OMAP2_PANEL_LGPHILIPS_LB035Q02 + tristate "LG.Philips LB035Q02 LCD Panel" + depends on SPI + help + LCD Panel used on the Gumstix Overo Palo35 + +config FB_OMAP2_PANEL_SHARP_LS037V7DW01 + tristate "Sharp LS037V7DW01 LCD Panel" + depends on BACKLIGHT_CLASS_DEVICE + help + LCD Panel used in TI's SDP3430 and EVM boards + +config FB_OMAP2_PANEL_TPO_TD028TTEC1 + tristate "TPO TD028TTEC1 LCD Panel" + depends on SPI + help + LCD panel used in Openmoko. + +config FB_OMAP2_PANEL_TPO_TD043MTEA1 + tristate "TPO TD043MTEA1 LCD Panel" + depends on SPI + help + LCD Panel used in OMAP3 Pandora + +config FB_OMAP2_PANEL_NEC_NL8048HL11 + tristate "NEC NL8048HL11 Panel" + depends on SPI + depends on BACKLIGHT_CLASS_DEVICE + help + This NEC NL8048HL11 panel is TFT LCD used in the + Zoom2/3/3630 sdp boards. + +endmenu diff --git a/drivers/video/fbdev/omap2/omapfb/displays/Makefile b/drivers/video/fbdev/omap2/omapfb/displays/Makefile new file mode 100644 index 000000000..f801762ce --- /dev/null +++ b/drivers/video/fbdev/omap2/omapfb/displays/Makefile @@ -0,0 +1,15 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_FB_OMAP2_ENCODER_OPA362) += encoder-opa362.o +obj-$(CONFIG_FB_OMAP2_ENCODER_TFP410) += encoder-tfp410.o +obj-$(CONFIG_FB_OMAP2_ENCODER_TPD12S015) += encoder-tpd12s015.o +obj-$(CONFIG_FB_OMAP2_CONNECTOR_DVI) += connector-dvi.o +obj-$(CONFIG_FB_OMAP2_CONNECTOR_HDMI) += connector-hdmi.o +obj-$(CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV) += connector-analog-tv.o +obj-$(CONFIG_FB_OMAP2_PANEL_DPI) += panel-dpi.o +obj-$(CONFIG_FB_OMAP2_PANEL_DSI_CM) += panel-dsi-cm.o +obj-$(CONFIG_FB_OMAP2_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o +obj-$(CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02) += panel-lgphilips-lb035q02.o +obj-$(CONFIG_FB_OMAP2_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o +obj-$(CONFIG_FB_OMAP2_PANEL_TPO_TD028TTEC1) += panel-tpo-td028ttec1.o +obj-$(CONFIG_FB_OMAP2_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o +obj-$(CONFIG_FB_OMAP2_PANEL_NEC_NL8048HL11) += panel-nec-nl8048hl11.o diff --git a/drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c b/drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c new file mode 100644 index 000000000..9d78411a3 --- /dev/null +++ b/drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c @@ -0,0 +1,314 @@ +/* + * Analog TV Connector driver + * + * Copyright (C) 2013 Texas Instruments + * Author: Tomi Valkeinen + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include +#include +#include +#include + +#include