diff options
author | Duncan Laurie <dlaurie@chromium.org> | 2013-10-13 10:57:01 +0800 |
---|---|---|
committer | Isaac Christensen <isaac.christensen@se-eng.com> | 2014-09-08 19:03:20 +0200 |
commit | 50fc0b4cabcff9680aa53aaeaf1a54dc8e7d12de (patch) | |
tree | b36958ea99fff147398fec902d664bd98b78b47f | |
parent | 1eca1d4e15c254b1f63336b991bf1a81b70712c0 (diff) | |
download | coreboot-50fc0b4cabcff9680aa53aaeaf1a54dc8e7d12de.tar.xz |
samus: Add onboard device configuration
Change-Id: Ib7b6688982e9f74cffe40d11d4a9ec69acd55d37
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/174088
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
(cherry picked from commit 41624b073fb59b1372ee5a8eba3ed64c7e633311)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6826
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
-rw-r--r-- | src/mainboard/google/samus/mainboard.c | 40 | ||||
-rw-r--r-- | src/mainboard/google/samus/onboard.h | 39 |
2 files changed, 75 insertions, 4 deletions
diff --git a/src/mainboard/google/samus/mainboard.c b/src/mainboard/google/samus/mainboard.c index e595632392..7977ce3af1 100644 --- a/src/mainboard/google/samus/mainboard.c +++ b/src/mainboard/google/samus/mainboard.c @@ -58,7 +58,7 @@ static int mainboard_smbios_data(device_t dev, int *handle, BOARD_TRACKPAD_IRQ, /* instance */ BOARD_TRACKPAD_I2C_BUS, /* segment */ BOARD_TRACKPAD_I2C_ADDR, /* bus */ - 0, /* device */ + BOARD_TRACKPAD_IRQ_TYPE, /* device */ 0); /* function */ len += smbios_write_type41( @@ -67,7 +67,43 @@ static int mainboard_smbios_data(device_t dev, int *handle, BOARD_TOUCHSCREEN_IRQ, /* instance */ BOARD_TOUCHSCREEN_I2C_BUS, /* segment */ BOARD_TOUCHSCREEN_I2C_ADDR, /* bus */ - 0, /* device */ + BOARD_TOUCHSCREEN_IRQ_TYPE, /* device */ + 0); /* function */ + + len += smbios_write_type41( + current, handle, + BOARD_CODEC_NAME, /* name */ + BOARD_CODEC_IRQ, /* instance */ + BOARD_CODEC_I2C_BUS, /* segment */ + BOARD_CODEC_I2C_ADDR, /* bus */ + BOARD_CODEC_IRQ_TYPE, /* device */ + 0); /* function */ + + len += smbios_write_type41( + current, handle, + BOARD_NFC_NAME, /* name */ + BOARD_NFC_IRQ, /* instance */ + BOARD_NFC_I2C_BUS, /* segment */ + BOARD_NFC_I2C_ADDR, /* bus */ + BOARD_NFC_IRQ_TYPE, /* device */ + 0); /* function */ + + len += smbios_write_type41( + current, handle, + BOARD_ACCEL_NAME, /* name */ + BOARD_ACCEL_IRQ, /* instance */ + BOARD_ACCEL_I2C_BUS, /* segment */ + BOARD_ACCEL_I2C_ADDR, /* bus */ + BOARD_ACCEL_IRQ_TYPE, /* device */ + 0); /* function */ + + len += smbios_write_type41( + current, handle, + BOARD_ACCEL_GYRO_NAME, /* name */ + BOARD_ACCEL_GYRO_IRQ, /* instance */ + BOARD_ACCEL_GYRO_I2C_BUS, /* segment */ + BOARD_ACCEL_GYRO_I2C_ADDR, /* bus */ + BOARD_ACCEL_GYRO_IRQ_TYPE, /* device */ 0); /* function */ return len; diff --git a/src/mainboard/google/samus/onboard.h b/src/mainboard/google/samus/onboard.h index c74ce220fc..28244675c7 100644 --- a/src/mainboard/google/samus/onboard.h +++ b/src/mainboard/google/samus/onboard.h @@ -20,16 +20,51 @@ #ifndef ONBOARD_H #define ONBOARD_H +#define BOARD_PIRQ_INTERRUPT 0 +#define BOARD_GPIO_INTERRUPT 1 +#define BOARD_GPIO_OFFSET 162 +#define GPIO_INTERRUPT(x) (BOARD_GPIO_OFFSET + (x)) + #define BOARD_TRACKPAD_NAME "trackpad" #define BOARD_TRACKPAD_IRQ 27 /* PIRQL */ +#define BOARD_TRACKPAD_IRQ_TYPE BOARD_PIRQ_INTERRUPT #define BOARD_TRACKPAD_WAKE_GPIO 13 /* GPIO13 */ #define BOARD_TRACKPAD_I2C_BUS 1 /* I2C0 */ -#define BOARD_TRACKPAD_I2C_ADDR 0x67 +#define BOARD_TRACKPAD_I2C_ADDR 0x4b #define BOARD_TOUCHSCREEN_NAME "touchscreen" #define BOARD_TOUCHSCREEN_IRQ 28 /* PIRQM */ +#define BOARD_TOUCHSCREEN_IRQ_TYPE BOARD_PIRQ_INTERRUPT #define BOARD_TOUCHSCREEN_WAKE_GPIO 14 /* GPIO14 */ #define BOARD_TOUCHSCREEN_I2C_BUS 2 /* I2C1 */ -#define BOARD_TOUCHSCREEN_I2C_ADDR 0x4a +#define BOARD_TOUCHSCREEN_I2C_ADDR 0x4b + +#define BOARD_CODEC_NAME "codec" +#define BOARD_CODEC_IRQ GPIO_INTERRUPT(42) +#define BOARD_CODEC_IRQ_TYPE BOARD_GPIO_INTERRUPT +#define BOARD_CODEC_WAKE_GPIO 42 /* GPIO42 */ +#define BOARD_CODEC_I2C_BUS 1 /* I2C0 */ +#define BOARD_CODEC_I2C_ADDR 0x1a + +#define BOARD_NFC_NAME "nfc" +#define BOARD_NFC_IRQ GPIO_INTERRUPT(29) +#define BOARD_NFC_IRQ_TYPE BOARD_GPIO_INTERRUPT +#define BOARD_NFC_WAKE_GPIO 29 /* GPIO29 */ +#define BOARD_NFC_I2C_BUS 1 /* I2C0 */ +#define BOARD_NFC_I2C_ADDR 0x28 + +#define BOARD_ACCEL_NAME "accel" +#define BOARD_ACCEL_IRQ GPIO_INTERRUPT(43) +#define BOARD_ACCEL_IRQ_TYPE BOARD_GPIO_INTERRUPT +#define BOARD_ACCEL_WAKE_GPIO 43 /* GPIO43 */ +#define BOARD_ACCEL_I2C_BUS 2 /* I2C1 */ +#define BOARD_ACCEL_I2C_ADDR 0x0e + +#define BOARD_ACCEL_GYRO_NAME "accel_gyro" +#define BOARD_ACCEL_GYRO_IRQ 31 /* PIRQP */ +#define BOARD_ACCEL_GYRO_IRQ_TYPE BOARD_PIRQ_INTERRUPT +#define BOARD_ACCEL_GYRO_WAKE_GPIO 47 /* GPIO47 */ +#define BOARD_ACCEL_GYRO_I2C_BUS 2 /* I2C1 */ +#define BOARD_ACCEL_GYRO_I2C_ADDR 0x6b #endif |