mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-29 09:33:46 +01:00 
			
		
		
		
	For ARM32 architecture, CONFIG_DEBUG_LL is available for early low-level debugging (and actually UniPhier 32bit SoCs use it), but ARM64 architecture does not support it. Instead, CONFIG_DEBUG_UART is available as an architecture-independent debug facility. This commit supports it on all the UniPhier SoCs (including the new ARMv8 SoCs), which is very useful for new SoC bringups. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
		
			
				
	
	
		
			33 lines
		
	
	
		
			737 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			737 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2016 Masahiro Yamada <yamada.masahiro@socionext.com>
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #include <config.h>
 | |
| #include <linux/kernel.h>
 | |
| #include <linux/io.h>
 | |
| 
 | |
| #include "../sc-regs.h"
 | |
| #include "../sg-regs.h"
 | |
| #include "debug-uart.h"
 | |
| 
 | |
| #define UNIPHIER_PXS2_UART_CLK		88888888
 | |
| 
 | |
| unsigned int uniphier_pxs2_debug_uart_init(void)
 | |
| {
 | |
| 	u32 tmp;
 | |
| 
 | |
| 	sg_set_iectrl(0);
 | |
| 	sg_set_pinsel(217, 8, 8, 4);	/* TXD0 -> TXD0 */
 | |
| 	sg_set_pinsel(115, 8, 8, 4);	/* TXD1 -> TXD1 */
 | |
| 	sg_set_pinsel(113, 8, 8, 4);	/* TXD2 -> TXD2 */
 | |
| 	sg_set_pinsel(219, 8, 8, 4);	/* TXD3 -> TXD3 */
 | |
| 
 | |
| 	tmp = readl(SC_CLKCTRL);
 | |
| 	tmp |= SC_CLKCTRL_CEN_PERI;
 | |
| 	writel(tmp, SC_CLKCTRL);
 | |
| 
 | |
| 	return DIV_ROUND_CLOSEST(UNIPHIER_PXS2_UART_CLK, 16 * CONFIG_BAUDRATE);
 | |
| }
 |