slippy: Add on-board devices and configure GPIO irq/wake

Hardware / Coreboot - Duncan Laurie [chromium.org] - 25 November 2013 16:45 UTC

Add the onboard I2C devices for Slippy trackpad/lightsensor and generate SMBIOS Type41 tables for them.

Add ACPI device for the trackpad to expose the interrupt map to the OS so it can be used.

Configure interrupt GPIOs as PIRQ type and wake GPIOs as just standard input type. The wake GPIO is reconfigured as ACPI SCI in the specific device _DSW method. This prevents the wake GPIO from generating a flood of SCI at runtime.

LTE_WAKE_L_Q and WLAN_WAKE_L_Q are left as ACPI SCI as these are not repurposed interrupt pins so they are not generated at runtime.

SIM_DET and ALS_INT_L are set as input since we don't have an interrupt handler for them.

tested on slippy with trackpad with additional kernel changes to chromeos_laptop.c to initialize devices.

1) Ensure trackpad interrupt is functional and that there is not a flood of ACPI SCI when trackpad does interrupt: 9: 1 0 0 0 IO-APIC-fasteoi acpi 37: 421 0 0 0 IO-APIC-fasteoi cyapa

2) Ensure that devices are exposed as wake capable: Device S-state Status Sysfs node TPAD S3 *enabled pnp:00:00 TSCR S3 *disabled pnp:00:01

3) Ensure that trackpad can wake from S3 by default, but that it does not cause an immediate wake when entering suspend.

4) Ensure that trackpad can be disabled as a wake source with echo TPAD > /proc/acpi/wakeup

Change-Id: Id562d20b54eeefec56040b8f70ef238911312628

d67c5db slippy: Add on-board devices and configure GPIO irq/wake
src/mainboard/google/slippy/acpi/mainboard.asl | 72 ++++++++++++++++++++++++
src/mainboard/google/slippy/gpio.h | 12 ++--
src/mainboard/google/slippy/mainboard.c | 38 +++++++++++++
src/mainboard/google/slippy/onboard.h | 40 +++++++++++++
4 files changed, 156 insertions(+), 6 deletions(-)

Upstream: review.coreboot.org


  • Share