From f0d737a2781c3e6c1c490ed074fe1ecad32721c5 Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Sun, 17 May 2015 08:01:28 -0400 Subject: coreboot-libre: backport patches for X200 Tablet digitizer support --- (limited to 'resources/libreboot') 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 +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 +Signed-off-by: Francis Rowe +--- + 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 + #include + #include ++#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 + -- cgit v0.9.1