summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorDavid Hendricks <dhendrix@chromium.org>2012-08-20 18:37:27 -0700
committerGerrit <chrome-bot@google.com>2012-08-21 14:14:47 -0700
commit31d9a1294e11e554c704d515b6752b81da934e1c (patch)
treefc6648926af721db4db16d16be1912bdcccc030d /board
parentede77d7cac6a9730f706cb110da414748b45379e (diff)
downloadchrome-ec-31d9a1294e11e554c704d515b6752b81da934e1c.tar.gz
snow: configure USART Rx as an input with pull resistor
USART1 has always had its Tx and Rx pins configured as "alternate function output". However, this turns out to be incorrect since there is no concept of an AF input on the STM32F. Instead, the Rx pin should be configured as an input (and the Tx remains an AF output). This also simplifies the console resume code since we only need to enable/disable the interrupt rather than reconfiguring the GPIO. Signed-off-by: David Hendricks <dhendrix@chromium.org> BRANCH=snow BUG=chrome-os-partner:12223 TEST=flashed on snow, EC console works Change-Id: Ia92dbbac16fc55d0db62381dfb487aeb4f4121b4 Reviewed-on: https://gerrit.chromium.org/gerrit/30941 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Commit-Ready: David Hendricks <dhendrix@chromium.org> Tested-by: David Hendricks <dhendrix@chromium.org>
Diffstat (limited to 'board')
-rw-r--r--board/snow/board.c12
1 files changed, 10 insertions, 2 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 */