summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2014-10-21 14:48:22 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-10-22 02:23:31 +0000
commit93aa23c6856b8b78f2c6a980ad0e82cb802afc3c (patch)
tree198e6d4eb6a37c1b32c8937decb7913681769998
parent7198d0303c19291c6f4925fe19c54c6627dd4b4d (diff)
downloadchrome-ec-93aa23c6856b8b78f2c6a980ad0e82cb802afc3c.tar.gz
ryu_p2: Set alternate function for USB D+/D- pins
Unlike STM32F0, we need to configure alternate function for USB module on STM32F373. Adds the pin configuration for ryu_p2 and also adds the proper configuration step in USB module. BRANCH=None BUG=chrome-os-partner:32660 TEST=With changes to enable USB on ryu_p2, see the device enumerated Change-Id: I5e2cb7cfc44a1bb88bae69804021c783c8d17968 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/224789 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--board/ryu_p2/gpio.inc1
-rw-r--r--chip/stm32/usb.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/board/ryu_p2/gpio.inc b/board/ryu_p2/gpio.inc
index 4d86f5137b..0c1df6abc0 100644
--- a/board/ryu_p2/gpio.inc
+++ b/board/ryu_p2/gpio.inc
@@ -122,3 +122,4 @@ ALTERNATE(B, 0x00C0, 7, MODULE_UART, 0) /* USART1: PB6/PB7 */
ALTERNATE(D, 0x0060, 7, MODULE_UART, 0) /* USART2: PD4/PD5 */
ALTERNATE(C, 0x0C00, 7, MODULE_UART, 0) /* USART3: PC10/PC11 */
ALTERNATE(A, 0xC600, 4, MODULE_I2C, 0) /* I2C SLAVE:PA9/10 MASTER:PA14/15 */
+ALTERNATE(A, 0x1800,14, MODULE_USB, 0) /* USB: PA11/12 */
diff --git a/chip/stm32/usb.c b/chip/stm32/usb.c
index a43c63905b..b9f69ec848 100644
--- a/chip/stm32/usb.c
+++ b/chip/stm32/usb.c
@@ -272,6 +272,9 @@ void usb_init(void)
/* we need a proper 48MHz clock */
clock_enable_module(MODULE_USB, 1);
+ /* configure the pinmux */
+ gpio_config_module(MODULE_USB, 1);
+
/* power on sequence */
/* keep FRES (USB reset) and remove PDWN (power down) */
@@ -326,6 +329,9 @@ void usb_release(void)
/* disable interrupt handlers */
task_disable_irq(STM32_IRQ_USB_LP);
+ /* unset pinmux */
+ gpio_config_module(MODULE_USB, 0);
+
/* disable 48MHz clock */
clock_enable_module(MODULE_USB, 0);