mb/google/octopus/var/phaser: Deprecate board id 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 code in variant.c to update enable gpio at runtime. BUG=b:119885949 Change-Id: I527973747e7d81ec47997da57eeb15f38d3ac2fd Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/29787 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
This commit is contained in:
parent
e3c2391fca
commit
e143243c1c
|
@ -68,28 +68,11 @@ static const struct pad_config sku1_default_override_table[] = {
|
||||||
PAD_NC(GPIO_214, DN_20K),
|
PAD_NC(GPIO_214, DN_20K),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct pad_config bid0_override_table[] = {
|
|
||||||
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_143, UP_20K),
|
|
||||||
PAD_NC(GPIO_161, DN_20K),
|
|
||||||
PAD_NC(GPIO_214, DN_20K),
|
|
||||||
};
|
|
||||||
|
|
||||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||||
{
|
{
|
||||||
const struct pad_config *c;
|
const struct pad_config *c;
|
||||||
uint32_t sku_id = SKU_UNKNOWN;
|
uint32_t sku_id = SKU_UNKNOWN;
|
||||||
|
|
||||||
switch (board_id()) {
|
|
||||||
case 0:
|
|
||||||
case UNDEFINED_STRAPPING_ID:
|
|
||||||
c = bid0_override_table;
|
|
||||||
*num = ARRAY_SIZE(bid0_override_table);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
google_chromeec_cbi_get_sku_id(&sku_id);
|
google_chromeec_cbi_get_sku_id(&sku_id);
|
||||||
if (sku_id == 1) {
|
if (sku_id == 1) {
|
||||||
c = sku1_default_override_table;
|
c = sku1_default_override_table;
|
||||||
|
@ -98,6 +81,6 @@ const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||||
c = default_override_table;
|
c = default_override_table;
|
||||||
*num = ARRAY_SIZE(default_override_table);
|
*num = ARRAY_SIZE(default_override_table);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,7 @@ chip soc/intel/apollolake
|
||||||
register "probed" = "1"
|
register "probed" = "1"
|
||||||
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
|
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
|
||||||
register "reset_delay_ms" = "20"
|
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 "enable_delay_ms" = "1"
|
||||||
register "has_power_resource" = "1"
|
register "has_power_resource" = "1"
|
||||||
device i2c 10 on end
|
device i2c 10 on end
|
||||||
|
@ -110,7 +110,7 @@ chip soc/intel/apollolake
|
||||||
register "generic.irq" = "ACPI_IRQ_EDGE_LOW(GPIO_212_IRQ)"
|
register "generic.irq" = "ACPI_IRQ_EDGE_LOW(GPIO_212_IRQ)"
|
||||||
register "generic.probed" = "1"
|
register "generic.probed" = "1"
|
||||||
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
|
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
|
||||||
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_213)"
|
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
|
||||||
register "generic.reset_delay_ms" = "45"
|
register "generic.reset_delay_ms" = "45"
|
||||||
register "generic.has_power_resource" = "1"
|
register "generic.has_power_resource" = "1"
|
||||||
register "generic.disable_gpio_export_in_crs" = "1"
|
register "generic.disable_gpio_export_in_crs" = "1"
|
||||||
|
|
|
@ -13,75 +13,25 @@
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <arch/acpi_device.h>
|
|
||||||
#include <baseboard/variants.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 <soc/pci_devs.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ec/google/chromeec/ec.h>
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
#define SKU_UNKNOWN 0xFFFFFFFF
|
#define SKU_UNKNOWN 0xFFFFFFFF
|
||||||
|
|
||||||
extern struct chip_operations drivers_i2c_generic_ops;
|
|
||||||
extern struct chip_operations drivers_i2c_hid_ops;
|
|
||||||
|
|
||||||
void variant_update_devtree(struct device *dev)
|
void variant_update_devtree(struct device *dev)
|
||||||
{
|
{
|
||||||
uint32_t bid;
|
|
||||||
uint32_t sku_id = SKU_UNKNOWN;
|
uint32_t sku_id = SKU_UNKNOWN;
|
||||||
struct device *touchscreen_i2c_host;
|
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);
|
touchscreen_i2c_host = dev_find_slot(0, PCH_DEVFN_I2C7);
|
||||||
|
|
||||||
if (touchscreen_i2c_host == NULL)
|
if (touchscreen_i2c_host == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* According to the sku id decide whether update touch
|
/* SKU ID 1 does not have a touchscreen device, hence disable it. */
|
||||||
* screen device information:
|
|
||||||
* 1. sku id is 1 then dev->enabled = 0.
|
|
||||||
*/
|
|
||||||
google_chromeec_cbi_get_sku_id(&sku_id);
|
google_chromeec_cbi_get_sku_id(&sku_id);
|
||||||
if (sku_id == 1) {
|
if (sku_id == 1)
|
||||||
touchscreen_i2c_host->enabled = 0;
|
touchscreen_i2c_host->enabled = 0;
|
||||||
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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue