summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/google/samus/mainboard.c40
-rw-r--r--src/mainboard/google/samus/onboard.h39
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