mb/google/octopus/var/fleex: Deprecate bid 0

This change gets rid of bid0_override_table as part of clean up effort
to deprecate bid0. Additionally, it updates the touchscreen enable
GPIO in overridetree and gets rid of variant.c to update enable gpio at
runtime.

BUG=b:119885949

Change-Id: If14abb324d9422720ca4d0f0859e092319d454ee
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/c/29785
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Justin TerAvest <teravest@chromium.org>
This commit is contained in:
Furquan Shaikh 2018-11-21 14:31:14 -08:00 committed by Patrick Georgi
parent ae2cf49508
commit 5949c238ae
4 changed files with 4 additions and 106 deletions

View File

@ -1,4 +1,3 @@
bootblock-y += gpio.c
ramstage-y += variant.c
ramstage-y += gpio.c

View File

@ -52,37 +52,9 @@ static const struct pad_config default_override_table[] = {
PAD_NC(GPIO_214, DN_20K),
};
static const struct pad_config bid0_override_table[] = {
PAD_NC(GPIO_50, UP_20K),
PAD_NC(GPIO_51, UP_20K),
PAD_NC(GPIO_52, UP_20K),
PAD_NC(GPIO_53, UP_20K),
PAD_NC(GPIO_67, UP_20K),
PAD_NC(GPIO_117, UP_20K),
PAD_NC(GPIO_138, DN_20K),
PAD_NC(GPIO_139, DN_20K),
PAD_NC(GPIO_140, UP_20K),
PAD_NC(GPIO_143, UP_20K),
PAD_NC(GPIO_144, UP_20K),
PAD_NC(GPIO_145, UP_20K),
PAD_NC(GPIO_161, UP_20K),
PAD_NC(GPIO_214, DN_20K),
};
const struct pad_config *variant_override_gpio_table(size_t *num)
{
const struct pad_config *c;
*num = ARRAY_SIZE(default_override_table);
switch (board_id()) {
case 0:
case UNDEFINED_STRAPPING_ID:
c = bid0_override_table;
*num = ARRAY_SIZE(bid0_override_table);
break;
default:
c = default_override_table;
*num = ARRAY_SIZE(default_override_table);
}
return c;
return default_override_table;
}

View File

@ -78,7 +78,7 @@ chip soc/intel/apollolake
register "probed" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "reset_delay_ms" = "20"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_213)"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
register "enable_delay_ms" = "1"
register "has_power_resource" = "1"
device i2c 10 on end
@ -90,7 +90,7 @@ chip soc/intel/apollolake
register "generic.probed" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
register "generic.reset_delay_ms" = "130"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_213)"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
register "generic.enable_delay_ms" = "2"
register "generic.has_power_resource" = "1"
register "generic.disable_gpio_export_in_crs" = "1"

View File

@ -1,73 +0,0 @@
/*
* This file is part of the coreboot project.
*
* Copyright 2018 Google LLC
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <arch/acpi_device.h>
#include <baseboard/variants.h>
#include <boardid.h>
#include <device/device.h>
#include <drivers/i2c/generic/chip.h>
#include <drivers/i2c/hid/chip.h>
#include <soc/gpio.h>
#include <soc/pci_devs.h>
#include <string.h>
extern struct chip_operations drivers_i2c_generic_ops;
extern struct chip_operations drivers_i2c_hid_ops;
void variant_update_devtree(struct device *dev)
{
uint32_t bid;
struct device *touchscreen_i2c_host;
struct device *child;
const struct bus *children_bus;
static const struct acpi_gpio new_enable_gpio =
ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146);
bid = board_id();
/* Nothing to update. */
if (bid == UNDEFINED_STRAPPING_ID || bid < 1)
return;
touchscreen_i2c_host = dev_find_slot(0, PCH_DEVFN_I2C7);
if (touchscreen_i2c_host == NULL)
return;
children_bus = touchscreen_i2c_host->link_list;
child = NULL;
/* Find all children on bus to update touchscreen enable gpio. */
while ((child = dev_bus_each_child(children_bus, child)) != NULL) {
struct drivers_i2c_generic_config *cfg;
/* No configration to change. */
if (child->chip_info == NULL)
continue;
if (child->chip_ops == &drivers_i2c_generic_ops)
cfg = child->chip_info;
else if (child->chip_ops == &drivers_i2c_hid_ops) {
struct drivers_i2c_hid_config *hid_cfg;
hid_cfg = child->chip_info;
cfg = &hid_cfg->generic;
} else
continue;
/* Update the enable gpio. */
memcpy(&cfg->enable_gpio, &new_enable_gpio,
sizeof(new_enable_gpio));
}
}