diff options
author | Kevin K Wong <kevin.k.wong@intel.com> | 2015-06-24 23:23:20 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-06-26 18:57:25 +0000 |
commit | ccb6b15d514b695b9ea472aa98d5f1730d58e244 (patch) | |
tree | ed0d6568e37672ae74a2f83a7fc5b82e867ca2a6 /board | |
parent | 7067007b214c8d4973b58531e5e40830ed8c9e7b (diff) | |
download | chrome-ec-ccb6b15d514b695b9ea472aa98d5f1730d58e244.tar.gz |
kunimitsu: Code clean up.
This allows cleaner code diff from glados.
No new functional change is added.
BUG=none
TEST=Able to boot kunimitsu to OS.
BRANCH=none
Change-Id: I0ff7a097a617907a44c78d5e0f01dc409eb047ec
Signed-off-by: Kevin K Wong <kevin.k.wong@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/281832
Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/kunimitsu/battery.c | 3 | ||||
-rw-r--r-- | board/kunimitsu/board.c | 106 | ||||
-rw-r--r-- | board/kunimitsu/board.h | 72 | ||||
-rw-r--r-- | board/kunimitsu/ec.tasklist | 14 | ||||
-rw-r--r-- | board/kunimitsu/gpio.inc | 282 | ||||
-rw-r--r-- | board/kunimitsu/lfw/gpio.inc | 11 |
6 files changed, 250 insertions, 238 deletions
diff --git a/board/kunimitsu/battery.c b/board/kunimitsu/battery.c index 4cf4ce0dfe..0fa688e44d 100644 --- a/board/kunimitsu/battery.c +++ b/board/kunimitsu/battery.c @@ -7,9 +7,6 @@ #include "battery.h" #include "battery_smart.h" -#include "console.h" -#include "gpio.h" -#include "host_command.h" #include "util.h" /* Shutdown mode parameter to write to manufacturer access register */ diff --git a/board/kunimitsu/board.c b/board/kunimitsu/board.c index 7e4af229e0..a53c32e97f 100644 --- a/board/kunimitsu/board.c +++ b/board/kunimitsu/board.c @@ -6,8 +6,8 @@ #include "als.h" #include "button.h" -#include "charger.h" #include "charge_state.h" +#include "charger.h" #include "driver/accel_kxcj9.h" #include "driver/als_isl29035.h" #include "driver/temp_sensor/tmp432.h" @@ -22,8 +22,8 @@ #include "motion_sense.h" #include "power.h" #include "power_button.h" -#include "registers.h" #include "switch.h" +#include "task.h" #include "temp_sensor.h" #include "temp_sensor_chip.h" #include "thermal.h" @@ -60,65 +60,22 @@ void usb1_evt(enum gpio_signal signal) /* power signal list. Must match order of enum power_signal. */ const struct power_signal_info power_signal_list[] = { {GPIO_RSMRST_L_PGOOD, 1, "RSMRST_N_PWRGD"}, - {GPIO_PCH_SLP_S0_L, 1, "SLP_S0#_DEASSERTED"}, - {GPIO_PCH_SLP_S3_L, 1, "SLP_S3#_DEASSERTED"}, - {GPIO_PCH_SLP_S4_L, 1, "SLP_S4#_DEASSERTED"}, + {GPIO_PCH_SLP_S0_L, 1, "SLP_S0_DEASSERTED"}, + {GPIO_PCH_SLP_S3_L, 1, "SLP_S3_DEASSERTED"}, + {GPIO_PCH_SLP_S4_L, 1, "SLP_S4_DEASSERTED"}, {GPIO_PCH_SLP_SUS_L, 1, "SLP_SUS_DEASSERTED"}, }; BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT); const struct i2c_port_t i2c_ports[] = { - {"batt_chg_thermal", MEC1322_I2C0_0, 100, - GPIO_I2C_PORT0_SCL, GPIO_I2C_PORT0_SDA}, - {"sensors", MEC1322_I2C2, 100, - GPIO_I2C_PORT2_SCL, GPIO_I2C_PORT2_SDA}, + {"batt", MEC1322_I2C0_0, 100, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA}, + {"sensors", MEC1322_I2C2, 100, GPIO_I2C2_SCL, GPIO_I2C2_SDA }, }; const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); -/* - * Temperature sensors data; must be in same order as enum temp_sensor_id. - * Sensor index and name must match those present in coreboot: - * src/mainboard/google/${board}/acpi/dptf.asl +/** + * Discharge battery when on AC power for factory test. */ -const struct temp_sensor_t temp_sensors[] = { - {"TMP432_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val, - TMP432_IDX_LOCAL, 4}, - {"TMP432_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val, - TMP432_IDX_REMOTE1, 4}, - {"TMP432_Sensor_2", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val, - TMP432_IDX_REMOTE2, 4}, - {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_temp_sensor_get_val, - 0, 4}, -}; -BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); - -/* ALS instances. Must be in same order as enum als_id. */ -struct als_t als[] = { - {"ISL", isl29035_read_lux, 5}, -}; -BUILD_ASSERT(ARRAY_SIZE(als) == ALS_COUNT); - -#ifdef CONFIG_BUTTON_COUNT -const struct button_config buttons[] = { - {"Volume Down", KEYBOARD_BUTTON_VOLUME_DOWN, GPIO_VOLUME_DOWN_L, - 30 * MSEC, 0}, - {"Volume Up", KEYBOARD_BUTTON_VOLUME_UP, GPIO_VOLUME_UP_L, - 30 * MSEC, 0}, -}; -BUILD_ASSERT(ARRAY_SIZE(buttons) == CONFIG_BUTTON_COUNT); -#endif - -/* Thermal limits for each temp sensor. All temps are in degrees K. Must be in - * same order as enum temp_sensor_id. To always ignore any temp, use 0. - */ -struct ec_thermal_config thermal_params[] = { - {{0, 0, 0}, 0, 0}, /* TMP432_Internal */ - {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_1 */ - {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_2 */ - {{0, 0, 0}, 0, 0}, /* Battery Sensor */ -}; -BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT); - int board_discharge_on_ac(int enable) { return charger_discharge_on_ac(enable); @@ -213,3 +170,48 @@ static void motion_sensors_pre_init(void) } DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, motion_sensors_pre_init, MOTION_SENSE_HOOK_PRIO - 1); + +/* + * Temperature sensors data; must be in same order as enum temp_sensor_id. + * Sensor index and name must match those present in coreboot: + * src/mainboard/google/${board}/acpi/dptf.asl + */ +const struct temp_sensor_t temp_sensors[] = { + {"TMP432_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val, + TMP432_IDX_LOCAL, 4}, + {"TMP432_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val, + TMP432_IDX_REMOTE1, 4}, + {"TMP432_Sensor_2", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val, + TMP432_IDX_REMOTE2, 4}, + {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_temp_sensor_get_val, + 0, 4}, +}; +BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); + +/* + * Thermal limits for each temp sensor. All temps are in degrees K. Must be in + * same order as enum temp_sensor_id. To always ignore any temp, use 0. + */ +struct ec_thermal_config thermal_params[] = { + /* {Twarn, Thigh, Thalt}, fan_off, fan_max */ + {{0, 0, 0}, 0, 0}, /* TMP432_Internal */ + {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_1 */ + {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_2 */ + {{0, 0, 0}, 0, 0}, /* Battery */ +}; +BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT); + +/* ALS instances. Must be in same order as enum als_id. */ +struct als_t als[] = { + {"ISL", isl29035_read_lux, 5}, +}; +BUILD_ASSERT(ARRAY_SIZE(als) == ALS_COUNT); + +const struct button_config buttons[CONFIG_BUTTON_COUNT] = { + {"Volume Down", KEYBOARD_BUTTON_VOLUME_DOWN, GPIO_VOLUME_DOWN_L, + 30 * MSEC, 0}, + {"Volume Up", KEYBOARD_BUTTON_VOLUME_UP, GPIO_VOLUME_UP_L, + 30 * MSEC, 0}, +}; +BUILD_ASSERT(ARRAY_SIZE(buttons) == CONFIG_BUTTON_COUNT); + diff --git a/board/kunimitsu/board.h b/board/kunimitsu/board.h index 25c1d891fb..94ad91139e 100644 --- a/board/kunimitsu/board.h +++ b/board/kunimitsu/board.h @@ -9,24 +9,35 @@ #define __CROS_EC_BOARD_H /* Optional features */ -#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands */ -#define CONFIG_WATCHDOG_HELP -#define CONFIG_CLOCK_CRYSTAL -#define CONFIG_CHIPSET_SKYLAKE -#define CONFIG_SCI_GPIO GPIO_PCH_SCI_L +#define CONFIG_BATTERY_CUT_OFF +#define CONFIG_BATTERY_SMART +#define CONFIG_BUTTON_COUNT 2 + +#define CONFIG_CHARGER +#define CONFIG_CHARGER_V2 +#define CONFIG_CHARGER_BQ24770 +#define CONFIG_CHARGER_ILIM_PIN_DISABLED +#define CONFIG_CHARGER_SENSE_RESISTOR 10 +#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 +#define CONFIG_CHARGER_INPUT_CURRENT 2240 +#define CONFIG_CHARGER_DISCHARGE_ON_AC +#define CONFIG_CHIPSET_SKYLAKE +#define CONFIG_CLOCK_CRYSTAL +#define CONFIG_EXTPOWER_GPIO +#define CONFIG_I2C #define CONFIG_KEYBOARD_COL2_INVERTED #undef CONFIG_KEYBOARD_KSO_BASE #define CONFIG_KEYBOARD_KSO_BASE 0 /* KSO starts from KSO04 */ #define CONFIG_KEYBOARD_PROTOCOL_8042 +#define CONFIG_LID_SWITCH +#define CONFIG_PORT80_TASK_EN #define CONFIG_POWER_BUTTON #define CONFIG_POWER_BUTTON_X86 -#define CONFIG_LID_SWITCH #define CONFIG_POWER_COMMON #define CONFIG_POWER_SHUTDOWN_PAUSE_IN_S5 -#define CONFIG_EXTPOWER_GPIO -#define CONFIG_PORT80_TASK_EN +#define CONFIG_SCI_GPIO GPIO_PCH_SCI_L #define CONFIG_SPI_PORT 1 #define CONFIG_SPI_CS_GPIO GPIO_PVT_CS0 @@ -37,34 +48,30 @@ #define CONFIG_TEMP_SENSOR #define CONFIG_TEMP_SENSOR_TMP432 +/* + * Allow dangerous commands. + * TODO(shawnn): Remove this config before production. + */ +#define CONFIG_SYSTEM_UNLOCKED +#define CONFIG_WATCHDOG_HELP + +/* I2C ports */ +#define I2C_PORT_BATTERY MEC1322_I2C0_0 +#define I2C_PORT_CHARGER MEC1322_I2C0_0 +#define I2C_PORT_THERMAL MEC1322_I2C0_0 +#define I2C_PORT_ALS MEC1322_I2C2 +#define I2C_PORT_ACCEL MEC1322_I2C2 + #define CONFIG_ALS #define CONFIG_ALS_ISL29035 -#define CONFIG_CHARGER -#define CONFIG_BATTERY_CUT_OFF -#define CONFIG_BATTERY_SMART -#define CONFIG_CHARGER_V2 -#define CONFIG_CHARGER_BQ24770 -#define CONFIG_CHARGER_ILIM_PIN_DISABLED -#define CONFIG_CHARGER_SENSE_RESISTOR 10 -#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 -#define CONFIG_CHARGER_INPUT_CURRENT 2240 -#define CONFIG_CHARGER_DISCHARGE_ON_AC - -#define CONFIG_I2C /* Accelerometer */ #define CONFIG_ACCEL_KXCJ9 #define CONFIG_CMD_ACCELS #define CONFIG_CMD_ACCEL_INFO #define CONFIG_LID_ANGLE -#define CONFIG_SENSOR_BASE 0 -#define CONFIG_SENSOR_LID 1 - -#define CONFIG_LID_ANGLE_SENSOR_LID GPIO_GYRO_INT1 -#define CONFIG_LID_ANGLE_SENSOR_BASE GPIO_GYRO_INT1 - -/* Number of buttons */ -#define CONFIG_BUTTON_COUNT 2 +#define CONFIG_LID_ANGLE_SENSOR_BASE 0 +#define CONFIG_LID_ANGLE_SENSOR_LID 1 /* Modules we want to exclude */ #undef CONFIG_EEPROM @@ -74,19 +81,12 @@ #undef CONFIG_FANS #undef CONFIG_ADC #undef CONFIG_WAKE_PIN + #ifndef __ASSEMBLER__ #include "gpio_signal.h" #include "registers.h" -/* I2C ports */ -#define I2C_PORT_BATTERY MEC1322_I2C0_0 -#define I2C_PORT_CHARGER MEC1322_I2C0_0 -#define I2C_PORT_THERMAL MEC1322_I2C0_0 -#define I2C_PORT_ACCEL MEC1322_I2C2 -#define I2C_PORT_GYRO MEC1322_I2C2 -#define I2C_PORT_ALS MEC1322_I2C2 - /* power signal definitions */ enum power_signal { X86_RSMRST_L_PWRGD = 0, diff --git a/board/kunimitsu/ec.tasklist b/board/kunimitsu/ec.tasklist index d138cd9dd7..cc61737250 100644 --- a/board/kunimitsu/ec.tasklist +++ b/board/kunimitsu/ec.tasklist @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/** +/* * List of enabled tasks in the priority order * * The first one has the lowest priority. @@ -17,13 +17,13 @@ * 's' is the stack size in bytes; must be a multiple of 8 */ #define CONFIG_TASK_LIST \ - TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \ - TASK_ALWAYS(CHARGER, charger_task, NULL, TASK_STACK_SIZE) \ + TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_NOTEST(MOTIONSENSE, motion_sense_task, NULL, LARGER_TASK_STACK_SIZE) \ - TASK_NOTEST(CHIPSET, chipset_task, NULL, TASK_STACK_SIZE) \ + TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \ TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \ - TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) \ - TASK_NOTEST(PORT80, port80_task, NULL, TASK_STACK_SIZE) \ + TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(POWERBTN, power_button_task, NULL, TASK_STACK_SIZE) \ - TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) + TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ + TASK_NOTEST(PORT80, port80_task, NULL, TASK_STACK_SIZE) diff --git a/board/kunimitsu/gpio.inc b/board/kunimitsu/gpio.inc index dd5221aab5..e945cc48f3 100644 --- a/board/kunimitsu/gpio.inc +++ b/board/kunimitsu/gpio.inc @@ -5,139 +5,149 @@ * found in the LICENSE file. */ -GPIO_INT(PCH_SLP_SUS_L, PIN(12), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt) /* Deep sleep state */ -GPIO_INT(LID_OPEN, PIN(27), GPIO_INT_BOTH_DSLEEP, lid_interrupt) /* Lid switch */ -GPIO_INT(AC_PRESENT, PIN(30), GPIO_INT_BOTH_DSLEEP, extpower_interrupt) /* BC_ACOK / EC_ACIN - to know if battery or AC connected */ -GPIO_INT(VOLUME_UP_L, PIN(31), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume up button */ -GPIO_INT(WP_L, PIN(33), GPIO_INT_BOTH, switch_interrupt) /* Write protect input */ -GPIO_INT(POWER_BUTTON_L, PIN(35), GPIO_INT_BOTH_DSLEEP, power_button_interrupt) /* Power button */ -GPIO_INT(VOLUME_DOWN_L, PIN(47), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume down button */ -GPIO_INT(PMIC_INT, PIN(50), GPIO_INT_FALLING, power_signal_interrupt) /* Alert signal from PMIC */ -GPIO_INT(PD_MCU_INT, PIN(122),GPIO_INT_RISING | GPIO_INT_DSLEEP, pd_mcu_interrupt) /* Interrupt from USB PD Controller to EC */ -GPIO_INT(RSMRST_L_PGOOD, PIN(63), GPIO_INT_BOTH, power_signal_interrupt) /* RSMRST_N_PWRGD from power logic */ -GPIO_INT(USB_C1_VBUS_WAKE, PIN(123), GPIO_INT_BOTH, vbus0_evt) /* USB_C1_VBUS WAKE EVENT DETECT */ -GPIO_INT(USB_C0_BC12_INT_L, PIN(124), GPIO_INT_FALLING, usb0_evt) /* USB_C0_BC12_INT */ -#if defined(CONFIG_ACCEL_INTERRUPTS) && defined(CONFIG_SHARED_MOTION_INTERRUPT_LINE) -GPIO_INT(GYRO_INT2, PIN(127), GPIO_INT_RISING | GPIO_PULL_DOWN, motion_sns_interrupt) /* Gyro sensor interrupt 2 to EC */ -#else -GPIO_INT(GYRO_INT2, PIN(127), GPIO_INT_RISING | GPIO_PULL_DOWN, NULL) /* Gyro sensor interrupt 2 to EC */ -#endif -GPIO_INT(USB_C1_BC12_INT_L, PIN(145), GPIO_INT_FALLING, usb1_evt) /* USB_C1_BC12_INT */ -#ifdef CONFIG_ALS_INTERRUPTS -GPIO_INT(ALS_INT, PIN(147), GPIO_INT_FALLING | GPIO_PULL_UP, als_interrupt) /* ALS sensor interrupt to EC */ -#else -GPIO_INT(ALS_INT, PIN(147), GPIO_INT_FALLING | GPIO_PULL_UP, NULL) /* ALS sensor interrupt to EC */ -#endif -GPIO_INT(USB_C0_VBUS_WAKE, PIN(152), GPIO_INT_BOTH, vbus1_evt) /* USBC PORT 0 VBUS POWER DETECT */ -#if defined(CONFIG_ACCEL_INTERRUPTS) && defined(CONFIG_SHARED_MOTION_INTERRUPT_LINE) -GPIO_INT(GYRO_INT1, PIN(161), GPIO_INT_RISING | GPIO_PULL_DOWN, motion_sns_interrupt) /* Gyro sensor interrupt 1 to EC */ -#else -GPIO_INT(GYRO_INT1, PIN(161), GPIO_INT_RISING | GPIO_PULL_DOWN, NULL) /* Gyro sensor interrupt 1 to EC */ -#endif -GPIO_INT(PCH_SLP_S4_L, PIN(200), GPIO_INT_BOTH_DSLEEP | GPIO_PULL_UP, power_signal_interrupt) /* SLP_S4# signal from PCH */ -GPIO_INT(PCH_SLP_S3_L, PIN(206), GPIO_INT_BOTH_DSLEEP | GPIO_PULL_UP, power_signal_interrupt) /* SLP_S3# signal from PCH */ -GPIO_INT(PCH_SLP_S0_L, PIN(211), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt) /* Sleep SO signal from SOC to EC */ - -GPIO(EC_BRD_ID0, PIN(6), GPIO_INPUT) /* EC_BRD_ID0 */ -GPIO(EC_BRD_ID1, PIN(7), GPIO_INPUT) /* EC_BRD_ID1 */ - -GPIO(EC_BRD_ID2, PIN(10), GPIO_INPUT) /* EC_BRD_ID2 */ -GPIO(PP1800_DX_SENSOR_EN, PIN(11), GPIO_OUT_LOW) -GPIO(USB2_OTG_ID, PIN(13), GPIO_ODR_HIGH) /* Universal Serial Bus On-The-Go detection signal */ -GPIO(I2C_PORT0_SCL, PIN(15), GPIO_ODR_HIGH) -GPIO(I2C_PORT0_SDA, PIN(16), GPIO_ODR_HIGH) - -GPIO(I2C_PORT2_SCL, PIN(20), GPIO_ODR_HIGH) -GPIO(I2C_PORT2_SDA, PIN(21), GPIO_ODR_HIGH) -GPIO(I2C_PORT1_SCL, PIN(22), GPIO_ODR_HIGH) -GPIO(I2C_PORT1_SDA, PIN(23), GPIO_ODR_HIGH) -GPIO(I2C_PORT3_SCL, PIN(24), GPIO_ODR_HIGH) -GPIO(I2C_PORT3_SDA, PIN(25), GPIO_ODR_HIGH) -GPIO(PCH_SCI_L, PIN(26), GPIO_ODR_HIGH) /* SCI output */ - -GPIO(NC_034, PIN(34), GPIO_INPUT | GPIO_PULL_UP) /* NC */ -GPIO(USB_P3_PWR_EN, PIN(36), GPIO_OUT_HIGH) /* Enable power for USB2 Port */ - -GPIO(ENTERING_RW, PIN(41), GPIO_OUT_LOW) /* Indicate when EC is entering RW code */ -GPIO(PCH_SMI_L, PIN(44), GPIO_ODR_HIGH) /* SMI output */ -GPIO(PCH_PWRBTN_L, PIN(45), GPIO_OUT_HIGH) /* Power button output to PCH */ -GPIO(DDI1_HPD, PIN(46), GPIO_OUT_HIGH) /* DP hot plug detect from EC to SOC */ - -GPIO(DDI2_HPD, PIN(51), GPIO_OUT_HIGH) /* DP hot plug detect from EC to SOC */ -GPIO(CPU_PROCHOT, PIN(52), GPIO_OPEN_DRAIN) -GPIO(ENABLE_TOUCHPAD, PIN(53), GPIO_OUT_HIGH) /* Enable power to Track Pad */ -GPIO(ROP_DSW_PWROK, PIN(55), GPIO_INPUT) /* ZERO OHM DNP - RESERVED OPEN DRAIN */ -GPIO(BC_BATPRES, PIN(56), GPIO_INPUT) /* ?? */ -GPIO(V_BOOSTIN, PIN(57), GPIO_INPUT) /* ?? */ - -GPIO(USBPD_WAKE, PIN(60), GPIO_OUT_LOW) /* USBC WAKE NOTIFICATION from MEC EC to STM32 EC */ -GPIO(BC_IBAT, PIN(61), GPIO_INPUT) /* ?? */ -GPIO(BC_MON, PIN(62), GPIO_INPUT) /* ADC FUNCTION - FROM BATTERY CHARGER FOR SYSTEM POWER MONITOR */ -GPIO(EN_USB_C0_CHARGE, PIN(64), GPIO_OUT_HIGH) /* Enable USB-C0 Charge */ -GPIO(FLASH_DSC_OVERRIDE,PIN(65), GPIO_ODR_HIGH) /* Flash Descriptor Override */ -GPIO(PCH_WAKE_L, PIN(66), GPIO_ODR_HIGH) /* PCH wake pin */ -GPIO(USB_P4_PWR_EN, PIN(67), GPIO_OUT_HIGH) /* Enable power for USB3 Port */ - -GPIO(KBD_KSO2, PIN(101), GPIO_KB_OUTPUT_COL2) /* Negative edge triggered irq. */ -GPIO(FAN_TACH, PIN(105), GPIO_INPUT) /* ?? Need Alternate - FAN TACH */ - -GPIO(AC_PRESENT_PCH, PIN(110), GPIO_ODR_HIGH) /* */ - -GPIO(SYS_RESET_L, PIN(121), GPIO_ODR_HIGH) /* PM_SYSRST - ODR High */ -GPIO(USB_PD_EC_INT, PIN(122), GPIO_INT_BOTH) /* Interrupt from USB PD Controller to EC */ - -GPIO(EC_USBPD_RST, PIN(130), GPIO_ODR_HIGH) /* EC_USBPD_RST */ -GPIO(WLAN_OFF_L, PIN(132), GPIO_ODR_HIGH) /* Wireless LAN */ -GPIO(WWAN_PWR_EN, PIN(133), GPIO_OUT_HIGH) /* Enable power for WWAN */ -GPIO(PCH_RCIN_L, PIN(135), GPIO_ODR_HIGH) /* Reset line to PCH (for 8042 emulation) */ - -GPIO(USB2_OTG_VBUSSENSE,PIN(140), GPIO_ODR_HIGH) /* OTG VBUS STATUS TO PCH */ -GPIO(SEN_INT, PIN(141), GPIO_INT_BOTH_DSLEEP) /* SEN_INT */ -GPIO(PCH_RSMRST_L, PIN(143), GPIO_OUT_LOW) /* RSMRST_N to PCH */ -GPIO(PVT_CS0, PIN(146), GPIO_ODR_HIGH) /* SPI PVT Chip select */ - -GPIO(NC_150, PIN(150), GPIO_INPUT | GPIO_PULL_UP) /* NC */ -GPIO(DEVICE_PROCHOT, PIN(151), GPIO_INT_FALLING) /* Device Proc Hot */ -GPIO(EN_USB_C0_5V_OUT, PIN(154), GPIO_OUT_LOW) /* Enable USB-C0 5V */ -GPIO(CHARGE_LED1, PIN(155), GPIO_OUT_HIGH) /* Charge LED 1 */ -GPIO(CHARGE_LED2, PIN(156), GPIO_OUT_HIGH) /* Charge LED 2 */ -GPIO(EN_USB_C1_CHARGE, PIN(157), GPIO_OUT_HIGH) /* Enable USB-C1 Charge */ - -GPIO(PP1800_DX_AUDIO_EN,PIN(160), GPIO_OUT_LOW) -GPIO(RTC_RST, PIN(163), GPIO_OPEN_DRAIN) /* RTC_RST */ - -GPIO(NC_201, PIN(201), GPIO_INPUT | GPIO_PULL_UP) /* NC */ -GPIO(EC_BL_DISABLE_L, PIN(202), GPIO_OUT_HIGH) /* EDP backligh disable signal from EC */ -GPIO(PP3300_WLAN_EN, PIN(203), GPIO_OUT_HIGH) /* Enable power to wifi */ -GPIO(EN_USB_C1_5V_OUT, PIN(204), GPIO_OUT_LOW) /* Enable USB-C1 5V */ - -GPIO(ROP_EC_1HZ_WAKE, PIN(210), GPIO_INT_BOTH) /* 1 HZ CLOCK FOR LOW POWER MODE FUNCTION */ - -/* Alternate functions GPIO definition */ -ALTERNATE(PIN_MASK(16, 0x24), 1, MODULE_UART, 0) /* UART0 */ - -ALTERNATE(PIN_MASK(1, 0x60), 2, MODULE_I2C, GPIO_PULL_UP) /* I2C0: Battery Charger */ -ALTERNATE(PIN_MASK(2, 0x3f), 2, MODULE_I2C, GPIO_PULL_UP) /* I2C1: Temp Sensor / I2C2: SOC / I2C3: VNN */ -/* PORT SEL [3:0] has to be set to 1 to access this port 1 of controller 0 */ -ALTERNATE(PIN_MASK(13, 0x10), 2, MODULE_I2C, GPIO_PULL_UP) /* I2C0 - Port 1 : Accel SCL */ -ALTERNATE(PIN_MASK(1, 0x80), 2, MODULE_I2C, GPIO_PULL_UP) /* I2C0 - Port 1 : Accel SDA*/ - -ALTERNATE(PIN_MASK(0, 0x3d), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) -ALTERNATE(PIN_MASK(1, 0x02), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) -ALTERNATE(PIN_MASK(10, 0xdd), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) -ALTERNATE(PIN_MASK(3, 0x04), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) -ALTERNATE(PIN_MASK(4, 0x0d), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) -ALTERNATE(PIN_MASK(12, 0x60), 2, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) -ALTERNATE(PIN_MASK(14, 0x14), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) - -ALTERNATE(PIN_MASK(1, 0x10), 1, MODULE_LPC, 0) /* 14: CLKRUN# */ -ALTERNATE(PIN_MASK(11, 0x9e), 1, MODULE_LPC, 0) /* 111~114: LAD[0:3], 117: PCI_CLK */ -ALTERNATE(PIN_MASK(11, 0x40), 1, MODULE_LPC, GPIO_INT_BOTH) /* 116: LRESET# */ -ALTERNATE(PIN_MASK(12, 0x01), 1, MODULE_LPC, 0) /* 120: LFRAME# */ -ALTERNATE(PIN_MASK(11, 0x20), 1, MODULE_LPC, 0) - -ALTERNATE(PIN_MASK(5, 0x10), 1, MODULE_SPI, 0) /* 54: MOSI */ -ALTERNATE(PIN_MASK(16, 0x10), 1, MODULE_SPI, 0) /* 164: MISO */ -ALTERNATE(PIN_MASK(15, 0x08), 1, MODULE_SPI, 0) /* 153: CLK */ - -ALTERNATE(PIN_MASK(13, 0x40), 1, MODULE_PWM_LED, GPIO_OPEN_DRAIN) /* 136: PWM1 */ +GPIO_INT(LID_OPEN, PIN(27), GPIO_INT_BOTH_DSLEEP, lid_interrupt) +GPIO_INT(AC_PRESENT, PIN(30), GPIO_INT_BOTH_DSLEEP, extpower_interrupt) +GPIO_INT(WP_L, PIN(33), GPIO_INT_BOTH, switch_interrupt) +/* Buffered power button input from PMIC / ROP_EC_PWR_BTN_L_R */ +GPIO_INT(POWER_BUTTON_L, PIN(35), GPIO_INT_BOTH_DSLEEP, power_button_interrupt) +/* RSMRST from PMIC */ +GPIO_INT(RSMRST_L_PGOOD, PIN(63), GPIO_INT_BOTH, power_signal_interrupt) +GPIO_INT(PCH_SLP_S4_L, PIN(200), GPIO_INT_BOTH_DSLEEP | GPIO_PULL_UP, power_signal_interrupt) +GPIO_INT(PCH_SLP_S3_L, PIN(206), GPIO_INT_BOTH_DSLEEP | GPIO_PULL_UP, power_signal_interrupt) +GPIO_INT(PCH_SLP_S0_L, PIN(211), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt) +GPIO_INT(PCH_SLP_SUS_L, PIN(12), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt) +GPIO_INT(VOLUME_UP_L, PIN(31), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) +GPIO_INT(VOLUME_DOWN_L, PIN(47), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) +GPIO_INT(PMIC_INT_L, PIN(50), GPIO_INT_FALLING, power_signal_interrupt) +GPIO_INT(PD_MCU_INT, PIN(122), GPIO_INT_RISING | GPIO_INT_DSLEEP, pd_mcu_interrupt) +GPIO_INT(USB_C0_VBUS_WAKE_L,PIN(152), GPIO_INT_BOTH, vbus0_evt) +GPIO_INT(USB_C1_VBUS_WAKE_L,PIN(123), GPIO_INT_BOTH, vbus1_evt) +GPIO_INT(USB_C0_BC12_INT_L, PIN(124), GPIO_INT_FALLING, usb0_evt) +GPIO_INT(USB_C1_BC12_INT_L, PIN(145), GPIO_INT_FALLING, usb1_evt) + +GPIO(ROP_DSW_PWROK, PIN(55), GPIO_INPUT) + +GPIO(PD_RST_L, PIN(130), GPIO_ODR_HIGH) +GPIO(USB2_OTG_ID, PIN(13), GPIO_ODR_HIGH) +/* I2C pins - these will be reconfigured for alternate function below */ +GPIO(I2C0_0_SCL, PIN(15), GPIO_ODR_HIGH) +GPIO(I2C0_0_SDA, PIN(16), GPIO_ODR_HIGH) +GPIO(I2C1_SCL, PIN(22), GPIO_ODR_HIGH) +GPIO(I2C1_SDA, PIN(23), GPIO_ODR_HIGH) +GPIO(I2C2_SCL, PIN(20), GPIO_ODR_HIGH) +GPIO(I2C2_SDA, PIN(21), GPIO_ODR_HIGH) +GPIO(I2C3_SCL, PIN(24), GPIO_ODR_HIGH) +GPIO(I2C3_SDA, PIN(25), GPIO_ODR_HIGH) +GPIO(PCH_SCI_L, PIN(26), GPIO_ODR_HIGH) + +GPIO(NC_034, PIN(34), GPIO_INPUT | GPIO_PULL_UP) +GPIO(USB1_ENABLE, PIN(36), GPIO_OUT_HIGH) +GPIO(USB2_ENABLE, PIN(67), GPIO_OUT_HIGH) +GPIO(ENTERING_RW, PIN(41), GPIO_OUT_LOW) +GPIO(PCH_SMI_L, PIN(44), GPIO_ODR_HIGH) +GPIO(PCH_PWRBTN_L, PIN(45), GPIO_OUT_HIGH) +GPIO(USB_C0_DP_HPD, PIN(46), GPIO_OUT_HIGH) +GPIO(USB_C1_DP_HPD, PIN(51), GPIO_OUT_HIGH) +GPIO(CPU_PROCHOT, PIN(52), GPIO_OPEN_DRAIN) +GPIO(ENABLE_TOUCHPAD, PIN(53), GPIO_OUT_HIGH) +GPIO(BAT_PRESENT_L, PIN(56), GPIO_INPUT) +GPIO(USB_PD_WAKE, PIN(60), GPIO_OUT_LOW) +/* When asserted, ME does not lock security descriptor */ +GPIO(PCH_SEC_DISABLE_L, PIN(65), GPIO_ODR_HIGH) +GPIO(PCH_WAKE_L, PIN(66), GPIO_ODR_HIGH) +GPIO(EC_FAN1_TTACH, PIN(105), GPIO_INPUT) +/* Fan PWM output - NC / testing only */ +GPIO(EC_FAN1_PWM, PIN(136), GPIO_OUT_LOW) +GPIO(PCH_ACOK, PIN(110), GPIO_ODR_HIGH) +/* Interrupts from accelerometer / gyro -- not yet implemented */ +GPIO(GYRO_INT1, PIN(161), GPIO_INPUT | GPIO_PULL_DOWN) +GPIO(GYRO_INT2, PIN(127), GPIO_INPUT | GPIO_PULL_DOWN) +GPIO(ALS_INT, PIN(147), GPIO_INPUT | GPIO_PULL_UP) +GPIO(WWAN_PWR_EN, PIN(133), GPIO_OUT_HIGH) +GPIO(WLAN_OFF_L, PIN(132), GPIO_ODR_HIGH) +/* RCIN# line to PCH for 8042 emulation */ +GPIO(PCH_RCIN_L, PIN(135), GPIO_ODR_HIGH) +GPIO(USB2_OTG_VBUSSENSE, PIN(140), GPIO_ODR_HIGH) +/* Sensor input for KB PROX - UNUSED */ +GPIO(KB_PROX_INT_L, PIN(141), GPIO_INPUT) +GPIO(PCH_RSMRST_L, PIN(143), GPIO_OUT_LOW) +/* prochot input from devices */ +GPIO(PLATFORM_EC_PROCHOT, PIN(151), GPIO_INPUT) +GPIO(USB_C0_5V_EN, PIN(154), GPIO_OUT_LOW) +GPIO(USB_C1_5V_EN, PIN(204), GPIO_OUT_LOW) +GPIO(USB_C0_CHARGE_EN_L, PIN(64), GPIO_OUT_HIGH) +GPIO(USB_C1_CHARGE_EN_L, PIN(157), GPIO_OUT_HIGH) +GPIO(PP1800_DX_SENSOR_EN, PIN(11), GPIO_OUT_LOW) +GPIO(PP1800_DX_AUDIO_EN, PIN(160), GPIO_OUT_LOW) +GPIO(RTC_RST, PIN(163), GPIO_OPEN_DRAIN) + +GPIO(NC_201, PIN(201), GPIO_INPUT | GPIO_PULL_UP) +GPIO(ENABLE_BACKLIGHT, PIN(202), GPIO_OUT_HIGH) +GPIO(PP3300_WLAN_EN, PIN(203), GPIO_OUT_HIGH) +GPIO(EC_WAKE_CLK, PIN(210), GPIO_INPUT) +GPIO(EC_BRD_ID0, PIN(6), GPIO_INPUT) +GPIO(EC_BRD_ID1, PIN(7), GPIO_INPUT) +GPIO(EC_BRD_ID2, PIN(10), GPIO_INPUT) +GPIO(KBD_KSO2, PIN(101), GPIO_KB_OUTPUT_COL2) +GPIO(PVT_CS0, PIN(146), GPIO_ODR_HIGH) +GPIO(SYS_RESET_L, PIN(121), GPIO_ODR_HIGH) + +GPIO(V_BOOSTIN, PIN(57), GPIO_INPUT) +GPIO(BC_IBAT, PIN(61), GPIO_INPUT) +GPIO(BC_MON, PIN(62), GPIO_INPUT) + +GPIO(NC_11, PIN(11), GPIO_INPUT | GPIO_PULL_UP) +GPIO(NC_150, PIN(150), GPIO_INPUT | GPIO_PULL_UP) +GPIO(CHARGE_LED1, PIN(155), GPIO_OUT_HIGH) +GPIO(CHARGE_LED2, PIN(156), GPIO_OUT_HIGH) + +/* Alternate functions GPIO definitions */ + +/* GPIO162(UART_RX), GPIO165(UART_TX) */ +ALTERNATE(PIN_MASK(16, 0x24), 1, MODULE_UART, 0) + +/* KB pins */ +/* KB ROW - GPIO000-GPIO005 */ +ALTERNATE(PIN_MASK(0, 0x3f), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) +/* KB ROW - GPIO100-GPIO104, GPIO106-GPIO107 */ +/* NOTE - GP101 should be configured as GPIO */ +ALTERNATE(PIN_MASK(10, 0xdd), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_OUTPUT) +/* KB COL - GPIO032 */ +ALTERNATE(PIN_MASK(3, 0x04), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) +/* KB COL - GPIO040, GPIO42-GPIO43 */ +ALTERNATE(PIN_MASK(4, 0x0d), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) +/* KB COL - GPIO125-GPIO126 */ +ALTERNATE(PIN_MASK(12, 0x60), 2, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) +/* KB COL - GPIO142, GPIO144 */ +ALTERNATE(PIN_MASK(14, 0x14), 3, MODULE_KEYBOARD_SCAN, GPIO_KB_INPUT) + +/* LPC pins */ +/* LPC_CLK_RUN_L - GPIO014 */ +ALTERNATE(PIN_MASK(1, 0x10), 1, MODULE_LPC, 0) +/* LAD[0:3] - GPIO111-GPIO114, SERIRQ - GPIO115, PCI_CLK - GPIO117 */ +ALTERNATE(PIN_MASK(11, 0xbe), 1, MODULE_LPC, 0) +/* LRESET# - GPIO116 */ +ALTERNATE(PIN_MASK(11, 0x40), 1, MODULE_LPC, GPIO_INT_BOTH) +/* LFRAME# - GPIO120 */ +ALTERNATE(PIN_MASK(12, 0x01), 1, MODULE_LPC, 0) + +/* SPI pins */ +/* MOSI - GPIO054 */ +ALTERNATE(PIN_MASK(5, 0x10), 1, MODULE_SPI, 0) +/* MISO - GPIO164 */ +ALTERNATE(PIN_MASK(16, 0x10), 1, MODULE_SPI, 0) +/* PVT_SCLK - GPIO153 */ +ALTERNATE(PIN_MASK(15, 0x08), 1, MODULE_SPI, 0) + +/* I2C pins */ +/* I2C0_0 CLK - GPIO015, I2C0_0 DAT - GPIO016, I2C0_1 DAT - GPIO017 */ +ALTERNATE(PIN_MASK(1, 0xe0), 2, MODULE_I2C, GPIO_PULL_UP) +/* I2C{1,2,3} CLK / DAT - GPIO020-GPIO025*/ +ALTERNATE(PIN_MASK(2, 0x3f), 2, MODULE_I2C, GPIO_PULL_UP) +/* I2C0_1 CLK - GPIO134 */ +ALTERNATE(PIN_MASK(13, 0x10), 2, MODULE_I2C, GPIO_PULL_UP) + +/* VCC1_RST# - GPIO131 */ +ALTERNATE(PIN_MASK(13, 0x02), 1, MODULE_PMU, 0) +/* nRESET_OUT - GPIO121 */ +ALTERNATE(PIN_MASK(12, 0x02), 1, MODULE_PMU, 0) diff --git a/board/kunimitsu/lfw/gpio.inc b/board/kunimitsu/lfw/gpio.inc index 122aff0cdf..b7743916bc 100644 --- a/board/kunimitsu/lfw/gpio.inc +++ b/board/kunimitsu/lfw/gpio.inc @@ -1,16 +1,19 @@ /* -*- mode:c -*- * - * Copyright (c) 2014 The Chromium OS Authors. All rights reserved. + * Copyright (c) 2015 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * * Minimal set of GPIOs needed for LFW loader */ -GPIO(PVT_CS0, PIN(146), GPIO_ODR_HIGH) /* SPI PVT Chip select */ +/* SPI PVT chip select */ +GPIO(PVT_CS0, PIN(146), GPIO_ODR_HIGH) /* Alternate functions GPIO definition */ -ALTERNATE(PIN_MASK(16, 0x24), 1, MODULE_UART, 0) /* UART0 */ +/* UART */ +ALTERNATE(PIN_MASK(16, 0x24), 1, MODULE_UART, 0) +/* SPI pins */ ALTERNATE(PIN_MASK(5, 0x10), 1, MODULE_SPI, 0) ALTERNATE(PIN_MASK(16, 0x10), 1, MODULE_SPI, 0) -ALTERNATE(PIN_MASK(15, 0x08), 1, MODULE_SPI, 0) /* 153: CLK */ +ALTERNATE(PIN_MASK(15, 0x08), 1, MODULE_SPI, 0) |