Pi Van Den Cirkel (opdecirkel@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10208
-gerrit
commit 580042e6e03a458b1ece702b8468fc14b25ef4bd Author: Pi Van Den Cirkel opdecirkel@gmail.com Date: Thu May 14 20:09:18 2015 -0400
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)
Change-Id: I9bd18642a6ea4211dc3be065456a507fc0b72561 Signed-off-by: Pi Van Den Cirkel opdecirkel@gmail.com --- src/drivers/lenovo/wacom.c | 3 ++- src/mainboard/lenovo/x200/Kconfig | 2 ++ src/mainboard/lenovo/x200/Kconfig.name | 2 +- src/mainboard/lenovo/x200/devicetree.cb | 16 ++++++++++++++++ src/mainboard/lenovo/x200/mainboard.c | 7 +++++++ 5 files changed, 28 insertions(+), 2 deletions(-)
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/Kconfig.name b/src/mainboard/lenovo/x200/Kconfig.name index bda1c1f..8e1dd43 100644 --- a/src/mainboard/lenovo/x200/Kconfig.name +++ b/src/mainboard/lenovo/x200/Kconfig.name @@ -1,2 +1,2 @@ config BOARD_LENOVO_X200 - bool "ThinkPad X200" + bool "ThinkPad X200 / X200t" 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 = {