libreboot

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit f0d737a2781c3e6c1c490ed074fe1ecad32721c5
parent 20a56e21fa8011086ba18fffd430fd5ad0b4de07
Author: Francis Rowe <info@gluglug.org.uk>
Date:   Sun, 17 May 2015 13:01:28 +0100

coreboot-libre: backport patches for X200 Tablet digitizer support

Diffstat:
docs/git/index.html | 1+
docs/release.html | 1+
resources/libreboot/config/x200_4mb/config | 6+++++-
resources/libreboot/config/x200_8mb/config | 6+++++-
resources/libreboot/patch/0023-lenovo-x200-Enable-wacom-digitizer-support-for-x200t.patch | 117+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
resources/scripts/helpers/download/coreboot | 6++++++
6 files changed, 135 insertions(+), 2 deletions(-)

diff --git a/docs/git/index.html b/docs/git/index.html @@ -439,6 +439,7 @@ <li>Generic Drivers / USB 2.0 EHCI debug dongle support = <i>Enable</i></li> <li>Generic Drivers / Enable early (pre-RAM) usbdebug = <i>Enable</i></li> <li>Generic Drivers / Type of dongle = <i>Net20DC or compatible</i></li> + <li>Generic Drivers / Digitizer = <i>Present</i></li> <li>Console / USB dongle console output = <i>enable</i></li> <li>Payload / Add a payload = <i>An ELF executable payload</i></li> diff --git a/docs/release.html b/docs/release.html @@ -114,6 +114,7 @@ Changes for this release (earliest changes last, recent changes first) </h2> <ul> + <li>coreboot-libre: backport patches for X200 Tablet digitizer support</li> <li>build/release/archives: create SHA512 sum manifest file of the release archives</li> <li>build/release/archives: separate crossgcc into a new archive</li> <li>disabled generation of txtmode ROM images for now (they will be back again in the next release)</li> diff --git a/resources/libreboot/config/x200_4mb/config b/resources/libreboot/config/x200_4mb/config @@ -288,6 +288,7 @@ CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y # # Super I/O # +CONFIG_SUPERIO_NSC_PC87382=y # # Embedded Controllers @@ -353,7 +354,10 @@ CONFIG_INTEL_EDID=y CONFIG_INTEL_INT15=y # CONFIG_DRIVER_INTEL_I210 is not set # CONFIG_IPMI_KCS is not set -# CONFIG_DRIVERS_LENOVO_WACOM is not set +CONFIG_DRIVERS_LENOVO_WACOM=y +# CONFIG_DIGITIZER_AUTODETECT is not set +CONFIG_DIGITIZER_PRESENT=y +# CONFIG_DIGITIZER_ABSENT is not set # CONFIG_DRIVER_MAXIM_MAX77686 is not set # CONFIG_DRIVER_PARADE_PS8625 is not set # CONFIG_LPC_TPM is not set diff --git a/resources/libreboot/config/x200_8mb/config b/resources/libreboot/config/x200_8mb/config @@ -288,6 +288,7 @@ CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y # # Super I/O # +CONFIG_SUPERIO_NSC_PC87382=y # # Embedded Controllers @@ -353,7 +354,10 @@ CONFIG_INTEL_EDID=y CONFIG_INTEL_INT15=y # CONFIG_DRIVER_INTEL_I210 is not set # CONFIG_IPMI_KCS is not set -# CONFIG_DRIVERS_LENOVO_WACOM is not set +CONFIG_DRIVERS_LENOVO_WACOM=y +# CONFIG_DIGITIZER_AUTODETECT is not set +CONFIG_DIGITIZER_PRESENT=y +# CONFIG_DIGITIZER_ABSENT is not set # CONFIG_DRIVER_MAXIM_MAX77686 is not set # CONFIG_DRIVER_PARADE_PS8625 is not set # CONFIG_LPC_TPM is not set diff --git a/resources/libreboot/patch/0023-lenovo-x200-Enable-wacom-digitizer-support-for-x200t.patch b/resources/libreboot/patch/0023-lenovo-x200-Enable-wacom-digitizer-support-for-x200t.patch @@ -0,0 +1,117 @@ +From 201f57c0a7dfa37bbb47a3f989d35ff00f6a9fe6 Mon Sep 17 00:00:00 2001 +From: Alex David <opdecirkel@gmail.com> +Date: Sun, 17 May 2015 12:52:54 +0100 +Subject: [PATCH] lenovo/x200: Enable wacom digitizer support for x200t + +This patch is based on commit f2b3cd63 +(lenovo/x60: Support digitizer on X60t and X201t) + +Tested on Thinkpad X200 Tablet (7450): all pen functionallity +works (i.e. movements, presure sensitivity and buttons) + +THIS IS A REBASE (BACKPORT) +It's used on an older coreboot revision for this release. +This patch will be deleted when libreboot next updates +itself, because the patch is merged now in coreboot upstream. + +Signed-off-by: Alex David <opdecirkel@gmail.com> +Signed-off-by: Francis Rowe <info@gluglug.org.uk> +--- + src/drivers/lenovo/wacom.c | 3 ++- + src/mainboard/lenovo/x200/Kconfig | 2 ++ + src/mainboard/lenovo/x200/devicetree.cb | 16 ++++++++++++++++ + src/mainboard/lenovo/x200/mainboard.c | 7 +++++++ + 4 files changed, 27 insertions(+), 1 deletion(-) + +diff --git a/src/drivers/lenovo/wacom.c b/src/drivers/lenovo/wacom.c +index 7368afe..2e899f8 100644 +--- a/src/drivers/lenovo/wacom.c ++++ b/src/drivers/lenovo/wacom.c +@@ -34,10 +34,11 @@ static const char tablet_numbers[][5] = { + "6363", "6364", "6365", "6366", + "6367", "6368", "7762", "7763", + "7764", "7767", "7768", "7769", ++ /* X200t. */ ++ "7448", "7449", "7450", "7453", + /* X201t. */ + "0053", "0831", "2985", "3093", + "3113", "3144", "3239", "4184", +- "7448", "7449", "7450", "7453", + "2263", "2266", + }; + +diff --git a/src/mainboard/lenovo/x200/Kconfig b/src/mainboard/lenovo/x200/Kconfig +index 01556b3..7bae12d 100644 +--- a/src/mainboard/lenovo/x200/Kconfig ++++ b/src/mainboard/lenovo/x200/Kconfig +@@ -21,6 +21,8 @@ config BOARD_SPECIFIC_OPTIONS # dummy + select MAINBOARD_HAS_NATIVE_VGA_INIT + select MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG + select INTEL_INT15 ++ select SUPERIO_NSC_PC87382 ++ select DRIVERS_LENOVO_WACOM + + config MAINBOARD_DIR + string +diff --git a/src/mainboard/lenovo/x200/devicetree.cb b/src/mainboard/lenovo/x200/devicetree.cb +index cc27d25..09bc08f 100644 +--- a/src/mainboard/lenovo/x200/devicetree.cb ++++ b/src/mainboard/lenovo/x200/devicetree.cb +@@ -176,6 +176,22 @@ chip northbridge/intel/gm45 + register "eventc_enable" = "0xff" + register "eventd_enable" = "0xff" + end ++ ++ chip superio/nsc/pc87382 ++ device pnp 164e.3 on # Digitizer ++ io 0x60 = 0x200 ++ irq 0x29 = 0xb0 ++ irq 0x70 = 0x5 ++ irq 0xf0 = 0x82 ++ end ++ # IR, not connected ++ device pnp 164e.2 off end ++ # GPIO, not connected ++ device pnp 164e.7 off end ++ # DLPC, not connected ++ device pnp 164e.19 off end ++ end ++ + end + device pci 1f.2 on # SATA/IDE 1 + subsystemid 0x17aa 0x20f8 +diff --git a/src/mainboard/lenovo/x200/mainboard.c b/src/mainboard/lenovo/x200/mainboard.c +index 5354834..0ecffda 100644 +--- a/src/mainboard/lenovo/x200/mainboard.c ++++ b/src/mainboard/lenovo/x200/mainboard.c +@@ -31,6 +31,7 @@ + #include <ec/lenovo/pmh7/pmh7.h> + #include <ec/acpi/ec.h> + #include <ec/lenovo/h8/h8.h> ++#include "drivers/lenovo/lenovo.h" + + #include "cstates.c" /* Include it, as the linker won't find + the overloaded weak function in there. */ +@@ -49,6 +50,11 @@ const char *smbios_mainboard_bios_version(void) + return s; + } + ++static void fill_ssdt(void) ++{ ++ drivers_lenovo_serial_ports_ssdt_generate("\\_SB.PCI0.LPCB", 0); ++} ++ + static void mainboard_init(device_t dev) + { + /* This sneaked in here, because X200 SuperIO chip isn't really +@@ -62,6 +68,7 @@ static void mainboard_enable(device_t dev) + install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS, GMA_INT15_PANEL_FIT_CENTERING, GMA_INT15_BOOT_DISPLAY_DEFAULT, 2); + + dev->ops->init = mainboard_init; ++ dev->ops->acpi_fill_ssdt_generator = fill_ssdt; + } + + struct chip_operations mainboard_ops = { +-- +1.9.1 + diff --git a/resources/scripts/helpers/download/coreboot b/resources/scripts/helpers/download/coreboot @@ -130,6 +130,12 @@ printf "ThinkPad T500 (depends on T400 patch)\n" # git fetch http://review.coreboot.org/coreboot refs/changes/81/9181/2 && git cherry-pick FETCH_HEAD git am ../resources/libreboot/patch/0022-New-mainboard-Lenovo-T500.patch +# BACKPORTED +# This was merged in master, but this is an older revision. For now, simply backport it (X200 digitizer patch) +printf "ThinkPad X200 Tablet digitizer patch (backported)\n" +# git fetch http://review.coreboot.org/coreboot refs/changes/08/10208/4 && git cherry-pick FETCH_HEAD +git am ../resources/libreboot/patch/0023-lenovo-x200-Enable-wacom-digitizer-support-for-x200t.patch + # Run coreboot-libre deblob scripts # ------------------------------------------------------------------------------