glkrvp: Switch from NPCX5 EC to NPCX7 EC

BUG=b:68987606, b:72483287
BRANCH=glkrvp
TEST=GLKRVP can boot to OS

Change-Id: If4b99ca60005b97c59a1d8dc16c4065af63d34d8
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/750365
Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Vijay Hiremath
2017-11-01 18:48:48 -07:00
committed by chrome-bot
parent 313220c87d
commit f543a8e798
5 changed files with 129 additions and 116 deletions

View File

@@ -51,6 +51,8 @@ const struct power_signal_info power_signal_list[] = {
"SLP_S0_DEASSERTED"},
{GPIO_PCH_SLP_S3_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_S3_DEASSERTED"},
{GPIO_PCH_SLP_S4_L, POWER_SIGNAL_ACTIVE_HIGH, "SLP_S4_DEASSERTED"},
{GPIO_SUSPWRNACK, POWER_SIGNAL_ACTIVE_HIGH,
"SUSPWRNACK_DEASSERTED"},
{GPIO_ALL_SYS_PGOOD, POWER_SIGNAL_ACTIVE_HIGH, "ALL_SYS_PGOOD"},
};
@@ -58,11 +60,11 @@ BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
/* I2C ports */
const struct i2c_port_t i2c_ports[] = {
{"pmic", NPCX_I2C_PORT0_0, 100, GPIO_I2C0_SCL0, GPIO_I2C0_SDA0},
{"typec", NPCX_I2C_PORT0_1, 400, GPIO_I2C0_SCL1, GPIO_I2C0_SDA1},
{"master1", NPCX_I2C_PORT1, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
{"master2", NPCX_I2C_PORT2, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
{"charger", NPCX_I2C_PORT3, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
{"pmic", NPCX_I2C_PORT0_0, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA},
{"typec", NPCX_I2C_PORT7_0, 400, GPIO_I2C7_SCL, GPIO_I2C7_SDA},
{"master1", NPCX_I2C_PORT1_0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
{"master2", NPCX_I2C_PORT2_0, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
{"charger", NPCX_I2C_PORT3_0, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);

View File

@@ -57,6 +57,7 @@
/* UART */
#define NPCX_UART_MODULE2 1 /* 0:GPIO10/11 1:GPIO64/65 as UART */
#define NPCX7_PWM1_SEL 0 /* GPIO C2 is not used as PWM1. */
/* USB-A config */
@@ -119,9 +120,9 @@
#define NPCX_TACH_SEL2 0 /* 0:GPIO40/A4 1:GPIO93/D3 as TACH */
/* I2C ports */
#define I2C_PORT_CHARGER NPCX_I2C_PORT3
#define I2C_PORT_BATTERY NPCX_I2C_PORT3
#define I2C_PORT_USB_MUX NPCX_I2C_PORT0_1
#define I2C_PORT_CHARGER NPCX_I2C_PORT3_0
#define I2C_PORT_BATTERY NPCX_I2C_PORT3_0
#define I2C_PORT_USB_MUX NPCX_I2C_PORT7_0
/* EC exclude modules */
#undef CONFIG_ADC
@@ -138,6 +139,7 @@ enum power_signal {
X86_SLP_S0_N,
X86_SLP_S3_N,
X86_SLP_S4_N,
X86_SUSPWRDNACK,
X86_ALL_SYS_PG, /* PMIC_EC_PWROK_OD */

View File

@@ -7,7 +7,8 @@
#
CHIP:=npcx
CHIP_VARIANT:=npcx5m6g
CHIP_FAMILY:=npcx7
CHIP_VARIANT:=npcx7m6g
board-y=board.o
board-$(CONFIG_BATTERY_SMART)+=battery.o

View File

@@ -31,8 +31,8 @@ enum glkrvp_charge_ports {
};
const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_COUNT] = {
{NPCX_I2C_PORT0_1, 0xA0, &tcpci_tcpm_drv, TCPC_ALERT_ACTIVE_LOW},
{NPCX_I2C_PORT0_1, 0xA4, &tcpci_tcpm_drv, TCPC_ALERT_ACTIVE_LOW},
{NPCX_I2C_PORT7_0, 0xA0, &tcpci_tcpm_drv, TCPC_ALERT_ACTIVE_LOW},
{NPCX_I2C_PORT7_0, 0xA4, &tcpci_tcpm_drv, TCPC_ALERT_ACTIVE_LOW},
};
BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_COUNT);

View File

@@ -11,159 +11,167 @@
* Declare symbolic names for all the GPIOs that we care about.
* Note: Those with interrupt handlers must be declared first.
*/
GPIO_INT(PCH_SLP_S4_L, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S4_L */
GPIO_INT(PCH_SLP_S3_L, PIN(8, 5), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S3_L */
GPIO_INT(PCH_SLP_S0_L, PIN(8, 1), GPIO_INT_BOTH, power_signal_interrupt) /* SLP_S0_L */
GPIO_INT(RSMRST_L_PGOOD, PIN(3, 6), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_RSMRST_ODL */
GPIO_INT(ALL_SYS_PGOOD, PIN(7, 2), GPIO_INT_BOTH, power_signal_interrupt) /* PMIC_EC_PWROK_ODL */
GPIO_INT(POWER_BUTTON_L, PIN(A, 6), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
GPIO_INT(LID_OPEN, PIN(0, 3), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt) /* SMC_LID */
GPIO_INT(AC_PRESENT, PIN(D, 2), GPIO_INT_BOTH, extpower_interrupt) /* ACOK_OD from ISL9238 */
GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH | GPIO_SEL_1P8V, switch_interrupt) /* EC_WP_ODL */
GPIO_INT(USB_C0_PD_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
GPIO_INT(USB_C1_PD_INT_ODL, PIN(6, 3), GPIO_INT_FALLING, tcpc_alert_event)
/* Power sequencing interrupts */
GPIO_INT(SUSPWRNACK, PIN(0, 2), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(RSMRST_L_PGOOD,PIN(3, 6), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(ALL_SYS_PGOOD, PIN(7, 2), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(PCH_SLP_S0_L, PIN(8, 1), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(PCH_SLP_S3_L, PIN(8, 5), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(PCH_SLP_S4_L, PIN(8, 6), GPIO_INT_BOTH, power_signal_interrupt)
/* Button interrupts */
GPIO_INT(LID_OPEN, PIN(0, 3), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt)
GPIO_INT(EC_VOLUP_BTN_ODL, PIN(3, 4), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
GPIO_INT(EC_VOLDN_BTN_ODL, PIN(3, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt)
GPIO_INT(POWER_BUTTON_L, PIN(A, 6), GPIO_INT_BOTH, power_button_interrupt)
GPIO(PCH_PWRBTN_L, PIN(7, 5), GPIO_ODR_HIGH) /* EC_PCH_PWR_BTN_ODL */
GPIO(PCH_WAKE_L, PIN(C, 1), GPIO_ODR_HIGH) /* EC_PCH_WAKE_ODL */
GPIO(PCH_SYS_PWROK, PIN(3, 5), GPIO_OUT_LOW) /* EC_PCH_PWROK */
GPIO(ENABLE_BACKLIGHT, PIN(9, 7), GPIO_ODR_HIGH) /* EC_BL_EN_OD */
GPIO(ENTERING_RW, PIN(A, 7), GPIO_OUTPUT) /* EC_ENTERING_RW */
/* Type-C interrupts */
GPIO_INT(USB_C0_PD_INT_ODL, PIN(6, 2), GPIO_INT_FALLING, tcpc_alert_event)
GPIO_INT(USB_C1_PD_INT_ODL, PIN(6, 3), GPIO_INT_FALLING, tcpc_alert_event)
GPIO(PCH_RSMRST_L, PIN(0, 1), GPIO_OUT_LOW) /* EC_PCH_RSMRST_L */
GPIO(PCH_RCIN_L, PIN(0, 0), GPIO_ODR_HIGH) /* SYS_RST_ODL */
GPIO(SMC_SHUTDOWN, PIN(3, 3), GPIO_OUT_LOW | GPIO_PULL_DOWN) /* A_RAIL_EN */
GPIO_INT(AC_PRESENT, PIN(D, 2), GPIO_INT_BOTH, extpower_interrupt)
GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH | GPIO_SEL_1P8V, switch_interrupt)
/* Power sequencing GPIOs */
GPIO(PCH_RCIN_L, PIN(0, 0), GPIO_ODR_HIGH)
GPIO(PCH_RSMRST_L, PIN(0, 1), GPIO_OUT_LOW)
GPIO(SMC_SHUTDOWN, PIN(3, 3), GPIO_OUT_LOW | GPIO_PULL_DOWN)
GPIO(PCH_SYS_PWROK, PIN(3, 5), GPIO_OUT_LOW)
GPIO(PCH_PWRBTN_L, PIN(7, 5), GPIO_ODR_HIGH)
/*
* PCH_PROCHOT_ODL is primarily for monitoring the PROCHOT# signal which is
* normally driven by the PMIC. The EC can also drive this signal in the event
* that the ambient or charger temperature sensors exceeds their thresholds.
*/
GPIO(CPU_PROCHOT, PIN(A, 3), GPIO_INPUT) /* PCH_PROCHOT_ODL */
GPIO(EC_PCH_RTCRST, PIN(B, 7), GPIO_INPUT) /* EC_PCH_RTCRST TODO: Not used yet */
/* Host communication GPIOs */
GPIO(PCH_WAKE_L, PIN(C, 1), GPIO_ODR_HIGH)
GPIO(DC_JACK_PRESENT_L, PIN(7, 0), GPIO_INPUT) /* DC Jack presence coming from +V3P3_A_KBC */
GPIO(USBC_LDO_ENABLE, PIN(7, 1), GPIO_OUT_HIGH) /* USB TCPC to enable LDO in dead battery */
GPIO(ENABLE_BACKLIGHT, PIN(9, 7), GPIO_ODR_HIGH)
GPIO(ENTERING_RW, PIN(A, 7), GPIO_OUTPUT) /* EC_ENTERING_RW */
/*
* I2C pins should be configured as inputs until I2C module is
* initialized. This will avoid driving the lines unintentionally.
*/
GPIO(I2C0_SCL0, PIN(B, 5), GPIO_ODR_HIGH)
GPIO(I2C0_SDA0, PIN(B, 4), GPIO_ODR_HIGH)
GPIO(I2C0_SCL1, PIN(B, 3), GPIO_ODR_HIGH)
GPIO(I2C0_SDA1, PIN(B, 2), GPIO_ODR_HIGH)
GPIO(I2C1_SCL, PIN(9, 0), GPIO_ODR_HIGH)
GPIO(I2C1_SDA, PIN(8, 7), GPIO_ODR_HIGH)
GPIO(I2C2_SCL, PIN(9, 2), GPIO_ODR_HIGH)
GPIO(I2C2_SDA, PIN(9, 1), GPIO_ODR_HIGH)
GPIO(I2C3_SCL, PIN(D, 1), GPIO_ODR_HIGH)
GPIO(I2C3_SDA, PIN(D, 0), GPIO_ODR_HIGH)
GPIO(I2C0_SCL, PIN(B, 5), GPIO_ODR_HIGH)
GPIO(I2C0_SDA, PIN(B, 4), GPIO_ODR_HIGH)
GPIO(I2C1_SCL, PIN(9, 0), GPIO_ODR_HIGH)
GPIO(I2C1_SDA, PIN(8, 7), GPIO_ODR_HIGH)
GPIO(I2C2_SCL, PIN(9, 2), GPIO_ODR_HIGH)
GPIO(I2C2_SDA, PIN(9, 1), GPIO_ODR_HIGH)
GPIO(I2C3_SCL, PIN(D, 1), GPIO_ODR_HIGH)
GPIO(I2C3_SDA, PIN(D, 0), GPIO_ODR_HIGH)
GPIO(I2C7_SCL, PIN(B, 3), GPIO_ODR_HIGH)
GPIO(I2C7_SDA, PIN(B, 2), GPIO_ODR_HIGH)
/* Type-C control GPIOs */
UNIMPLEMENTED(USB_C0_5V_EN)
UNIMPLEMENTED(USB_C1_5V_EN)
/* LPC / eSPI signals */
#if 0
GPIO(LAD0_eSPI_IO0, PIN(4, 6), GPIO_INPUT) /* LAD0 / eSPI_IO0 */
GPIO(LAD1_eSPI_IO1, PIN(4, 7), GPIO_INPUT) /* LAD1 / eSPI_IO1 */
GPIO(LAD2_eSPI_IO2, PIN(5, 1), GPIO_INPUT) /* LAD2 / eSPI_IO2 */
GPIO(LAD3_eSPI_IO3, PIN(5, 2), GPIO_INPUT) /* LAD3 / eSPI_IO3 */
GPIO(LFRAME_eSPI_CS, PIN(5, 3), GPIO_INPUT) /* LFRAME / eSPI_CS */
GPIO(LRESET_eSPI_RST, PIN(5, 4), GPIO_INPUT) /* LRESET / eSPI_RST */
GPIO(PCI_CLK_eSPI_CLK, PIN(5, 5), GPIO_INPUT) /* PCI_CLK / eSPI_CLK */
GPIO(CLKRUN, PIN(5, 6), GPIO_INPUT) /* CLKRUN */
GPIO(SER_IRQ_eSPI_ALERT,PIN(5, 7), GPIO_INPUT) /* SER_IRQ / eSPI_ALERT */
#endif
/* Unused pins 3.3V & Interruptable */
GPIO(NC_02, PIN(0, 2), GPIO_INPUT)
GPIO(NC_04, PIN(0, 4), GPIO_INPUT)
GPIO(NC_04, PIN(0, 4), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_41, PIN(4, 1), GPIO_INPUT)
GPIO(NC_42, PIN(4, 2), GPIO_INPUT)
GPIO(NC_40, PIN(4, 0), GPIO_INPUT) /* TA1_TACH1 */
GPIO(NC_41, PIN(4, 1), GPIO_INPUT | GPIO_PULL_UP) /* ADC4 */
GPIO(NC_42, PIN(4, 2), GPIO_INPUT | GPIO_PULL_UP) /* ADC3 */
GPIO(NC_43, PIN(4, 3), GPIO_INPUT | GPIO_PULL_UP) /* ADC2 */
GPIO(NC_44, PIN(4, 4), GPIO_INPUT | GPIO_PULL_UP) /* ADC1 */
GPIO(NC_45, PIN(4, 5), GPIO_INPUT | GPIO_PULL_UP) /* ADC5 */
GPIO(NC_60, PIN(6, 0), GPIO_INPUT)
GPIO(NC_61, PIN(6, 1), GPIO_INPUT)
GPIO(NC_67, PIN(6, 7), GPIO_INPUT)
GPIO(NC_60, PIN(6, 0), GPIO_INPUT) /* PWM7 */
GPIO(NC_61, PIN(6, 1), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_67, PIN(6, 7), GPIO_INPUT) /* Wake-up button */
GPIO(NC_71, PIN(7, 1), GPIO_INPUT)
GPIO(NC_73, PIN(7, 3), GPIO_INPUT)
GPIO(NC_74, PIN(7, 4), GPIO_INPUT)
GPIO(NC_73, PIN(7, 3), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_74, PIN(7, 4), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_76, PIN(7, 6), GPIO_INPUT | GPIO_PULL_UP) /* SCI */
GPIO(NC_80, PIN(8, 0), GPIO_INPUT)
GPIO(NC_82, PIN(8, 2), GPIO_INPUT)
GPIO(NC_83, PIN(8, 3), GPIO_INPUT)
GPIO(NC_84, PIN(8, 4), GPIO_INPUT)
GPIO(NC_80, PIN(8, 0), GPIO_INPUT) /* PWM3 */
GPIO(NC_82, PIN(8, 2), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_83, PIN(8, 3), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_84, PIN(8, 4), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_B1, PIN(B, 1), GPIO_INPUT)
GPIO(NC_B1, PIN(B, 1), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_B7, PIN(B, 7), GPIO_INPUT) /* PWM5 */
GPIO(NC_C0, PIN(C, 0), GPIO_INPUT)
GPIO(NC_C2, PIN(C, 2), GPIO_INPUT)
GPIO(NC_C3, PIN(C, 3), GPIO_INPUT)
GPIO(NC_C4, PIN(C, 4), GPIO_INPUT)
GPIO(NC_C5, PIN(C, 5), GPIO_INPUT)
GPIO(NC_C7, PIN(C, 7), GPIO_INPUT)
GPIO(NC_C0, PIN(C, 0), GPIO_INPUT) /* PWM6 */
GPIO(NC_C2, PIN(C, 2), GPIO_INPUT) /* PWM1 */
GPIO(NC_C3, PIN(C, 3), GPIO_INPUT) /* PWM0 */
GPIO(NC_C4, PIN(C, 4), GPIO_INPUT) /* PWM2 */
GPIO(NC_C5, PIN(C, 5), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_C7, PIN(C, 7), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_D3, PIN(D, 3), GPIO_INPUT)
GPIO(NC_C6, PIN(C, 6), GPIO_INPUT | GPIO_PULL_UP) /* SMI */
GPIO(NC_E7, PIN(E, 7), GPIO_INPUT)
GPIO(NC_D3, PIN(D, 3), GPIO_INPUT) /* TB1 */
GPIO(NC_E7, PIN(E, 7), GPIO_INPUT) /* 32K_CLKIN */
/* Unused pins: VSPI 3.3V or 1.8V & Interruptable */
GPIO(NC_94, PIN(9, 4), GPIO_INPUT)
GPIO(NC_95, PIN(9, 5), GPIO_INPUT)
GPIO(NC_94, PIN(9, 4), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_95, PIN(9, 5), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_A1, PIN(A, 1), GPIO_INPUT)
GPIO(NC_A5, PIN(A, 5), GPIO_INPUT)
GPIO(NC_A1, PIN(A, 1), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_A5, PIN(A, 5), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_B0, PIN(B, 0), GPIO_INPUT)
GPIO(NC_B0, PIN(B, 0), GPIO_INPUT | GPIO_PULL_UP)
/* Unused pins 3.3V & Non-Interruptable */
GPIO(NC_32, PIN(3, 2), GPIO_INPUT)
GPIO(NC_32, PIN(3, 2), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_66, PIN(6, 6), GPIO_INPUT)
GPIO(NC_66, PIN(6, 6), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_B6, PIN(B, 6), GPIO_INPUT)
/* SMI/SCI pins unused for eSPI */
GPIO(NC_C6, PIN(C, 6), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_76, PIN(7, 6), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_B6, PIN(B, 6), GPIO_INPUT) /* PWM4 */
/* eSPI: VHIF Unused pins 1.8V & Interruptable */
GPIO(NC_46, PIN(4, 6), GPIO_INPUT)
GPIO(NC_47, PIN(4, 7), GPIO_INPUT)
GPIO(NC_50, PIN(5, 0), GPIO_INPUT)
GPIO(NC_51, PIN(5, 1), GPIO_INPUT)
GPIO(NC_52, PIN(5, 2), GPIO_INPUT)
GPIO(NC_53, PIN(5, 3), GPIO_INPUT)
GPIO(NC_54, PIN(5, 4), GPIO_INPUT)
GPIO(NC_55, PIN(5, 5), GPIO_INPUT)
GPIO(NC_56, PIN(5, 6), GPIO_INPUT)
GPIO(NC_57, PIN(5, 7), GPIO_INPUT)
GPIO(NC_50, PIN(5, 0), GPIO_INPUT | GPIO_PULL_UP)
/* Alternate pins for UART */
ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64/65 */
ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0) /* GPIO64/65 */
/* Alternate pins for I2C */
ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* I2C0SDA1/I2C0SCL1 GPIOB2/B3 */
ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0SDA0/I2C0SCL0 GPIOB4/B5 */
ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1SDA GPIO87 */
ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0) /* I2C1SCL/I2C2SDA/I2C2SCL GPIO90/91/92 */
ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3SDA/I2C3SCL GPIOD0/D1 */
/* Alternate pins for ADC/SPI/PWM/MFT */
ALTERNATE(PIN_MASK(4, 0x38), 1, MODULE_ADC, 0) /* ADC GPIO45/44/43 */
ALTERNATE(PIN_MASK(A, 0x0A), 1, MODULE_SPI, 0) /* SPIP_MOSI/SPIP_SCLK GPIOA3/A1 */
ALTERNATE(PIN_MASK(9, 0x20), 1, MODULE_SPI, 0) /* SPIP_MISO GPIO95 */
ALTERNATE(PIN_MASK(C, 0x04), 3, MODULE_PWM, 0) /* PWM1 for PWM/KBLIGHT Test GPIOC2 */
/* Alternative functionality for FANS */
#ifdef CONFIG_FANS
ALTERNATE(PIN_MASK(C, 0x08), 7, MODULE_PWM, 0) /* PWM0 for PWM/FAN Test GPIOC3 */
#if NPCX_TACH_SEL2
ALTERNATE(PIN_MASK(9, 0x08), 3, MODULE_PWM, 0) /* MFT-1/TA1_TACH1 for FAN GPIO93 */
#else
ALTERNATE(PIN_MASK(4, 0x01), 3, MODULE_PWM, 0) /* MFT-1/TA1_TACH1 for FAN Test GPIO40 */
#endif
#endif
ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0) /* I2C1:SDA GPIO87 */
ALTERNATE(PIN_MASK(9, 0x01), 1, MODULE_I2C, 0) /* I2C1:SCL GPIO90 */
ALTERNATE(PIN_MASK(9, 0x06), 1, MODULE_I2C, 0) /* I2C2:SDA/SCL GPIO91/92 */
ALTERNATE(PIN_MASK(B, 0x0C), 1, MODULE_I2C, 0) /* I2C7:SDA/SCL GPIOB2/B3 */
ALTERNATE(PIN_MASK(B, 0x30), 1, MODULE_I2C, 0) /* I2C0:SDA/SCL GPIOB4/B5 */
ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0) /* I2C3:SDA/SCL GPIOD0/D1 */
/* Keyboard pins */
#define GPIO_KB_INPUT (GPIO_INPUT)
#define GPIO_KB_OUTPUT (GPIO_ODR_HIGH)
/* Keyboard Columns */
ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* GPIO05/06/07 */
ALTERNATE(PIN_MASK(1, 0xFF), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* GPIO10/11/12/13/14/15/16/17 */
ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) /* GPIO20/21 */
/* GPIO05/06/07 */
ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
/* GPIO10/11/12/13/14/15/16/17 */
ALTERNATE(PIN_MASK(1, 0xFF), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
/* GPIO20/21 */
ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT)
/* Keyboard Rows */
ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* GPIO22/23/24/25/26/27 */
ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) /* GPIO30/31 */
/* GPIO22/23/24/25/26/27 */
ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
/* GPIO30/31 */
ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT)
/* EC SPI chip */
#if 0
GPIO(F_CS0_EC_L, PIN(A, 0), GPIO_OUT_HIGH | GPIO_PULL_UP)
ALTERNATE(PIN_MASK(A, 0x14), 1, MODULE_SPI, 0) /* SPI:MOSI/SCLK GPIOA4/A2 */
ALTERNATE(PIN_MASK(9, 0x40), 1, MODULE_SPI, 0) /* SPI:MISO GPIO96 */
#endif