summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorRachel Nancollas <rachelsn@google.com>2017-11-07 19:18:23 -0800
committerchrome-bot <chrome-bot@chromium.org>2017-11-15 20:21:12 -0800
commitdcf047fc1609b2afd06b7a2544f40742ae1e8493 (patch)
treef092ef80cbe5a7a87c01e49d7d9fdfff13ba7218 /board
parent204880575d9b4f8d630c5e3264d8f96fe7690031 (diff)
downloadchrome-ec-dcf047fc1609b2afd06b7a2544f40742ae1e8493.tar.gz
Meowth: Added initial board file.
Created Meowth symbolic link to Zoombini. Modified Zoombini gpio.inc and board, etc. files to compile a Meowth EC image with the correct gpios. BUG=b:69133424 BRANCH=none TEST=make BOARD=meowth and BOARD=zoombini runs with no errors Change-Id: Ib34d956efa89ae125de1ce7f8799162c74df0122 Signed-off-by: Rachel Nancollas <rachelsn@google.com> Reviewed-on: https://chromium-review.googlesource.com/762039 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'board')
l---------board/meowth1
-rw-r--r--board/zoombini/board.c53
-rw-r--r--board/zoombini/board.h37
-rw-r--r--board/zoombini/ec.tasklist13
-rw-r--r--board/zoombini/gpio.inc111
-rw-r--r--board/zoombini/usb_pd_policy.c12
6 files changed, 215 insertions, 12 deletions
diff --git a/board/meowth b/board/meowth
new file mode 120000
index 0000000000..69cccffc63
--- /dev/null
+++ b/board/meowth
@@ -0,0 +1 @@
+zoombini/ \ No newline at end of file
diff --git a/board/zoombini/board.c b/board/zoombini/board.c
index 61aabdb543..a9ad3a1ea8 100644
--- a/board/zoombini/board.c
+++ b/board/zoombini/board.c
@@ -57,6 +57,7 @@ const enum gpio_signal hibernate_wake_pins[] = {
};
const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
+/* TODO(aaboagye): Add the additional Mewoth temps sensors */
const struct adc_t adc_channels[] = {
[ADC_TEMP_SENSOR_SOC] = {
"SOC", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0
@@ -68,6 +69,7 @@ const struct adc_t adc_channels[] = {
};
/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
+/* TODO(aaboagye): Add the additional Meowth LEDs */
const struct pwm_t pwm_channels[] = {
[PWM_CH_LED_GREEN] = { 0, PWM_CONFIG_DSLEEP, 100 },
[PWM_CH_LED_RED] = { 2, PWM_CONFIG_DSLEEP, 100 },
@@ -81,8 +83,8 @@ const struct power_signal_info power_signal_list[] = {
POWER_SIGNAL_ACTIVE_HIGH | POWER_SIGNAL_DISABLE_AT_BOOT,
"SLP_S0_DEASSERTED"},
#ifdef CONFIG_ESPI_VW_SIGNALS
- {VW_SLP_S3_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_S3_DEASSERTED"},
- {VW_SLP_S4_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_S4_DEASSERTED"},
+ {VW_SLP_S3_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_S3_DEASSERTED"},
+ {VW_SLP_S4_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_S4_DEASSERTED"},
#else
{GPIO_PCH_SLP_S3_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_S3_DEASSERTED"},
{GPIO_PCH_SLP_S4_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_S4_DEASSERTED"},
@@ -90,11 +92,14 @@ const struct power_signal_info power_signal_list[] = {
{GPIO_PCH_SLP_SUS_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_SUS_DEASSERTED"},
{GPIO_RSMRST_L_PGOOD, POWER_SIGNAL_ACTIVE_HIGH, "RSMRST_L_PGOOD"},
{GPIO_PMIC_DPWROK, POWER_SIGNAL_ACTIVE_HIGH, "PMIC_DPWROK"},
+#ifdef BOARD_ZOOMBINI
{GPIO_PP5000_PGOOD, POWER_SIGNAL_ACTIVE_HIGH, "PP5000_A_PGOOD"},
+#endif
};
BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
/* I2C port map. */
+#ifdef BOARD_ZOOMBINI
const struct i2c_port_t i2c_ports[] = {
{"power", I2C_PORT_POWER, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
{"pmic", I2C_PORT_PMIC, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
@@ -103,20 +108,33 @@ const struct i2c_port_t i2c_ports[] = {
{"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_TCPC1_SCL, GPIO_TCPC1_SDA},
{"tcpc2", I2C_PORT_TCPC2, 1000, GPIO_TCPC2_SCL, GPIO_TCPC2_SDA},
};
+#else
+const struct i2c_port_t i2c_ports[] = {
+ {"battery", I2C_PORT_BATTERY, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
+ {"charger", I2C_PORT_CHARGER, 100, GPIO_I2C4_SCL, GPIO_I2C4_SDA},
+ {"pmic", I2C_PORT_PMIC, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
+ {"sensor", I2C_PORT_SENSOR, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
+ {"tcpc0", I2C_PORT_TCPC0, 1000, GPIO_TCPC0_SCL, GPIO_TCPC0_SDA},
+ {"tcpc1", I2C_PORT_TCPC1, 1000, GPIO_TCPC1_SCL, GPIO_TCPC1_SDA},
+};
+#endif
+
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
-/* TODO(aaboagye): Add the other ports. */
+/* TODO(aaboagye): Add the other ports. 3 for Zoombini, 2 for Meowth */
const struct sn5s330_config sn5s330_chips[] = {
{I2C_PORT_TCPC0, SN5S330_ADDR0},
};
const unsigned int sn5s330_cnt = ARRAY_SIZE(sn5s330_chips);
-
+#ifdef BOARD_ZOOMBINI
/* GPIO to enable/disable the USB Type-A port. */
const int usb_port_enable[CONFIG_USB_PORT_POWER_SMART_PORT_COUNT] = {
GPIO_USB_A_5V_EN,
};
+#endif
+#ifdef BOARD_ZOOMBINI
/* Keyboard scan setting */
struct keyboard_scan_config keyscan_config = {
/* Extra delay when KSO2 is tied to Cr50. */
@@ -131,6 +149,7 @@ struct keyboard_scan_config keyscan_config = {
0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
},
};
+#endif
const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_COUNT] = {
{
@@ -147,12 +166,14 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_COUNT] = {
.pol = TCPC_ALERT_ACTIVE_LOW,
},
+#ifdef BOARD_ZOOMBINI
{
.i2c_host_port = I2C_PORT_TCPC2,
.i2c_slave_addr = 0x16,
.drv = &tcpci_tcpm_drv,
.pol = TCPC_ALERT_ACTIVE_LOW,
},
+#endif
};
/* The port_addr members are PD port numbers, not I2C port numbers. */
@@ -169,37 +190,50 @@ struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_COUNT] = {
.hpd_update = &ps8xxx_tcpc_update_hpd_status,
},
+#ifdef BOARD_ZOOMBINI
{
.port_addr = 2,
.driver = &tcpci_tcpm_usb_mux_driver,
.hpd_update = &ps8xxx_tcpc_update_hpd_status,
},
+#endif
};
static void board_chipset_startup(void)
{
+#ifdef BOARD_ZOOMBINI
/* Enable trackpad. */
gpio_set_level(GPIO_EN_PP3300_TRACKPAD, 1);
+#endif
+ /* TODO(aaboagye): Remove Trackpad function in P1 - moved to AP */
}
DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
static void board_chipset_shutdown(void)
{
+#ifdef BOARD_ZOOMBINI
/* Disable trackpad. */
gpio_set_level(GPIO_EN_PP3300_TRACKPAD, 0);
+#endif
+ /* TODO(aaboagye): Remove Trackpad function in P1 - moved to AP */
}
DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
static void board_init(void)
{
+#ifdef BOARD_ZOOMBINI
struct charge_port_info chg;
int i;
+#endif
/* Enable TCPC interrupts. */
gpio_enable_interrupt(GPIO_USB_C0_PD_INT_L);
gpio_enable_interrupt(GPIO_USB_C1_PD_INT_L);
+#ifdef BOARD_ZOOMBINI
gpio_enable_interrupt(GPIO_USB_C2_PD_INT_L);
+#endif
+#ifdef BOARD_ZOOMBINI
/* Initialize VBUS suppliers. */
for (i = 0; i < CONFIG_USB_PD_PORT_COUNT; i++) {
if (tcpm_get_vbus_level(i)) {
@@ -211,6 +245,7 @@ static void board_init(void)
}
charge_manager_update_charge(CHARGE_SUPPLIER_VBUS, i, &chg);
}
+#endif
}
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
@@ -263,6 +298,7 @@ int board_set_active_charge_port(int port)
CPRINTS("New chg p%d", port);
+#ifdef BOARD_ZOOMBINI
if (port == CHARGE_PORT_NONE) {
/* Disable all ports. */
gpio_set_level(GPIO_USB_C0_CHARGE_EN_L, 1);
@@ -284,6 +320,13 @@ int board_set_active_charge_port(int port)
gpio_set_level(GPIO_USB_C1_CHARGE_EN_L, port != 1);
gpio_set_level(GPIO_USB_C2_CHARGE_EN_L, port != 2);
+#endif
+ /*
+ * TODO(aaboagye): Remove manual charge enabling on P1 -
+ * switched to sn5s330
+ */
+
+
/*
* Turn on the PP2 FET such that power actually flows and turn off the
* non-charge ports' PP2 FETs.
@@ -320,8 +363,10 @@ uint16_t tcpc_get_alert_status(void)
status |= PD_STATUS_TCPC_ALERT_0;
if (!gpio_get_level(GPIO_USB_C1_PD_INT_L))
status |= PD_STATUS_TCPC_ALERT_1;
+#ifdef BOARD_ZOOMBINI
if (!gpio_get_level(GPIO_USB_C2_PD_INT_L))
status |= PD_STATUS_TCPC_ALERT_2;
+#endif
return status;
}
diff --git a/board/zoombini/board.h b/board/zoombini/board.h
index 97bf6ba8e4..742bcede9b 100644
--- a/board/zoombini/board.h
+++ b/board/zoombini/board.h
@@ -36,7 +36,9 @@
#define CONFIG_BOARD_VERSION
+#ifdef BOARD_ZOOMBINI
#define CONFIG_BC12_DETECT_BQ24392
+#endif
#define CONFIG_CHARGER
#define CONFIG_CHARGER_V2
#define CONFIG_CHARGE_MANAGER
@@ -45,8 +47,10 @@
#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1
#define CONFIG_CHARGER_SENSE_RESISTOR 10
#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
+#ifdef BOARD_ZOOMBINI
#define CONFIG_CHARGE_RAMP_HW
#define CONFIG_USB_CHARGER
+#endif
#define CONFIG_CHIPSET_CANNONLAKE
#define CONFIG_CHIPSET_RESET_HOOK
@@ -61,16 +65,22 @@
#define CONFIG_I2C_MASTER
+#ifdef BOARD_ZOOMBINI
#define CONFIG_KEYBOARD_BOARD_CONFIG
#define CONFIG_KEYBOARD_COL2_INVERTED
#define CONFIG_KEYBOARD_PROTOCOL_8042
#define CONFIG_PWM_KBLIGHT
#define CONFIG_SWITCH
+#endif
#define CONFIG_USB_POWER_DELIVERY
#define CONFIG_USB_PD_ALT_MODE
#define CONFIG_USB_PD_ALT_MODE_DFP
+#ifdef BOARD_ZOOMBINI
#define CONFIG_USB_PD_PORT_COUNT 3
+#else
+#define CONFIG_USB_PD_PORT_COUNT 2
+#endif
#define CONFIG_USB_PD_DUAL_ROLE
#define CONFIG_USB_PD_LOGGING
/* TODO(aaboagye): What about CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT? */
@@ -83,12 +93,14 @@
#define CONFIG_USBC_VCONN
#define CONFIG_USBC_VCONN_SWAP
+#ifdef BOARD_ZOOMBINI
/* USB Type-A Port BC1.2 support */
#define CONFIG_USB_PORT_POWER_SMART
#undef CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 1
#define CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
#define GPIO_USB1_ILIM_SEL GPIO_USB_A_HIGH_POWER_EN
+#endif
/* Define typical operating power and max power. */
#define PD_MAX_VOLTAGE_MV 20000
@@ -106,6 +118,8 @@
#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
/* I2C Ports */
+/* Zoombini I2C config */
+#ifdef BOARD_ZOOMBINI
#define I2C_PORT_BATTERY I2C_PORT_POWER
#define I2C_PORT_CHARGER I2C_PORT_POWER
#define I2C_PORT_POWER NPCX_I2C_PORT0_0
@@ -122,8 +136,29 @@
#define GPIO_TCPC2_SCL GPIO_I2C5_SCL
#define GPIO_TCPC2_SDA GPIO_I2C5_SDA
+#else /* Meowth I2C config */
+#define I2C_PORT_CHARGER NPCX_I2C_PORT4_1
+#define I2C_PORT_BATTERY NPCX_I2C_PORT0_0
+#define I2C_PORT_PMIC NPCX_I2C_PORT3_0
+#define I2C_PORT_SENSOR NPCX_I2C_PORT7_0
+#define I2C_PORT_TCPC0 NPCX_I2C_PORT5_0
+#define I2C_PORT_TCPC1 NPCX_I2C_PORT1_0
+
+#define GPIO_TCPC0_SCL GPIO_I2C5_SCL
+#define GPIO_TCPC0_SDA GPIO_I2C5_SDA
+#define GPIO_TCPC1_SCL GPIO_I2C1_SCL
+#define GPIO_TCPC1_SDA GPIO_I2C1_SDA
+#endif
+
#define PMIC_I2C_ADDR TPS650X30_I2C_ADDR1
+#ifdef BOARD_MEOWTH
+#define PP5000_PGOOD_POWER_SIGNAL_MASK 0
+#else
+#define PP5000_PGOOD_POWER_SIGNAL_MASK \
+POWER_SIGNAL_MASK(PP5000_PGOOD)
+#endif
+
#ifndef __ASSEMBLER__
#include "gpio_signal.h"
@@ -151,7 +186,9 @@ enum power_signal {
X86_SLP_SUS_DEASSERTED,
X86_RSMRST_L_PGOOD,
X86_PMIC_DPWROK,
+#ifdef BOARD_ZOOMBINI
PP5000_PGOOD,
+#endif
POWER_SIGNAL_COUNT
};
diff --git a/board/zoombini/ec.tasklist b/board/zoombini/ec.tasklist
index dec8342612..024c0fbb52 100644
--- a/board/zoombini/ec.tasklist
+++ b/board/zoombini/ec.tasklist
@@ -20,6 +20,7 @@
* the port which they are for. See TASK_ID_TO_PD_PORT() macro.
*/
+#ifdef BOARD_ZOOMBINI
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
@@ -36,3 +37,15 @@
TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS(PD_C2, pd_task, NULL, LARGER_TASK_STACK_SIZE)
+#else
+#define CONFIG_TASK_LIST \
+ TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_NOTEST(PDCMD, pd_command_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE)
+#endif
diff --git a/board/zoombini/gpio.inc b/board/zoombini/gpio.inc
index ce8349008c..e181170371 100644
--- a/board/zoombini/gpio.inc
+++ b/board/zoombini/gpio.inc
@@ -8,6 +8,8 @@
/* Declare symbolic names for all the GPIOs that we care about.
* Note: Those with interrupt handlers must be declared first. */
+/* Zoombini GPIOs */
+#ifdef BOARD_ZOOMBINI
GPIO_INT(USB_C0_PD_INT_L, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
GPIO_INT(USB_C1_PD_INT_L, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
GPIO_INT(USB_C2_PD_INT_L, PIN(9, 5), GPIO_INT_FALLING, tcpc_alert_event)
@@ -56,6 +58,8 @@ GPIO(I2C2_SCL, PIN(9, 2), GPIO_INPUT)
GPIO(I2C2_SDA, PIN(9, 1), GPIO_INPUT)
GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT)
GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT)
+GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT)
+GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT)
GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT)
GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT)
GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT)
@@ -89,12 +93,14 @@ GPIO(BOARD_VERSION3, PIN(F, 0), GPIO_INPUT)
/* UART Pins */
ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, GPIO_PULL_UP)
/* I2C Ports */
-ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, GPIO_PULL_UP) /* I2C0 */
-ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, GPIO_PULL_UP) /* I2C1 SDA / I2C2 */
-ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, GPIO_PULL_UP) /* I2C1 SCL */
-ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, GPIO_PULL_UP) /* I2C3 */
-ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, GPIO_PULL_UP) /* I2C5 */
-ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, GPIO_PULL_UP) /* I2C7 */
+ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 */
+ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* I2C2 */
+ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* I2C1 SDA */
+ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL */
+ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3 */
+ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 */
+ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* I2C7 */
+ALTERNATE(PIN_MASK(F, 0x0C), 1, MODULE_I2C, 0) /* I2C4 */
/* Keyboard Pins */
/* KSI_00-01 */
@@ -113,9 +119,102 @@ ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH)
/* PWMs. */
ALTERNATE(PIN_MASK(C, 0x18), 1, MODULE_PWM, 0) /* LED 1 & 2 */
ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0) /* KB Backlight */
+
/* ADC */
ALTERNATE(PIN_MASK(4, 0x30), 1, MODULE_ADC, 0) /* ADC0-1 */
/* Power Switch Logic (PSL) inputs */
ALTERNATE(PIN_MASK(0, 0x03), 1, MODULE_PMU, 0) /* GPIO00, GPIO01 */
ALTERNATE(PIN_MASK(D, 0x04), 1, MODULE_PMU, 0) /* GPIOD2 */
+
+/* Meowth GPIOs */
+#else
+
+GPIO_INT(USB_C0_PD_INT_L, PIN(6, 1), GPIO_INT_FALLING, tcpc_alert_event)
+GPIO_INT(USB_C1_PD_INT_L, PIN(F, 5), GPIO_INT_FALLING, tcpc_alert_event)
+
+GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt)
+GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
+GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
+GPIO_INT(AC_PRESENT, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
+
+/* Power Signals. */
+GPIO_INT(PCH_SLP_S0_L, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt)
+#ifndef CONFIG_ESPI_VW_SIGNALS
+GPIO_INT(PCH_SLP_S3_L, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt)
+GPIO_INT(PCH_SLP_S4_L, PIN(A, 3), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt)
+#endif /* defined(CONFIG_ESPI_VW_SIGNALS) */
+GPIO_INT(PCH_SLP_SUS_L, PIN(D, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt)
+/* TODO(aaboagye): Internal PU may be needed later on... */
+GPIO_INT(RSMRST_L_PGOOD, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
+GPIO_INT(PMIC_DPWROK, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
+GPIO_INT(PMIC_INT_L, PIN(D, 5), GPIO_INT_FALLING | GPIO_PULL_UP, power_signal_interrupt)
+
+/* Power Enables. */
+GPIO(EN_PP3300_DSW, PIN(8, 2), GPIO_OUT_HIGH)
+GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW)
+GPIO(EN_PP1800_U, PIN(A, 0), GPIO_OUT_LOW)
+GPIO(EN_PP3300_WLAN, PIN(8, 3), GPIO_INPUT)
+
+GPIO(ENTERING_RW, PIN(E, 1), GPIO_OUT_LOW)
+GPIO(CCD_MODE_ODL, PIN(E, 3), GPIO_INPUT) /* Case Closed Debug mode. */
+GPIO(PMIC_EN, PIN(8, 6), GPIO_ODR_LOW)
+
+GPIO(PCH_DSW_PWROK, PIN(3, 7), GPIO_OUT_LOW) /* EC_PCH_DSW_PWROK */
+GPIO(PCH_RSMRST_L, PIN(C, 2), GPIO_OUT_LOW) /* EC_PCH_RSMRST_L */
+GPIO(PCH_RTCRST, PIN(7, 6), GPIO_OUT_LOW) /* EC_PCH_RTCRST */
+GPIO(PCH_PWRBTN_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
+GPIO(PCH_WAKE_L, PIN(7, 4), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
+GPIO(CPU_PROCHOT, PIN(3, 4), GPIO_INPUT) /* PCH_PROCHOT_ODL */
+GPIO(SYS_RESET_L, PIN(0, 2), GPIO_ODR_HIGH) /* SYS_RST_ODL */
+
+GPIO(I2C0_SCL, PIN(B, 5), GPIO_INPUT)
+GPIO(I2C0_SDA, PIN(B, 4), GPIO_INPUT)
+GPIO(I2C1_SCL, PIN(9, 0), GPIO_INPUT)
+GPIO(I2C1_SDA, PIN(8, 7), GPIO_INPUT)
+GPIO(I2C3_SCL, PIN(D, 1), GPIO_INPUT)
+GPIO(I2C3_SDA, PIN(D, 0), GPIO_INPUT)
+GPIO(I2C4_SCL, PIN(F, 3), GPIO_INPUT)
+GPIO(I2C4_SDA, PIN(F, 2), GPIO_INPUT)
+GPIO(I2C5_SCL, PIN(3, 3), GPIO_INPUT)
+GPIO(I2C5_SDA, PIN(3, 6), GPIO_INPUT)
+GPIO(I2C7_SCL, PIN(B, 3), GPIO_INPUT)
+GPIO(I2C7_SDA, PIN(B, 2), GPIO_INPUT)
+
+GPIO(BAT_PRESENT_L, PIN(E, 5), GPIO_INPUT)
+GPIO(USB_PD_RST_L, PIN(6, 2), GPIO_INPUT)
+
+GPIO(USB_C0_5V_EN, PIN(6, 7), GPIO_OUT_LOW)
+GPIO(USB_C1_5V_EN, PIN(7, 0), GPIO_OUT_LOW)
+
+GPIO(BOARD_VERSION1, PIN(9, 6), GPIO_INPUT)
+GPIO(BOARD_VERSION2, PIN(9, 3), GPIO_INPUT)
+GPIO(BOARD_VERSION3, PIN(A, 2), GPIO_INPUT)
+
+/* UART Pins */
+ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, GPIO_PULL_UP)
+/* I2C Ports */
+ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0 */
+ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* I2C1 SDA */
+ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1 SCL */
+ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3 */
+ALTERNATE(PIN_MASK(3, 0x48), 1, MODULE_I2C, 0) /* I2C5 */
+ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* I2C7 */
+ALTERNATE(PIN_MASK(F, 0x0C), 1, MODULE_I2C, 0) /* I2C4 */
+
+/* PWMs. */
+ALTERNATE(PIN_MASK(C, 0x18), 1, MODULE_PWM, 0) /* DB0 Green/Blue LED (M) */
+ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0) /* DB0 Red LED (M) */
+ALTERNATE(PIN_MASK(6, 0x01), 1, MODULE_PWM, 0) /* DB1 Red LED (M) */
+ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* DB1 Green LED (M) */
+ALTERNATE(PIN_MASK(C, 0x01), 1, MODULE_PWM, 0) /* DB1 Blue LED (M) */
+
+/* ADC */
+ALTERNATE(PIN_MASK(4, 0x32), 1, MODULE_ADC, 0) /* ADC0-1,4 */
+ALTERNATE(PIN_MASK(F, 0x02), 1, MODULE_ADC, 0) /* ADC8 */
+
+/* Power Switch Logic (PSL) inputs */
+ALTERNATE(PIN_MASK(0, 0x03), 1, MODULE_PMU, 0) /* GPIO00, GPIO01 */
+ALTERNATE(PIN_MASK(D, 0x04), 1, MODULE_PMU, 0) /* GPIOD2 */
+
+#endif
diff --git a/board/zoombini/usb_pd_policy.c b/board/zoombini/usb_pd_policy.c
index fe072875f2..db7a321957 100644
--- a/board/zoombini/usb_pd_policy.c
+++ b/board/zoombini/usb_pd_policy.c
@@ -104,6 +104,7 @@ int pd_is_valid_input_voltage(int mv)
void pd_power_supply_reset(int port)
{
+#ifdef BOARD_ZOOMBINI
/* Disable VBUS. */
switch (port) {
case 0:
@@ -121,6 +122,9 @@ void pd_power_supply_reset(int port)
default:
return;
};
+#else
+ /*TODO(aaboagye): Implement sn5s330 PPC for both Zoombini and Meowth */
+#endif
/* Notify host of power info change. */
pd_send_host_event(PD_EVENT_POWER_CHANGE);
@@ -128,6 +132,7 @@ void pd_power_supply_reset(int port)
int pd_set_power_supply_ready(int port)
{
+#ifdef BOARD_ZOOMBINI
switch (port) {
case 0:
/* Disable charging. */
@@ -159,6 +164,9 @@ int pd_set_power_supply_ready(int port)
default:
break;
};
+#else
+ /*TODO(aaboagye): Implement sn5s330 PPC for both Zoombini and Meowth */
+#endif
/* Notify host of power info change. */
pd_send_host_event(PD_EVENT_POWER_CHANGE);
@@ -299,8 +307,8 @@ static int svdm_dp_config(int port, uint32_t *payload)
payload[0] = VDO(USB_SID_DISPLAYPORT, 1,
CMD_DP_CONFIG | VDO_OPOS(opos));
payload[1] = VDO_DP_CFG(pin_mode, /* pin mode */
- 1, /* DPv1.3 signaling */
- 2); /* UFP connected */
+ 1, /* DPv1.3 signaling */
+ 2); /* UFP connected */
return 2;
};