void bootblock_mainboard_init(void) { void *uart_clock_ctrl = NULL; /* Enable the GPIO module */ writel((0x2 << 0) | (1 << 18), (uint32_t *)(0x44e00000 + 0xac)); /* 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); /* 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); } else if (CONFIG_UART_FOR_CONSOLE == 1) { am335x_pinmux_uart1(); uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x6c); } else if (CONFIG_UART_FOR_CONSOLE == 2) { am335x_pinmux_uart2(); uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x70); } else if (CONFIG_UART_FOR_CONSOLE == 3) { am335x_pinmux_uart3(); uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x74); } else if (CONFIG_UART_FOR_CONSOLE == 4) { am335x_pinmux_uart4(); uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x78); } else if (CONFIG_UART_FOR_CONSOLE == 5) { am335x_pinmux_uart5(); uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x38); } if (uart_clock_ctrl) writel(0x2, uart_clock_ctrl); /* Start monotonic timer */ //rtc_start(); }
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(); }