summaryrefslogtreecommitdiff
path: root/src/mainboard/lenovo
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2014-02-15 17:00:46 +0100
committerVladimir Serbinenko <phcoder@gmail.com>2014-07-19 14:24:29 +0200
commitf2b3cd63cfa2fcf7874b1947c60c22b664a277c7 (patch)
tree0f7ccfa29cfe00a3334f055333492157f96c4d3b /src/mainboard/lenovo
parentc2956e7752213f9eae5064e63d16afa84b7cc23f (diff)
lenovo/x60: Support digitizer on X60t and X201t.
Change-Id: I5b0399a8edca3b73aa7d515d2c446c31b3239fa5 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/5239 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/mainboard/lenovo')
-rw-r--r--src/mainboard/lenovo/Kconfig4
-rw-r--r--src/mainboard/lenovo/x201/Kconfig4
-rw-r--r--src/mainboard/lenovo/x201/acpi_tables.c2
-rw-r--r--src/mainboard/lenovo/x201/devicetree.cb14
-rw-r--r--src/mainboard/lenovo/x201/romstage.c2
-rw-r--r--src/mainboard/lenovo/x60/Kconfig3
-rw-r--r--src/mainboard/lenovo/x60/acpi_tables.c2
-rw-r--r--src/mainboard/lenovo/x60/devicetree.cb7
8 files changed, 31 insertions, 7 deletions
diff --git a/src/mainboard/lenovo/Kconfig b/src/mainboard/lenovo/Kconfig
index c1dec85975..583efc842d 100644
--- a/src/mainboard/lenovo/Kconfig
+++ b/src/mainboard/lenovo/Kconfig
@@ -4,7 +4,7 @@ choice
prompt "Mainboard model"
config BOARD_LENOVO_X60
- bool "ThinkPad X60 / X60s"
+ bool "ThinkPad X60 / X60s / X60t"
help
The following X60 series ThinkPad machines have been verified to
work correctly:
@@ -13,7 +13,7 @@ config BOARD_LENOVO_X60
ThinkPad X60 (Model 1709)
config BOARD_LENOVO_X201
- bool "ThinkPad X201"
+ bool "ThinkPad X201 / X201s / X201t"
help
Lenovo X201 laptop. Consult wiki for details.
diff --git a/src/mainboard/lenovo/x201/Kconfig b/src/mainboard/lenovo/x201/Kconfig
index 803ce65eca..c82971f568 100644
--- a/src/mainboard/lenovo/x201/Kconfig
+++ b/src/mainboard/lenovo/x201/Kconfig
@@ -16,6 +16,8 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select HAVE_ACPI_RESUME
select MAINBOARD_HAS_NATIVE_VGA_INIT
select MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG
+ select SUPERIO_NSC_PC87382
+ select DRIVERS_LENOVO_WACOM
config MAINBOARD_DIR
string
@@ -27,7 +29,7 @@ config MAINBOARD_PART_NUMBER
config MAINBOARD_VERSION
string
- default "ThinkPad X201"
+ default "ThinkPad X201 / X201s / X201t"
config MAINBOARD_VENDOR
string
diff --git a/src/mainboard/lenovo/x201/acpi_tables.c b/src/mainboard/lenovo/x201/acpi_tables.c
index 165de0d404..b6e99dd87c 100644
--- a/src/mainboard/lenovo/x201/acpi_tables.c
+++ b/src/mainboard/lenovo/x201/acpi_tables.c
@@ -31,6 +31,7 @@
#include <device/pci.h>
#include <device/pci_ids.h>
#include "southbridge/intel/ibexpeak/nvs.h"
+#include "drivers/lenovo/lenovo.h"
extern const unsigned char AmlCode[];
#if CONFIG_HAVE_ACPI_SLIC
@@ -93,6 +94,7 @@ unsigned long acpi_fill_ssdt_generator(unsigned long current,
const char *oem_table_id)
{
generate_cpu_entries();
+ drivers_lenovo_serial_ports_ssdt_generate("\\_SB.PCI0.LPCB", 0);
return (unsigned long)(acpigen_get_current());
}
diff --git a/src/mainboard/lenovo/x201/devicetree.cb b/src/mainboard/lenovo/x201/devicetree.cb
index 9053f8935e..1db5bf055e 100644
--- a/src/mainboard/lenovo/x201/devicetree.cb
+++ b/src/mainboard/lenovo/x201/devicetree.cb
@@ -143,6 +143,20 @@ chip northbridge/intel/nehalem
end
device pci 1f.0 on # PCI-LPC bridge
subsystemid 0x17aa 0x2166
+ 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 # IDE/SATA
subsystemid 0x17aa 0x2168
diff --git a/src/mainboard/lenovo/x201/romstage.c b/src/mainboard/lenovo/x201/romstage.c
index a18536aae4..2f4efc8baf 100644
--- a/src/mainboard/lenovo/x201/romstage.c
+++ b/src/mainboard/lenovo/x201/romstage.c
@@ -54,7 +54,7 @@ static void pch_enable_lpc(void)
/* Enable EC, PS/2 Keyboard/Mouse */
pci_write_config16(PCH_LPC_DEV, LPC_EN,
CNF2_LPC_EN | CNF1_LPC_EN | MC_LPC_EN | KBC_LPC_EN |
- COMA_LPC_EN);
+ COMA_LPC_EN | GAMEL_LPC_EN);
pci_write_config32(PCH_LPC_DEV, LPC_GEN1_DEC, 0x7c1601);
pci_write_config32(PCH_LPC_DEV, LPC_GEN2_DEC, 0xc15e1);
diff --git a/src/mainboard/lenovo/x60/Kconfig b/src/mainboard/lenovo/x60/Kconfig
index f70202d3f3..4610547f81 100644
--- a/src/mainboard/lenovo/x60/Kconfig
+++ b/src/mainboard/lenovo/x60/Kconfig
@@ -23,6 +23,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select USE_OPTION_TABLE
select MAINBOARD_HAS_NATIVE_VGA_INIT
select H8_DOCK_EARLY_INIT
+ select DRIVERS_LENOVO_WACOM
config MAINBOARD_DIR
string
@@ -38,7 +39,7 @@ config DCACHE_RAM_SIZE
config MAINBOARD_PART_NUMBER
string
- default "ThinkPad X60 / X60s"
+ default "ThinkPad X60 / X60s / X60t"
config MMCONF_BASE_ADDRESS
hex
diff --git a/src/mainboard/lenovo/x60/acpi_tables.c b/src/mainboard/lenovo/x60/acpi_tables.c
index f6ed4ae6dd..cf07067a96 100644
--- a/src/mainboard/lenovo/x60/acpi_tables.c
+++ b/src/mainboard/lenovo/x60/acpi_tables.c
@@ -29,6 +29,7 @@
#include <device/device.h>
#include <device/pci.h>
#include <device/pci_ids.h>
+#include "drivers/lenovo/lenovo.h"
extern const unsigned char AmlCode[];
#if CONFIG_HAVE_ACPI_SLIC
@@ -86,6 +87,7 @@ unsigned long acpi_fill_madt(unsigned long current)
unsigned long acpi_fill_ssdt_generator(unsigned long current, const char *oem_table_id)
{
generate_cpu_entries();
+ drivers_lenovo_serial_ports_ssdt_generate("\\_SB.PCI0.LPCB", 1);
return (unsigned long) (acpigen_get_current());
}
diff --git a/src/mainboard/lenovo/x60/devicetree.cb b/src/mainboard/lenovo/x60/devicetree.cb
index fbef3bfb0d..81648bda7d 100644
--- a/src/mainboard/lenovo/x60/devicetree.cb
+++ b/src/mainboard/lenovo/x60/devicetree.cb
@@ -127,8 +127,11 @@ chip northbridge/intel/i945
io 0x60 = 0x2f8
end
- device pnp 164e.3 off # Serial Port
- io 0x60 = 0x3f8
+ device pnp 164e.3 on # Digitizer
+ io 0x60 = 0x200
+ irq 0x29 = 0xb0
+ irq 0x70 = 0x5
+ irq 0xf0 = 0x82
end
device pnp 164e.7 on # GPIO