未验证 提交 ffc20581 编写于 作者: G Gabor Juhos 提交者: Paul Burton

MIPS: ath79: enable uart during early_prink

This patch ensures, that the pinmux register is properly setup for the
boot console UART when early_printk is enabled.

[paul.burton@mips.com:
  - s/poinmux/pinmux/
  - s/uart/UART/
  - Drop extraneous parentheses.]
Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
Signed-off-by: NJohn Crispin <john@phrozen.org>
Signed-off-by: NPaul Burton <paul.burton@mips.com>
Cc: James Hogan <jhogan@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
上级 e1634370
......@@ -60,6 +60,46 @@ static void prom_putchar_dummy(char ch)
/* nothing to do */
}
static void prom_enable_uart(u32 id)
{
void __iomem *gpio_base;
u32 uart_en;
u32 t;
switch (id) {
case REV_ID_MAJOR_AR71XX:
uart_en = AR71XX_GPIO_FUNC_UART_EN;
break;
case REV_ID_MAJOR_AR7240:
case REV_ID_MAJOR_AR7241:
case REV_ID_MAJOR_AR7242:
uart_en = AR724X_GPIO_FUNC_UART_EN;
break;
case REV_ID_MAJOR_AR913X:
uart_en = AR913X_GPIO_FUNC_UART_EN;
break;
case REV_ID_MAJOR_AR9330:
case REV_ID_MAJOR_AR9331:
uart_en = AR933X_GPIO_FUNC_UART_EN;
break;
case REV_ID_MAJOR_AR9341:
case REV_ID_MAJOR_AR9342:
case REV_ID_MAJOR_AR9344:
/* TODO */
default:
return;
}
gpio_base = (void __iomem *)KSEG1ADDR(AR71XX_GPIO_BASE);
t = __raw_readl(gpio_base + AR71XX_GPIO_REG_FUNC);
t |= uart_en;
__raw_writel(t, gpio_base + AR71XX_GPIO_REG_FUNC);
}
static void prom_putchar_init(void)
{
void __iomem *base;
......@@ -94,8 +134,10 @@ static void prom_putchar_init(void)
default:
_prom_putchar = prom_putchar_dummy;
break;
return;
}
prom_enable_uart(id);
}
void prom_putchar(char ch)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册