summaryrefslogtreecommitdiffstats
path: root/resources
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2015-05-17 08:01:28 (EDT)
committer Francis Rowe <info@gluglug.org.uk>2015-05-17 08:02:24 (EDT)
commitf0d737a2781c3e6c1c490ed074fe1ecad32721c5 (patch)
treeb8c3bc7a133fe181d420df82bd4c74563a1ec4b1 /resources
parent20a56e21fa8011086ba18fffd430fd5ad0b4de07 (diff)
downloadlibreboot-f0d737a2781c3e6c1c490ed074fe1ecad32721c5.zip
libreboot-f0d737a2781c3e6c1c490ed074fe1ecad32721c5.tar.gz
libreboot-f0d737a2781c3e6c1c490ed074fe1ecad32721c5.tar.bz2
coreboot-libre: backport patches for X200 Tablet digitizer support
Diffstat (limited to 'resources')
-rw-r--r--resources/libreboot/config/x200_4mb/config6
-rw-r--r--resources/libreboot/config/x200_8mb/config6
-rw-r--r--resources/libreboot/patch/0023-lenovo-x200-Enable-wacom-digitizer-support-for-x200t.patch117
-rwxr-xr-xresources/scripts/helpers/download/coreboot6
4 files changed, 133 insertions, 2 deletions
diff --git a/resources/libreboot/config/x200_4mb/config b/resources/libreboot/config/x200_4mb/config
index c673b82..508c262 100644
--- 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
index dd81253..7ddf1ec 100644
--- 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
new file mode 100644
index 0000000..6072af8
--- /dev/null
+++ 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
index e4363ee..ad358b0 100755
--- 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
# ------------------------------------------------------------------------------