[coreboot-gerrit] New patch to review for coreboot: c47f1fe lenovo/x60: Support digitizer on X60T variant.

Vladimir Serbinenko (phcoder@gmail.com) gerrit at coreboot.org
Tue Feb 4 15:02:08 CET 2014


Vladimir Serbinenko (phcoder at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5113

-gerrit

commit c47f1fe4ecf3e76876f9ecfa507e4fcf71244e13
Author: Vladimir Serbinenko <phcoder at gmail.com>
Date:   Tue Feb 4 15:01:04 2014 +0100

    lenovo/x60: Support digitizer on X60T variant.
    
    Change-Id: If2e699cfa5d11f2cb2b9c254fc6fc71781dce228
    Signed-off-by: Vladimir Serbinenko <phcoder at gmail.com>
---
 src/mainboard/lenovo/Kconfig              |  6 ++++++
 src/mainboard/lenovo/x60/Kconfig          |  6 +++++-
 src/mainboard/lenovo/x60/acpi/superio.asl | 17 +++++++++++++++++
 src/mainboard/lenovo/x60/devicetree.cb    |  7 +++++--
 src/mainboard/lenovo/x60/mainboard.c      |  5 +++++
 src/mainboard/lenovo/x60t/Kconfig         | 10 ++++++++++
 src/mainboard/lenovo/x60t/board_info.txt  |  7 +++++++
 7 files changed, 55 insertions(+), 3 deletions(-)

diff --git a/src/mainboard/lenovo/Kconfig b/src/mainboard/lenovo/Kconfig
index 27ffd66..5a00ba3 100644
--- a/src/mainboard/lenovo/Kconfig
+++ b/src/mainboard/lenovo/Kconfig
@@ -12,6 +12,11 @@ config BOARD_LENOVO_X60
 	    ThinkPad X60s (Model 1702, 1703)
 	    ThinkPad X60  (Model 1709)
 
+config BOARD_LENOVO_X60
+	bool "ThinkPad X60 Tablet"
+	help
+	  Lenovo X60 convertible tablet
+
 config BOARD_LENOVO_X201
 	bool "ThinkPad X201"
 	help
@@ -38,6 +43,7 @@ config BOARD_LENOVO_T60
 endchoice
 
 source "src/mainboard/lenovo/x60/Kconfig"
+source "src/mainboard/lenovo/x60t/Kconfig"
 source "src/mainboard/lenovo/x201/Kconfig"
 source "src/mainboard/lenovo/x201t/Kconfig"
 source "src/mainboard/lenovo/x230/Kconfig"
diff --git a/src/mainboard/lenovo/x60/Kconfig b/src/mainboard/lenovo/x60/Kconfig
index 7ed2665..36c00bc 100644
--- a/src/mainboard/lenovo/x60/Kconfig
+++ b/src/mainboard/lenovo/x60/Kconfig
@@ -1,4 +1,4 @@
-if BOARD_LENOVO_X60
+if BOARD_LENOVO_X60 || BOARD_LENOVO_X60T
 
 config BOARD_SPECIFIC_OPTIONS # dummy
 	def_bool y
@@ -39,10 +39,14 @@ config DCACHE_RAM_SIZE
 	hex
 	default 0x8000
 
+if BOARD_LENOVO_X60
+
 config MAINBOARD_PART_NUMBER
 	string
 	default "ThinkPad X60 / X60s"
 
+endif
+
 config MMCONF_BASE_ADDRESS
 	hex
 	default 0xf0000000
diff --git a/src/mainboard/lenovo/x60/acpi/superio.asl b/src/mainboard/lenovo/x60/acpi/superio.asl
index e69de29..31ffb7b 100644
--- a/src/mainboard/lenovo/x60/acpi/superio.asl
+++ b/src/mainboard/lenovo/x60/acpi/superio.asl
@@ -0,0 +1,17 @@
+#if IS_ENABLED(CONFIG_BOARD_LENOVO_X60T)
+	Device (DTR)		// Digitizer
+	{
+		Name(_HID, EISAID("WACF004"))
+
+		Name(_CRS, ResourceTemplate()
+		{
+			IO (Decode16, 0x200, 0x200, 0x01, 0x08)
+                        IRQNoFlags () {5}
+		})
+
+		Method (_STA, 0)
+		{
+			Return (0xf)
+		}
+	}
+#endif
diff --git a/src/mainboard/lenovo/x60/devicetree.cb b/src/mainboard/lenovo/x60/devicetree.cb
index 3880f18..5b4e37f 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
diff --git a/src/mainboard/lenovo/x60/mainboard.c b/src/mainboard/lenovo/x60/mainboard.c
index d1fcb7b..be39674 100644
--- a/src/mainboard/lenovo/x60/mainboard.c
+++ b/src/mainboard/lenovo/x60/mainboard.c
@@ -150,8 +150,13 @@ static int mainboard_smbios_data(device_t dev, int *handle, unsigned long *curre
 
 static void mainboard_enable(device_t dev)
 {
+	device_t devwacom;
 	dev->ops->init = mainboard_init;
 	dev->ops->get_smbios_data = mainboard_smbios_data;
+
+	devwacom = dev_find_slot_pnp (0x164e, 3);
+	if (devwacom)
+		devwacom->enabled = IS_ENABLED(CONFIG_BOARD_LENOVO_X60T);
 }
 
 struct chip_operations mainboard_ops = {
diff --git a/src/mainboard/lenovo/x60t/Kconfig b/src/mainboard/lenovo/x60t/Kconfig
new file mode 100644
index 0000000..57c99ca
--- /dev/null
+++ b/src/mainboard/lenovo/x60t/Kconfig
@@ -0,0 +1,10 @@
+if BOARD_LENOVO_X60T
+
+# Dummy for abuild
+#select ARCH_X86
+
+config MAINBOARD_PART_NUMBER
+	string
+	default "ThinkPad X60 Tablet"
+
+endif
diff --git a/src/mainboard/lenovo/x60t/board_info.txt b/src/mainboard/lenovo/x60t/board_info.txt
new file mode 100644
index 0000000..6ecdbd5
--- /dev/null
+++ b/src/mainboard/lenovo/x60t/board_info.txt
@@ -0,0 +1,7 @@
+Board name: X60 Tablet
+Category: laptop
+ROM package: SOIC-8
+ROM protocol: SPI
+ROM socketed: n
+Flashrom support: y
+Clone of: lenovo/x60



More information about the coreboot-gerrit mailing list