From 62e63795c5a371ccb9732162920995d445fd03b7 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 24 Sep 2013 01:42:30 -0700 Subject: [PATCH] UPSTREAM: beaglebone: Update bootblock.c to use new structs/code New structures and functions have been added to make it easier and clearer to talk to GPIOs, configure the clock module, and toggle the LEDs. Use that code in bootblock.c instead of doing those things manually with hardcoded addresses. Change-Id: If41db0220de4bc95a6c99945ec402e3026cb4eeb Signed-off-by: Gabe Black Signed-off-by: Alexander Couzens Reviewed-on: https://review.coreboot.org/3944 Tested-by: build bot (Jenkins) Reviewed-by: David Hendricks Reviewed-on: https://chromium-review.googlesource.com/354982 Commit-Ready: Furquan Shaikh Tested-by: Furquan Shaikh Reviewed-by: Aaron Durbin --- src/mainboard/ti/beaglebone/bootblock.c | 40 ++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/mainboard/ti/beaglebone/bootblock.c b/src/mainboard/ti/beaglebone/bootblock.c index 162592f2b0..5cca141de6 100644 --- a/src/mainboard/ti/beaglebone/bootblock.c +++ b/src/mainboard/ti/beaglebone/bootblock.c @@ -18,47 +18,47 @@ #include #include #include +#include +#include #include +#include "leds.h" + void bootblock_mainboard_init(void) { - void *uart_clock_ctrl = NULL; + write32(&am335x_cm_wkup->wkup_gpio0, CM_ST_SW_WKUP | CM_FCLK_EN); + write32(&am335x_cm_per->gpio1, CM_ST_SW_WKUP | CM_FCLK_EN); + write32(&am335x_cm_per->gpio2, CM_ST_SW_WKUP | CM_FCLK_EN); + write32(&am335x_cm_per->gpio3, CM_ST_SW_WKUP | CM_FCLK_EN); - /* Enable the GPIO module */ - write32((uint32_t *)(0x44e00000 + 0xac), (0x2 << 0) | (1 << 18)); + am335x_disable_gpio_irqs(); - /* Disable interrupts from these GPIOs */ - setbits_le32((uint32_t *)(0x4804c000 + 0x3c), 0xf << 21); - - /* Enable output */ - clrbits_le32((uint32_t *)(0x4804c000 + 0x134), 0xf << 21); - - /* Set every other light */ - clrbits_le32((uint32_t *)(0x4804c000 + 0x13c), 0xf << 21); - setbits_le32((uint32_t *)(0x4804c000 + 0x13c), 0x5 << 21); + beaglebone_leds_init(); + beaglebone_leds_set(BEAGLEBONE_LED_USR0, 1); + beaglebone_leds_set(BEAGLEBONE_LED_USR1, 0); + beaglebone_leds_set(BEAGLEBONE_LED_USR2, 1); + beaglebone_leds_set(BEAGLEBONE_LED_USR3, 0); /* Set up the UART we're going to use */ if (CONFIG_UART_FOR_CONSOLE == 0) { am335x_pinmux_uart0(); - uart_clock_ctrl = (void *)(uintptr_t)(0x44e00400 + 0xb4); + write32(&am335x_cm_wkup->wkup_uart0, CM_ST_SW_WKUP); } else if (CONFIG_UART_FOR_CONSOLE == 1) { am335x_pinmux_uart1(); - uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x6c); + write32(&am335x_cm_per->uart1, CM_ST_SW_WKUP); } else if (CONFIG_UART_FOR_CONSOLE == 2) { am335x_pinmux_uart2(); - uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x70); + write32(&am335x_cm_per->uart2, CM_ST_SW_WKUP); } else if (CONFIG_UART_FOR_CONSOLE == 3) { am335x_pinmux_uart3(); - uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x74); + write32(&am335x_cm_per->uart3, CM_ST_SW_WKUP); } else if (CONFIG_UART_FOR_CONSOLE == 4) { am335x_pinmux_uart4(); - uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x78); + write32(&am335x_cm_per->uart4, CM_ST_SW_WKUP); } else if (CONFIG_UART_FOR_CONSOLE == 5) { am335x_pinmux_uart5(); - uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x38); + write32(&am335x_cm_per->uart5, CM_ST_SW_WKUP); } - if (uart_clock_ctrl) - write32(uart_clock_ctrl, 0x2); /* Start monotonic timer */ //rtc_start();