mb/google/octopus: Add two new sku IDs for foob
Declare these sku IDs: -SKU: 1 Foob, 1-cam, no touch, no pen. -SKU: 9 Foob360, 2-cam, touch, pen. BUG=b:145837644 BRANCH=octopus TEST=emerge-octopus coreboot Signed-off-by: tong.lin <tong.lin@bitland.corp-partner.google.com> Change-Id: Iffcbb3f6f945ea299ff687a383a82b88dcd11ea1 Reviewed-on: https://review.coreboot.org/c/coreboot/+/37906 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Marco Chen <marcochen@google.com>
This commit is contained in:
parent
086f0faf75
commit
325fd3462e
|
@ -1,3 +1,3 @@
|
||||||
bootblock-y += gpio.c
|
bootblock-y += gpio.c
|
||||||
|
|
||||||
ramstage-y += gpio.c
|
ramstage-y += gpio.c
|
||||||
|
ramstage-y += variant.c
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
#include <ec/google/chromeec/ec.h>
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
|
#define SKU_UNKNOWN 0xFFFFFFFF
|
||||||
|
|
||||||
static const struct pad_config default_override_table[] = {
|
static const struct pad_config default_override_table[] = {
|
||||||
PAD_NC(GPIO_52, UP_20K),
|
PAD_NC(GPIO_52, UP_20K),
|
||||||
PAD_NC(GPIO_53, UP_20K),
|
PAD_NC(GPIO_53, UP_20K),
|
||||||
|
@ -37,8 +39,47 @@ static const struct pad_config default_override_table[] = {
|
||||||
PAD_NC(GPIO_214, DN_20K),
|
PAD_NC(GPIO_214, DN_20K),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct pad_config non_touchscreen_override_table[] = {
|
||||||
|
/* disable I2C7 SCL and SDA */
|
||||||
|
PAD_NC(GPIO_114, UP_20K), /* LPSS_I2C7_SDA */
|
||||||
|
PAD_NC(GPIO_115, UP_20K), /* LPSS_I2C7_SCL */
|
||||||
|
|
||||||
|
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),
|
||||||
|
|
||||||
|
/* EN_PP3300_TOUCHSCREEN */
|
||||||
|
PAD_NC(GPIO_146, UP_20K),
|
||||||
|
|
||||||
|
PAD_NC(GPIO_161, DN_20K),
|
||||||
|
|
||||||
|
PAD_NC(GPIO_213, DN_20K),
|
||||||
|
PAD_NC(GPIO_214, DN_20K),
|
||||||
|
};
|
||||||
|
|
||||||
|
bool no_touchscreen_sku(uint32_t sku_id)
|
||||||
|
{
|
||||||
|
if (sku_id != 9)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||||
{
|
{
|
||||||
*num = ARRAY_SIZE(default_override_table);
|
const struct pad_config *c;
|
||||||
return default_override_table;
|
uint32_t sku_id = SKU_UNKNOWN;
|
||||||
|
|
||||||
|
sku_id = get_board_sku();
|
||||||
|
if (no_touchscreen_sku(sku_id)) {
|
||||||
|
c = non_touchscreen_override_table;
|
||||||
|
*num = ARRAY_SIZE(non_touchscreen_override_table);
|
||||||
|
} else {
|
||||||
|
c = default_override_table;
|
||||||
|
*num = ARRAY_SIZE(default_override_table);
|
||||||
|
}
|
||||||
|
|
||||||
|
return c;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* Copyright 2019 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 <baseboard/variants.h>
|
||||||
|
#include <soc/pci_devs.h>
|
||||||
|
#include <ec/google/chromeec/ec.h>
|
||||||
|
|
||||||
|
#define SKU_UNKNOWN 0xFFFFFFFF
|
||||||
|
|
||||||
|
void variant_update_devtree(struct device *dev)
|
||||||
|
{
|
||||||
|
uint32_t sku_id = SKU_UNKNOWN;
|
||||||
|
struct device *touchscreen_i2c_host;
|
||||||
|
|
||||||
|
touchscreen_i2c_host = pcidev_path_on_root(PCH_DEVFN_I2C7);
|
||||||
|
|
||||||
|
if (touchscreen_i2c_host == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* SKU ID 1 does not have a touchscreen device, hence disable it. */
|
||||||
|
sku_id = get_board_sku();
|
||||||
|
if (no_touchscreen_sku(sku_id))
|
||||||
|
touchscreen_i2c_host->enabled = 0;
|
||||||
|
}
|
Loading…
Reference in New Issue