[coreboot-gerrit] Patch set updated for coreboot: 5512468 lenovo/x60: Add X60T variant as separate port.

Vladimir Serbinenko (phcoder@gmail.com) gerrit at coreboot.org
Fri Feb 14 03:01:21 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 55124685f1e8b98d2cbb3870806eb18229e7065c
Author: Vladimir Serbinenko <phcoder at gmail.com>
Date:   Tue Feb 4 15:01:04 2014 +0100

    lenovo/x60: Add X60T variant as separate port.
    
    X60 and X60T differ only by presence of wacom table on
    serial port on internal SuperI/O. However detecting this
    difference would cost in boot time and code complexity as
    detecting requires an attempt to communicate with wacom
    over slow serial connection and waiting for it to wakeup.
    Since presence of wacom is a characteristic of model and
    known to user at compile time, add it as separate mobo
    instead.
    
    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 | 34 +++++++++++++++++++++++++++++++
 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, 72 insertions(+), 3 deletions(-)

diff --git a/src/mainboard/lenovo/Kconfig b/src/mainboard/lenovo/Kconfig
index a29fdbf..b16ef7d 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_X60T
+	bool "ThinkPad X60 Tablet"
+	help
+	  Lenovo X60 convertible tablet
+
 config BOARD_LENOVO_X201
 	bool "ThinkPad X201"
 	help
@@ -33,6 +38,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/x230/Kconfig"
 source "src/mainboard/lenovo/t60/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..6786da7 100644
--- a/src/mainboard/lenovo/x60/acpi/superio.asl
+++ b/src/mainboard/lenovo/x60/acpi/superio.asl
@@ -0,0 +1,34 @@
+#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
+
+	Device (COMA)		// Serial
+	{
+		Name(_HID, EISAID("PNP0501"))
+		Name(_UID, 2)
+
+		Name(_CRS, ResourceTemplate()
+		{
+			IO (Decode16, 0x3f8, 0x3f8, 0x01, 0x08)
+                        IRQNoFlags () {4}
+		})
+
+		Method (_STA, 0)
+		{
+			Return (0xf)
+		}
+	}
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