blob: bf7c69ea8389311541c8fc5d8c0d2de07b5bd368 [file] [log] [blame]
Stefan Roeseb02f76a2018-08-16 15:27:30 +02001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2018 Stefan Roese <sr@denx.de>
4 */
5
6#include <common.h>
Simon Glass691d7192020-05-10 11:40:02 -06007#include <init.h>
Stefan Roeseb02f76a2018-08-16 15:27:30 +02008#include <asm/io.h>
Simon Glasscd93d622020-05-10 11:40:13 -06009#include <linux/bitops.h>
Stefan Roeseb02f76a2018-08-16 15:27:30 +020010
Stefan Roese8bd19772018-10-09 08:59:15 +020011#define MT76XX_GPIO1_MODE 0x10000060
Stefan Roeseb02f76a2018-08-16 15:27:30 +020012
13void board_debug_uart_init(void)
14{
Stefan Roese8bd19772018-10-09 08:59:15 +020015 void __iomem *gpio_mode;
16
Stefan Roeseb02f76a2018-08-16 15:27:30 +020017 /* Select UART2 mode instead of GPIO mode (default) */
Stefan Roese8bd19772018-10-09 08:59:15 +020018 gpio_mode = ioremap_nocache(MT76XX_GPIO1_MODE, 0x100);
19 clrbits_le32(gpio_mode, GENMASK(27, 26));
Stefan Roeseb02f76a2018-08-16 15:27:30 +020020}
21
22int board_early_init_f(void)
23{
24 /*
25 * The pin muxing of UART2 also needs to be done, if debug uart
26 * is not enabled. So we need to call this function here as well.
27 */
28 board_debug_uart_init();
29
30 return 0;
31}