| /* SPDX-License-Identifier: GPL-2.0-only */ |
| |
| #include <device/mmio.h> |
| #include <bootblock_common.h> |
| #include <console/uart.h> |
| #include <soc/ti/am335x/clock.h> |
| #include <soc/ti/am335x/gpio.h> |
| #include <soc/ti/am335x/pinmux.h> |
| |
| #include "leds.h" |
| |
| void bootblock_mainboard_init(void) |
| { |
| 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); |
| |
| am335x_disable_gpio_irqs(); |
| |
| 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(); |
| write32(&am335x_cm_wkup->wkup_uart0, CM_ST_SW_WKUP); |
| } else if (CONFIG_UART_FOR_CONSOLE == 1) { |
| am335x_pinmux_uart1(); |
| write32(&am335x_cm_per->uart1, CM_ST_SW_WKUP); |
| } else if (CONFIG_UART_FOR_CONSOLE == 2) { |
| am335x_pinmux_uart2(); |
| write32(&am335x_cm_per->uart2, CM_ST_SW_WKUP); |
| } else if (CONFIG_UART_FOR_CONSOLE == 3) { |
| am335x_pinmux_uart3(); |
| write32(&am335x_cm_per->uart3, CM_ST_SW_WKUP); |
| } else if (CONFIG_UART_FOR_CONSOLE == 4) { |
| am335x_pinmux_uart4(); |
| write32(&am335x_cm_per->uart4, CM_ST_SW_WKUP); |
| } else if (CONFIG_UART_FOR_CONSOLE == 5) { |
| am335x_pinmux_uart5(); |
| write32(&am335x_cm_per->uart5, CM_ST_SW_WKUP); |
| } |
| |
| /* Start monotonic timer */ |
| //rtc_start(); |
| } |