diff options
author | Francis 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) |
commit | f0d737a2781c3e6c1c490ed074fe1ecad32721c5 (patch) | |
tree | b8c3bc7a133fe181d420df82bd4c74563a1ec4b1 /resources | |
parent | 20a56e21fa8011086ba18fffd430fd5ad0b4de07 (diff) | |
download | libreboot-f0d737a2781c3e6c1c490ed074fe1ecad32721c5.zip libreboot-f0d737a2781c3e6c1c490ed074fe1ecad32721c5.tar.gz libreboot-f0d737a2781c3e6c1c490ed074fe1ecad32721c5.tar.bz2 |
coreboot-libre: backport patches for X200 Tablet digitizer support
Diffstat (limited to 'resources')
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 # ------------------------------------------------------------------------------ |