diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2022-03-19 13:42:33 +0000 |
---|---|---|
committer | Felix Singer <service+coreboot-gerrit@felixsinger.de> | 2024-02-14 00:13:10 +0000 |
commit | a88dd4b6fbac8748a6f4580ad6363da47f5b3bc2 (patch) | |
tree | 584f8e15e6cdd0b71a400d0dd8eed86d5c57a706 /src/mainboard/lenovo | |
parent | 867061191944b86829a0cc981f36682b34c519ac (diff) |
mb/lenovo/x230: introduce EDP variant
There is a modification for the x230 which uses the 2nd DP from the
dock as the integrated panel's connection, which allows using a custom
eDP panel instead of the stock LVDS display.
There are several adapter boards present on the market and all of them
use the same method of enabling the custom eDP panel.
To make this work with coreboot, the internal LVDS connector should be
disabled in libgfxinit. Additionally, VBT has been modified to keep
brightness controls functional on the adapter boards that use LVDS for
the job.
The modifications done to the VBT are:
- Remove the LVDS port entry.
- Move the DP-3 (which is the 2nd DP on the dock) entry to the first
position on the list.
- Set the DP-3 as internally connected.
This has been reported to work with the following panels:
- LP125WF2-SPB4 (1920*1080, 12.5")
- LQ125T1JW02 (2560*1440, 12.5")
- LQ133M1JW21 (1920*1080, 13.3")
- LTN133HL10-201 (1920*1080, 13.3")
- B133HAN04.6 (1920*1080, 13.3")
- B133QAN02.0 (2560*1600, 13.3")
Other eDP panels not on this list should work as well.
Change-Id: I0355d39a61956792e69bccd5274cfc2749d72bf0
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Signed-off-by: Alexei Sorokin <sor.alexei@meowr.ru>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/28950
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Diffstat (limited to 'src/mainboard/lenovo')
-rw-r--r-- | src/mainboard/lenovo/x230/Kconfig | 15 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/Kconfig.name | 3 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/Makefile.mk | 5 | ||||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230_edp/data.vbt | bin | 0 -> 4281 bytes | |||
-rw-r--r-- | src/mainboard/lenovo/x230/variants/x230_edp/gma-mainboard.ads | 21 |
5 files changed, 38 insertions, 6 deletions
diff --git a/src/mainboard/lenovo/x230/Kconfig b/src/mainboard/lenovo/x230/Kconfig index 279095629b..78b2373c2d 100644 --- a/src/mainboard/lenovo/x230/Kconfig +++ b/src/mainboard/lenovo/x230/Kconfig @@ -1,4 +1,4 @@ -if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T || BOARD_LENOVO_X230S +if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T || BOARD_LENOVO_X230S || BOARD_LENOVO_X230_EDP config BOARD_SPECIFIC_OPTIONS def_bool y @@ -11,7 +11,7 @@ config BOARD_SPECIFIC_OPTIONS select H8_HAS_BAT_THRESHOLDS_IMPL select H8_HAS_PRIMARY_FN_KEYS if BOARD_LENOVO_X230S select NO_UART_ON_SUPERIO - select BOARD_ROMSIZE_KB_12288 if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T + select BOARD_ROMSIZE_KB_12288 if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T || BOARD_LENOVO_X230_EDP select BOARD_ROMSIZE_KB_16384 if BOARD_LENOVO_X230S select HAVE_ACPI_TABLES select HAVE_OPTION_TABLE @@ -20,7 +20,7 @@ config BOARD_SPECIFIC_OPTIONS select INTEL_INT15 select DRIVERS_RICOH_RCE822 select MEMORY_MAPPED_TPM - select MAINBOARD_HAS_TPM1 if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T + select MAINBOARD_HAS_TPM1 if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T || BOARD_LENOVO_X230_EDP select MAINBOARD_HAS_LIBGFXINIT select GFX_GMA_PANEL_1_ON_LVDS if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T select INTEL_GMA_HAVE_VBT @@ -47,17 +47,20 @@ config MAINBOARD_DIR default "lenovo/x230" config VARIANT_DIR - default "x230" if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T + default "x230" if BOARD_LENOVO_X230 || BOARD_LENOVO_X230T || BOARD_LENOVO_X230_EDP default "x230s" if BOARD_LENOVO_X230S config MAINBOARD_PART_NUMBER - default "ThinkPad X230" if BOARD_LENOVO_X230 + default "ThinkPad X230" if BOARD_LENOVO_X230 || BOARD_LENOVO_X230_EDP default "ThinkPad X230t" if BOARD_LENOVO_X230T default "ThinkPad X230s" if BOARD_LENOVO_X230S config OVERRIDE_DEVICETREE default "variants/\$(CONFIG_VARIANT_DIR)/overridetree.cb" +config INTEL_GMA_VBT_FILE + default "src/mainboard/\$(MAINBOARDDIR)/variants/x230_edp/data.vbt" if BOARD_LENOVO_X230_EDP + config USBDEBUG_HCD_INDEX int default 2 @@ -79,4 +82,4 @@ config PS2M_EISAID config THINKPADEC_HKEY_EISAID default "LEN0068" -endif # BOARD_LENOVO_X230 || BOARD_LENOVO_X230T || BOARD_LENOVO_X230S +endif # BOARD_LENOVO_X230 || BOARD_LENOVO_X230T || BOARD_LENOVO_X230S || BOARD_LENOVO_X230_EDP diff --git a/src/mainboard/lenovo/x230/Kconfig.name b/src/mainboard/lenovo/x230/Kconfig.name index 1a01436879..e7290a12dd 100644 --- a/src/mainboard/lenovo/x230/Kconfig.name +++ b/src/mainboard/lenovo/x230/Kconfig.name @@ -6,3 +6,6 @@ config BOARD_LENOVO_X230T config BOARD_LENOVO_X230S bool "ThinkPad X230s" + +config BOARD_LENOVO_X230_EDP + bool "ThinkPad X230 eDP Mod (2K/FHD)" diff --git a/src/mainboard/lenovo/x230/Makefile.mk b/src/mainboard/lenovo/x230/Makefile.mk index 8e801f145d..6e6f9f90b9 100644 --- a/src/mainboard/lenovo/x230/Makefile.mk +++ b/src/mainboard/lenovo/x230/Makefile.mk @@ -5,4 +5,9 @@ bootblock-y += variants/$(VARIANT_DIR)/gpio.c romstage-y += variants/$(VARIANT_DIR)/early_init.c romstage-y += variants/$(VARIANT_DIR)/gpio.c ramstage-y += variants/$(VARIANT_DIR)/hda_verb.c + +ifeq ($(CONFIG_BOARD_LENOVO_X230_EDP),y) +ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/x230_edp/gma-mainboard.ads +else ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads +endif diff --git a/src/mainboard/lenovo/x230/variants/x230_edp/data.vbt b/src/mainboard/lenovo/x230/variants/x230_edp/data.vbt Binary files differnew file mode 100644 index 0000000000..13384d4557 --- /dev/null +++ b/src/mainboard/lenovo/x230/variants/x230_edp/data.vbt diff --git a/src/mainboard/lenovo/x230/variants/x230_edp/gma-mainboard.ads b/src/mainboard/lenovo/x230/variants/x230_edp/gma-mainboard.ads new file mode 100644 index 0000000000..f7cf0bc264 --- /dev/null +++ b/src/mainboard/lenovo/x230/variants/x230_edp/gma-mainboard.ads @@ -0,0 +1,21 @@ +-- SPDX-License-Identifier: GPL-2.0-or-later + +with HW.GFX.GMA; +with HW.GFX.GMA.Display_Probing; + +use HW.GFX.GMA; +use HW.GFX.GMA.Display_Probing; + +private package GMA.Mainboard is + + ports : constant Port_List := + (DP1, + DP2, + DP3, + HDMI1, + HDMI2, + HDMI3, + Analog, + others => Disabled); + +end GMA.Mainboard; |