aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/google/butterfly/mainboard.c37
-rw-r--r--src/mainboard/google/link/mainboard.c65
-rw-r--r--src/mainboard/google/parrot/mainboard.c50
3 files changed, 50 insertions, 102 deletions
diff --git a/src/mainboard/google/butterfly/mainboard.c b/src/mainboard/google/butterfly/mainboard.c
index 32a830842a..b11c22678f 100644
--- a/src/mainboard/google/butterfly/mainboard.c
+++ b/src/mainboard/google/butterfly/mainboard.c
@@ -343,40 +343,19 @@ static void mainboard_init(device_t dev)
}
}
-static int butterfly_smbios_type41(int *handle, unsigned long *current,
- const char *name, u8 irq, u8 addr)
-{
- struct smbios_type41 *t = (struct smbios_type41 *)*current;
- int len = sizeof(struct smbios_type41);
-
- memset(t, 0, sizeof(struct smbios_type41));
- t->type = SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION;
- t->handle = *handle;
- t->length = len - 2;
- t->reference_designation = smbios_add_string(t->eos, name);
- t->device_type = SMBIOS_DEVICE_TYPE_OTHER;
- t->device_status = 1;
- t->device_type_instance = irq;
- t->segment_group_number = 0;
- t->bus_number = addr;
- t->function_number = 0;
- t->device_number = 0;
-
- len = t->length + smbios_string_table_len(t->eos);
- *current += len;
- *handle += 1;
- return len;
-}
-
static int butterfly_onboard_smbios_data(device_t dev, int *handle,
unsigned long *current)
{
int len = 0;
- len += butterfly_smbios_type41(handle, current,
- BUTTERFLY_TRACKPAD_NAME,
- BUTTERFLY_TRACKPAD_IRQ,
- BUTTERFLY_TRACKPAD_I2C_ADDR);
+ len += smbios_write_type41(
+ current, handle,
+ BUTTERFLY_TRACKPAD_NAME, /* name */
+ BUTTERFLY_TRACKPAD_IRQ, /* instance */
+ 0, /* segment */
+ BUTTERFLY_TRACKPAD_I2C_ADDR, /* bus */
+ 0, /* device */
+ 0); /* function */
return len;
}
diff --git a/src/mainboard/google/link/mainboard.c b/src/mainboard/google/link/mainboard.c
index 2731df0204..08b1c02a96 100644
--- a/src/mainboard/google/link/mainboard.c
+++ b/src/mainboard/google/link/mainboard.c
@@ -180,50 +180,37 @@ static void mainboard_init(device_t dev)
}
}
-static int link_smbios_type41(int *handle, unsigned long *current,
- const char *name, u8 irq, u8 addr)
-{
- struct smbios_type41 *t = (struct smbios_type41 *)*current;
- int len = sizeof(struct smbios_type41);
-
- memset(t, 0, sizeof(struct smbios_type41));
- t->type = SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION;
- t->handle = *handle;
- t->length = len - 2;
- t->reference_designation = smbios_add_string(t->eos, name);
- t->device_type = SMBIOS_DEVICE_TYPE_OTHER;
- t->device_status = 1;
- t->device_type_instance = irq;
- t->segment_group_number = 0;
- t->bus_number = addr;
- t->function_number = 0;
- t->device_number = 0;
-
- len = t->length + smbios_string_table_len(t->eos);
- *current += len;
- *handle += 1;
- return len;
-}
-
static int link_onboard_smbios_data(device_t dev, int *handle,
unsigned long *current)
{
int len = 0;
- len += link_smbios_type41(handle, current,
- LINK_LIGHTSENSOR_NAME,
- LINK_LIGHTSENSOR_IRQ,
- LINK_LIGHTSENSOR_I2C_ADDR);
-
- len += link_smbios_type41(handle, current,
- LINK_TRACKPAD_NAME,
- LINK_TRACKPAD_IRQ,
- LINK_TRACKPAD_I2C_ADDR);
-
- len += link_smbios_type41(handle, current,
- LINK_TOUCHSCREEN_NAME,
- LINK_TOUCHSCREEN_IRQ,
- LINK_TOUCHSCREEN_I2C_ADDR);
+ len += smbios_write_type41(
+ current, handle,
+ LINK_LIGHTSENSOR_NAME, /* name */
+ LINK_LIGHTSENSOR_IRQ, /* instance */
+ 0, /* segment */
+ LINK_LIGHTSENSOR_I2C_ADDR, /* bus */
+ 0, /* device */
+ 0); /* function */
+
+ len += smbios_write_type41(
+ current, handle,
+ LINK_TRACKPAD_NAME, /* name */
+ LINK_TRACKPAD_IRQ, /* instance */
+ 0, /* segment */
+ LINK_TRACKPAD_I2C_ADDR, /* bus */
+ 0, /* device */
+ 0); /* function */
+
+ len += smbios_write_type41(
+ current, handle,
+ LINK_TOUCHSCREEN_NAME, /* name */
+ LINK_TOUCHSCREEN_IRQ, /* instance */
+ 0, /* segment */
+ LINK_TOUCHSCREEN_I2C_ADDR, /* bus */
+ 0, /* device */
+ 0); /* function */
return len;
}
diff --git a/src/mainboard/google/parrot/mainboard.c b/src/mainboard/google/parrot/mainboard.c
index bc505beaff..34cb24e87e 100644
--- a/src/mainboard/google/parrot/mainboard.c
+++ b/src/mainboard/google/parrot/mainboard.c
@@ -156,49 +156,31 @@ static void mainboard_init(device_t dev)
parrot_ec_init();
}
-static int parrot_smbios_type41(int *handle, unsigned long *current,
- const char *name, u8 irq, u8 addr)
-{
- struct smbios_type41 *t = (struct smbios_type41 *)*current;
- int len = sizeof(struct smbios_type41);
-
- memset(t, 0, sizeof(struct smbios_type41));
- t->type = SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION;
- t->handle = *handle;
- t->length = len - 2;
- t->reference_designation = smbios_add_string(t->eos, name);
- t->device_type = SMBIOS_DEVICE_TYPE_OTHER;
- t->device_status = 1;
- t->device_type_instance = irq;
- t->segment_group_number = 0;
- t->bus_number = addr;
- t->function_number = 0;
- t->device_number = 0;
-
- len = t->length + smbios_string_table_len(t->eos);
- *current += len;
- *handle += 1;
- return len;
-}
-
static int parrot_onboard_smbios_data(device_t dev, int *handle,
unsigned long *current)
{
int len = 0;
u8 hardware_version = parrot_rev();
if (hardware_version < 0x2) { /* DVT vs PVT */
- len += parrot_smbios_type41(handle, current,
- PARROT_TRACKPAD_NAME,
- PARROT_TRACKPAD_IRQ_DVT,
- PARROT_TRACKPAD_I2C_ADDR);
+ len += smbios_write_type41(
+ current, handle,
+ PARROT_TRACKPAD_NAME, /* name */
+ PARROT_TRACKPAD_IRQ_DVT, /* instance */
+ 0, /* segment */
+ PARROT_TRACKPAD_I2C_ADDR, /* bus */
+ 0, /* device */
+ 0); /* function */
} else {
- len += parrot_smbios_type41(handle, current,
- PARROT_TRACKPAD_NAME,
- PARROT_TRACKPAD_IRQ_PVT,
- PARROT_TRACKPAD_I2C_ADDR);
+ len += smbios_write_type41(
+ current, handle,
+ PARROT_TRACKPAD_NAME, /* name */
+ PARROT_TRACKPAD_IRQ_PVT, /* instance */
+ 0, /* segment */
+ PARROT_TRACKPAD_I2C_ADDR, /* bus */
+ 0, /* device */
+ 0); /* function */
}
-
return len;
}