forked from mirrors/linux
		
	serial: altera_jtaguart: add earlycon support
Nios2 currently uses its own early printk implementation, rather than using unified earlycon support to show boot messages on altera_jtaguart (and altera_uart for that matter). Add earlycon support to altera_jtaguart so that other archs may use it. Also, this will allow the early printk implementation in arch/nios2 to eventually be removed in a future patch. Cc: Ley Foon Tan <lftan@altera.com> Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									47baf1ad81
								
							
						
					
					
						commit
						0dcc0542a0
					
				
					 2 changed files with 21 additions and 0 deletions
				
			
		| 
						 | 
					@ -1343,6 +1343,7 @@ config SERIAL_ALTERA_JTAGUART_CONSOLE
 | 
				
			||||||
	bool "Altera JTAG UART console support"
 | 
						bool "Altera JTAG UART console support"
 | 
				
			||||||
	depends on SERIAL_ALTERA_JTAGUART=y
 | 
						depends on SERIAL_ALTERA_JTAGUART=y
 | 
				
			||||||
	select SERIAL_CORE_CONSOLE
 | 
						select SERIAL_CORE_CONSOLE
 | 
				
			||||||
 | 
						select SERIAL_EARLYCON
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  Enable a Altera JTAG UART port to be the system console.
 | 
						  Enable a Altera JTAG UART port to be the system console.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -383,6 +383,26 @@ console_initcall(altera_jtaguart_console_init);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define	ALTERA_JTAGUART_CONSOLE	(&altera_jtaguart_console)
 | 
					#define	ALTERA_JTAGUART_CONSOLE	(&altera_jtaguart_console)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void altera_jtaguart_earlycon_write(struct console *co, const char *s,
 | 
				
			||||||
 | 
										   unsigned int count)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct earlycon_device *dev = co->data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uart_console_write(&dev->port, s, count, altera_jtaguart_console_putc);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int __init altera_jtaguart_earlycon_setup(struct earlycon_device *dev,
 | 
				
			||||||
 | 
											 const char *options)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (!dev->port.membase)
 | 
				
			||||||
 | 
							return -ENODEV;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dev->con->write = altera_jtaguart_earlycon_write;
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OF_EARLYCON_DECLARE(juart, "altr,juart-1.0", altera_jtaguart_earlycon_setup);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define	ALTERA_JTAGUART_CONSOLE	NULL
 | 
					#define	ALTERA_JTAGUART_CONSOLE	NULL
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue