From 2c3c1048746a4622d8c89a29670120dc8fab93c4 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:49:45 +0200 Subject: Adding upstream version 6.1.76. Signed-off-by: Daniel Baumann --- drivers/video/fbdev/omap2/omapfb/Kconfig | 41 + drivers/video/fbdev/omap2/omapfb/Makefile | 6 + drivers/video/fbdev/omap2/omapfb/displays/Kconfig | 93 + drivers/video/fbdev/omap2/omapfb/displays/Makefile | 15 + .../omap2/omapfb/displays/connector-analog-tv.c | 306 ++ .../fbdev/omap2/omapfb/displays/connector-dvi.c | 345 ++ .../fbdev/omap2/omapfb/displays/connector-hdmi.c | 310 ++ .../fbdev/omap2/omapfb/displays/encoder-opa362.c | 275 + .../fbdev/omap2/omapfb/displays/encoder-tfp410.c | 285 + .../omap2/omapfb/displays/encoder-tpd12s015.c | 328 ++ .../video/fbdev/omap2/omapfb/displays/panel-dpi.c | 320 ++ .../fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 1329 +++++ .../omapfb/displays/panel-lgphilips-lb035q02.c | 354 ++ .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 393 ++ .../omapfb/displays/panel-sharp-ls037v7dw01.c | 333 ++ .../omap2/omapfb/displays/panel-sony-acx565akm.c | 899 ++++ .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 477 ++ .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 642 +++ drivers/video/fbdev/omap2/omapfb/dss/Kconfig | 111 + drivers/video/fbdev/omap2/omapfb/dss/Makefile | 18 + drivers/video/fbdev/omap2/omapfb/dss/apply.c | 1689 ++++++ drivers/video/fbdev/omap2/omapfb/dss/core.c | 288 + .../video/fbdev/omap2/omapfb/dss/dispc-compat.c | 657 +++ .../video/fbdev/omap2/omapfb/dss/dispc-compat.h | 19 + drivers/video/fbdev/omap2/omapfb/dss/dispc.c | 4093 ++++++++++++++ drivers/video/fbdev/omap2/omapfb/dss/dispc.h | 907 ++++ drivers/video/fbdev/omap2/omapfb/dss/dispc_coefs.c | 314 ++ .../video/fbdev/omap2/omapfb/dss/display-sysfs.c | 346 ++ drivers/video/fbdev/omap2/omapfb/dss/display.c | 327 ++ drivers/video/fbdev/omap2/omapfb/dss/dpi.c | 888 ++++ drivers/video/fbdev/omap2/omapfb/dss/dsi.c | 5585 ++++++++++++++++++++ drivers/video/fbdev/omap2/omapfb/dss/dss-of.c | 176 + drivers/video/fbdev/omap2/omapfb/dss/dss.c | 1299 +++++ drivers/video/fbdev/omap2/omapfb/dss/dss.h | 522 ++ .../video/fbdev/omap2/omapfb/dss/dss_features.c | 939 ++++ .../video/fbdev/omap2/omapfb/dss/dss_features.h | 97 + drivers/video/fbdev/omap2/omapfb/dss/hdmi.h | 360 ++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c | 812 +++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4_core.c | 885 ++++ drivers/video/fbdev/omap2/omapfb/dss/hdmi4_core.h | 262 + drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c | 854 +++ drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c | 897 ++++ drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.h | 293 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_common.c | 149 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_phy.c | 221 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_pll.c | 235 + drivers/video/fbdev/omap2/omapfb/dss/hdmi_wp.c | 281 + .../video/fbdev/omap2/omapfb/dss/manager-sysfs.c | 515 ++ drivers/video/fbdev/omap2/omapfb/dss/manager.c | 251 + .../fbdev/omap2/omapfb/dss/omapdss-boot-init.c | 218 + drivers/video/fbdev/omap2/omapfb/dss/output.c | 256 + .../video/fbdev/omap2/omapfb/dss/overlay-sysfs.c | 446 ++ drivers/video/fbdev/omap2/omapfb/dss/overlay.c | 191 + drivers/video/fbdev/omap2/omapfb/dss/pll.c | 378 ++ drivers/video/fbdev/omap2/omapfb/dss/sdi.c | 443 ++ drivers/video/fbdev/omap2/omapfb/dss/venc.c | 942 ++++ drivers/video/fbdev/omap2/omapfb/dss/video-pll.c | 189 + drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c | 916 ++++ drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2636 +++++++++ drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c | 587 ++ drivers/video/fbdev/omap2/omapfb/omapfb.h | 196 + drivers/video/fbdev/omap2/omapfb/vrfb.c | 385 ++ 62 files changed, 38824 insertions(+) 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/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/omapfb') diff --git a/drivers/video/fbdev/omap2/omapfb/Kconfig b/drivers/video/fbdev/omap2/omapfb/Kconfig new file mode 100644 index 000000000..69f9cb035 --- /dev/null +++ b/drivers/video/fbdev/omap2/omapfb/Kconfig @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: GPL-2.0-only +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..3ca1bd7bb --- /dev/null +++ b/drivers/video/fbdev/omap2/omapfb/displays/Kconfig @@ -0,0 +1,93 @@ +# SPDX-License-Identifier: GPL-2.0-only +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 + depends on DRM_PANEL_DSI_CM = n + help + Driver for generic DSI command mode panels. + +config FB_OMAP2_PANEL_SONY_ACX565AKM + tristate "ACX565AKM Panel" + depends on SPI && BACKLIGHT_CLASS_DEVICE + depends on DRM_PANEL_SONY_ACX565AKM = n + 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 + depends on DRM_PANEL_SHARP_LS037V7DW01 = n + 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 + depends on DRM_PANEL_TPO_TD028TTEC1 = n + help + LCD panel used in Openmoko. + +config FB_OMAP2_PANEL_TPO_TD043MTEA1 + tristate "TPO TD043MTEA1 LCD Panel" + depends on SPI + depends on DRM_PANEL_TPO_TD043MTEA1 = n + 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 + depends on DRM_PANEL_NEC_NL8048HL11 = n + 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..a9fd732f8 --- /dev/null +++ b/drivers/video/fbdev/omap2/omapfb/displays/connector-analog-tv.c @@ -0,0 +1,306 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Analog TV Connector driver + * + * Copyright (C) 2013 Texas Instruments + * Author: Tomi Valkeinen + */ + +#include +#include +#include +#include + +#include