Vladimir Serbinenko (phcoder@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@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@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