summaryrefslogtreecommitdiff
path: root/src/mainboard/google/octopus/variants/foob/gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google/octopus/variants/foob/gpio.c')
-rw-r--r--src/mainboard/google/octopus/variants/foob/gpio.c45
1 files changed, 43 insertions, 2 deletions
diff --git a/src/mainboard/google/octopus/variants/foob/gpio.c b/src/mainboard/google/octopus/variants/foob/gpio.c
index 27ce0eea61..dec2ff550d 100644
--- a/src/mainboard/google/octopus/variants/foob/gpio.c
+++ b/src/mainboard/google/octopus/variants/foob/gpio.c
@@ -20,6 +20,8 @@
#include <soc/gpio.h>
#include <ec/google/chromeec/ec.h>
+#define SKU_UNKNOWN 0xFFFFFFFF
+
static const struct pad_config default_override_table[] = {
PAD_NC(GPIO_52, 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),
};
+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)
{
- *num = ARRAY_SIZE(default_override_table);
- return default_override_table;
+ const struct pad_config *c;
+ 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;
}