On Mon, Feb 08, 2016 at 11:26:04AM -0800, Sergei Temerkhanov wrote: > On Sat, Feb 6, 2016 at 12:44 PM, Simon Glass <s...@chromium.org> wrote: > > Hi Eric, > > > > On 5 February 2016 at 14:43, Eric Anholt <e...@anholt.net> wrote: > >> For Raspberry Pi, we had the input clock rate to the pl011 fixed in > >> the rpi.c file, but it may be changed by firmware due to user changes > >> to config.txt. Since the firmware always sets up the uart (default > >> 115200 output unless the user changes it), we can just skip our own > >> uart init to simplify the boot process and more reliably get serial > >> output. > >> > >> Signed-off-by: Eric Anholt <e...@anholt.net> > >> --- > >> board/raspberrypi/rpi/rpi.c | 3 +-- > >> drivers/serial/serial_pl01x.c | 4 ++++ > >> include/dm/platform_data/serial_pl01x.h | 1 + > >> 3 files changed, 6 insertions(+), 2 deletions(-) > >> > >> diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c > >> index 4b80d7b..1fd3f97 100644 > >> --- a/board/raspberrypi/rpi/rpi.c > >> +++ b/board/raspberrypi/rpi/rpi.c > >> @@ -35,8 +35,7 @@ static const struct pl01x_serial_platdata > >> serial_platdata = { > >> #else > >> .base = 0x20201000, > >> #endif > >> - .type = TYPE_PL011, > >> - .clock = 3000000, > >> + .type = TYPE_PL01X_PRECONFIGURED, > >> }; > >> > >> U_BOOT_DEVICE(bcm2835_serials) = { > >> diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c > >> index 552c945..7d4d214 100644 > >> --- a/drivers/serial/serial_pl01x.c > >> +++ b/drivers/serial/serial_pl01x.c > >> @@ -83,6 +83,8 @@ static int pl01x_generic_serial_init(struct pl01x_regs > >> *regs, > >> /* disable everything */ > >> writel(0, ®s->pl011_cr); > >> break; > >> + case TYPE_PL01X_PRECONFIGURED: > >> + break; > >> default: > >> return -EINVAL; > >> } > >> @@ -172,6 +174,8 @@ static int pl01x_generic_setbrg(struct pl01x_regs > >> *regs, enum pl01x_type type, > >> writel(UART_PL011_CR_UARTEN | UART_PL011_CR_TXE | > >> UART_PL011_CR_RXE | UART_PL011_CR_RTS, > >> ®s->pl011_cr); > >> break; > >> + case TYPE_PL01X_PRECONFIGURED: > >> + break; > >> } > >> default: > >> return -EINVAL; > >> diff --git a/include/dm/platform_data/serial_pl01x.h > >> b/include/dm/platform_data/serial_pl01x.h > >> index 5e068f3..ae1bf31 100644 > >> --- a/include/dm/platform_data/serial_pl01x.h > >> +++ b/include/dm/platform_data/serial_pl01x.h > >> @@ -9,6 +9,7 @@ > >> enum pl01x_type { > >> TYPE_PL010, > >> TYPE_PL011, > >> + TYPE_PL01X_PRECONFIGURED, > > > > This seems odd. You are not adding a new UART type. > > > > How about a separate bool flag? > > I posted a patch with the same purpose a while ago > http://lists.denx.de/pipermail/u-boot/2015-October/230079.html
And then we got bogged down in "make a DT binding that's accepted" hell. -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot