summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/snow/board.c12
-rw-r--r--chip/stm32/clock-stm32f100.c5
2 files changed, 11 insertions, 6 deletions
diff --git a/board/snow/board.c b/board/snow/board.c
index b612955af3..258b534184 100644
--- a/board/snow/board.c
+++ b/board/snow/board.c
@@ -123,9 +123,17 @@ void configure_board(void)
STM32_GPIO_BSRR_OFF(GPIO_B) |= (1<<11) | (1<<10) | (1<<7) | (1<<6);
- /* Select Alternate function for USART1 on pins PA9/PA10 */
+ /*
+ * Set alternate function for USART1. For alt. function input
+ * the port is configured in either floating or pull-up/down
+ * input mode (ref. section 7.1.4 in datasheet RM0041):
+ * PA9: Tx, alt. function output
+ * PA10: Rx, input with pull-down
+ *
+ * note: see crosbug.com/p/12223 for more info
+ */
val = STM32_GPIO_CRH_OFF(GPIO_A) & ~0x00000ff0;
- val |= 0x00000990;
+ val |= 0x00000890;
STM32_GPIO_CRH_OFF(GPIO_A) = val;
/* EC_INT is output, open-drain */
diff --git a/chip/stm32/clock-stm32f100.c b/chip/stm32/clock-stm32f100.c
index cc5e53908f..6fc2bd29f8 100644
--- a/chip/stm32/clock-stm32f100.c
+++ b/chip/stm32/clock-stm32f100.c
@@ -160,23 +160,20 @@ static void config_hispeed_clock(void)
#ifdef CONFIG_FORCE_CONSOLE_RESUME
static void enable_serial_wakeup(int enable)
{
- static uint32_t save_crh, save_exticr;
+ static uint32_t save_exticr;
if (enable) {
/**
* allow to wake up from serial port (RX on pin PA10)
* by setting it as a GPIO with an external interrupt.
*/
- save_crh = STM32_GPIO_CRH_OFF(GPIO_A);
save_exticr = STM32_AFIO_EXTICR(10 / 4);
- STM32_GPIO_CRH_OFF(GPIO_A) = (save_crh & ~0xf00) | 0x400;
STM32_AFIO_EXTICR(10 / 4) = (save_exticr & ~(0xf << 8));
} else {
/* serial port wake up : don't go back to sleep */
if (STM32_EXTI_PR & (1 << 10))
disable_sleep(SLEEP_MASK_FORCE);
/* restore keyboard external IT on PC10 */
- STM32_GPIO_CRH_OFF(GPIO_A) = save_crh;
STM32_AFIO_EXTICR(10 / 4) = save_exticr;
}
}