Message ID | 1347837696-3192-14-git-send-email-marex@denx.de |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
On 09/17/2012 01:20 AM, Marek Vasut wrote: > Move the registration of xuartlite_serialN_device ports from > default serial_initialize() into driver specific function called from > serial_initialize(). This slims down the serial_initialize() call > to a bare tracker of all possible serial port registration routines > in U-Boot. > > The newly implemented xuartlite_serial_initialize() function, which is > implemented inside of the serial_xuartlite driver allows encapsulation > of xuartlite_serialN_device within the serial_xuartlite driver itself. > > Also, remove the exports of xuartlite_serialN_device from include/serial.h > as they are no longer needed. This is simply because the implementation of > default_serial_console() is wrapped into the serial_xuartlite driver and > the default console is picked by CONFIG_SERIAL<N> macro in config file. > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Marek Vasut <marek.vasut@gmail.com> > Cc: Tom Rini <trini@ti.com> > Cc: Michal Simek <monstr@monstr.eu> > --- > common/serial.c | 16 ++-------------- > drivers/serial/serial_xuartlite.c | 16 ++++++++++++++++ > include/serial.h | 7 ------- > 3 files changed, 18 insertions(+), 21 deletions(-) > > diff --git a/common/serial.c b/common/serial.c > index c021c3f..e19a17f 100644 > --- a/common/serial.c > +++ b/common/serial.c > @@ -44,6 +44,7 @@ serial_initfunc(mpc8xx_serial_initialize); > serial_initfunc(pxa_serial_initialize); > serial_initfunc(s3c24xx_serial_initialize); > serial_initfunc(s5p_serial_initialize); > +serial_initfunc(uartlite_serial_initialize); > > void serial_register(struct serial_device *dev) > { > @@ -97,20 +98,7 @@ void serial_initialize(void) > #if defined(CONFIG_SYS_BFIN_UART) > serial_register_bfin_uart(); > #endif > -#if defined(CONFIG_XILINX_UARTLITE) > -# ifdef XILINX_UARTLITE_BASEADDR > - serial_register(&uartlite_serial0_device); > -# endif /* XILINX_UARTLITE_BASEADDR */ > -# ifdef XILINX_UARTLITE_BASEADDR1 > - serial_register(&uartlite_serial1_device); > -# endif /* XILINX_UARTLITE_BASEADDR1 */ > -# ifdef XILINX_UARTLITE_BASEADDR2 > - serial_register(&uartlite_serial2_device); > -# endif /* XILINX_UARTLITE_BASEADDR2 */ > -# ifdef XILINX_UARTLITE_BASEADDR3 > - serial_register(&uartlite_serial3_device); > -# endif /* XILINX_UARTLITE_BASEADDR3 */ > -#endif /* CONFIG_XILINX_UARTLITE */ > + uartlite_serial_initialize(); > serial_assign(default_serial_console()->name); > } > > diff --git a/drivers/serial/serial_xuartlite.c b/drivers/serial/serial_xuartlite.c > index 2b869c1..d90c42d 100644 > --- a/drivers/serial/serial_xuartlite.c > +++ b/drivers/serial/serial_xuartlite.c > @@ -177,4 +177,20 @@ __weak struct serial_device *default_serial_console(void) > return &uartlite_serial3_device; > # endif /* XILINX_UARTLITE_BASEADDR3 */ > } > + > +void uartlite_serial_initialize(void) > +{ > +#ifdef XILINX_UARTLITE_BASEADDR > + serial_register(&uartlite_serial0_device); > +#endif /* XILINX_UARTLITE_BASEADDR */ > +#ifdef XILINX_UARTLITE_BASEADDR1 > + serial_register(&uartlite_serial1_device); > +#endif /* XILINX_UARTLITE_BASEADDR1 */ > +#ifdef XILINX_UARTLITE_BASEADDR2 > + serial_register(&uartlite_serial2_device); > +#endif /* XILINX_UARTLITE_BASEADDR2 */ > +#ifdef XILINX_UARTLITE_BASEADDR3 > + serial_register(&uartlite_serial3_device); > +#endif /* XILINX_UARTLITE_BASEADDR3 */ > +} > #endif /* CONFIG_SERIAL_MULTI */ > diff --git a/include/serial.h b/include/serial.h > index 08a9287..73991a6 100644 > --- a/include/serial.h > +++ b/include/serial.h > @@ -49,13 +49,6 @@ extern struct serial_device serial4_device; > extern struct serial_device serial6_device; > #endif > > -#if defined(CONFIG_XILINX_UARTLITE) > -extern struct serial_device uartlite_serial0_device; > -extern struct serial_device uartlite_serial1_device; > -extern struct serial_device uartlite_serial2_device; > -extern struct serial_device uartlite_serial3_device; > -#endif > - > #if defined(CONFIG_OMAP3_ZOOM2) > extern struct serial_device zoom2_serial_device0; > extern struct serial_device zoom2_serial_device1; > Acked-by: Michal Simek <monstr@monstr.eu> Thanks, Michal
diff --git a/common/serial.c b/common/serial.c index c021c3f..e19a17f 100644 --- a/common/serial.c +++ b/common/serial.c @@ -44,6 +44,7 @@ serial_initfunc(mpc8xx_serial_initialize); serial_initfunc(pxa_serial_initialize); serial_initfunc(s3c24xx_serial_initialize); serial_initfunc(s5p_serial_initialize); +serial_initfunc(uartlite_serial_initialize); void serial_register(struct serial_device *dev) { @@ -97,20 +98,7 @@ void serial_initialize(void) #if defined(CONFIG_SYS_BFIN_UART) serial_register_bfin_uart(); #endif -#if defined(CONFIG_XILINX_UARTLITE) -# ifdef XILINX_UARTLITE_BASEADDR - serial_register(&uartlite_serial0_device); -# endif /* XILINX_UARTLITE_BASEADDR */ -# ifdef XILINX_UARTLITE_BASEADDR1 - serial_register(&uartlite_serial1_device); -# endif /* XILINX_UARTLITE_BASEADDR1 */ -# ifdef XILINX_UARTLITE_BASEADDR2 - serial_register(&uartlite_serial2_device); -# endif /* XILINX_UARTLITE_BASEADDR2 */ -# ifdef XILINX_UARTLITE_BASEADDR3 - serial_register(&uartlite_serial3_device); -# endif /* XILINX_UARTLITE_BASEADDR3 */ -#endif /* CONFIG_XILINX_UARTLITE */ + uartlite_serial_initialize(); serial_assign(default_serial_console()->name); } diff --git a/drivers/serial/serial_xuartlite.c b/drivers/serial/serial_xuartlite.c index 2b869c1..d90c42d 100644 --- a/drivers/serial/serial_xuartlite.c +++ b/drivers/serial/serial_xuartlite.c @@ -177,4 +177,20 @@ __weak struct serial_device *default_serial_console(void) return &uartlite_serial3_device; # endif /* XILINX_UARTLITE_BASEADDR3 */ } + +void uartlite_serial_initialize(void) +{ +#ifdef XILINX_UARTLITE_BASEADDR + serial_register(&uartlite_serial0_device); +#endif /* XILINX_UARTLITE_BASEADDR */ +#ifdef XILINX_UARTLITE_BASEADDR1 + serial_register(&uartlite_serial1_device); +#endif /* XILINX_UARTLITE_BASEADDR1 */ +#ifdef XILINX_UARTLITE_BASEADDR2 + serial_register(&uartlite_serial2_device); +#endif /* XILINX_UARTLITE_BASEADDR2 */ +#ifdef XILINX_UARTLITE_BASEADDR3 + serial_register(&uartlite_serial3_device); +#endif /* XILINX_UARTLITE_BASEADDR3 */ +} #endif /* CONFIG_SERIAL_MULTI */ diff --git a/include/serial.h b/include/serial.h index 08a9287..73991a6 100644 --- a/include/serial.h +++ b/include/serial.h @@ -49,13 +49,6 @@ extern struct serial_device serial4_device; extern struct serial_device serial6_device; #endif -#if defined(CONFIG_XILINX_UARTLITE) -extern struct serial_device uartlite_serial0_device; -extern struct serial_device uartlite_serial1_device; -extern struct serial_device uartlite_serial2_device; -extern struct serial_device uartlite_serial3_device; -#endif - #if defined(CONFIG_OMAP3_ZOOM2) extern struct serial_device zoom2_serial_device0; extern struct serial_device zoom2_serial_device1;
Move the registration of xuartlite_serialN_device ports from default serial_initialize() into driver specific function called from serial_initialize(). This slims down the serial_initialize() call to a bare tracker of all possible serial port registration routines in U-Boot. The newly implemented xuartlite_serial_initialize() function, which is implemented inside of the serial_xuartlite driver allows encapsulation of xuartlite_serialN_device within the serial_xuartlite driver itself. Also, remove the exports of xuartlite_serialN_device from include/serial.h as they are no longer needed. This is simply because the implementation of default_serial_console() is wrapped into the serial_xuartlite driver and the default console is picked by CONFIG_SERIAL<N> macro in config file. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Michal Simek <monstr@monstr.eu> --- common/serial.c | 16 ++-------------- drivers/serial/serial_xuartlite.c | 16 ++++++++++++++++ include/serial.h | 7 ------- 3 files changed, 18 insertions(+), 21 deletions(-)