On 02.04.2019 14:21, Stefan Roese wrote:
> This patch adds an alterative SPL version of atmel_serial_enable_clk(). > This enables the usage of this driver without full clock support (in > drivers and DT nodes). This saves some space in the SPL image. > > Please note that this fixed clock support is only added to the SPL code > in the DM_SERIAL part of this file. All boards not using SPL & DM_SERIAL > should not be affected. > > This patch also introduces CONFIG_SPL_UART_CLOCK for the fixed UART > input clock. It defaults to 132096000 for ARCH_AT91 but can be set to > a different value if needed. > > Signed-off-by: Stefan Roese <s...@denx.de> > Cc: Heiko Schocher <h...@denx.de> > Cc: Andreas Bießmann <andr...@biessmann.org> > Cc: Eugen Hristev <eugen.hris...@microchip.com> > --- > v4: > - Restrict SPL_UART_CLOCK on SPL && !SPL_CLK > - Provide default value for non AT91 platforms to not break the > build > - Fix typo in Kconfig text > > v3: > - Depend fixed clock atmel_serial_enable_clk() function also on > !CONFIG_SPL_CLK so that board with full clocj support in SPL > can still use the normal function here > - Introcude CONFIG_SPL_UART_CLOCK and use this Kconfig option instead > of the hardcoded value > > v2: > - Reword patch subject and commit text to make it more clear, that > this change only affects ports with SPL and DM_SERIAL enabled > > drivers/serial/Kconfig | 10 ++++++++++ > drivers/serial/atmel_usart.c | 12 ++++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig > index 887cd687c0..79fb397cf9 100644 > --- a/drivers/serial/Kconfig > +++ b/drivers/serial/Kconfig > @@ -508,6 +508,16 @@ config ATMEL_USART > configured in the device tree, and input clock frequency can > be got from the clk node. > > +config SPL_UART_CLOCK > + int "SPL fixed UART input clock" > + depends on SPL && !SPL_CLK > + default 132096000 if ARCH_AT91 > + default 0 > + help > + Provide a fixed clock value as input to the UART controller. This > + might be needed on platforms which can't enable CONFIG_SPL_CLK > + because of SPL image size restrictions. > + Hi Stefan, Looking again over this, the Kconfig you added is useless and has no effect unless ATMEL_USART driver... Can you make it to depend on atmel usart or be named ATMEL_SPL_UART_CLOCK if this is not needed for anything else whatsoever (no other platforms/drivers) This way nobody gets confused that by enabling this Kconfig on their platform, something changes (like a fixed clock for their serial in SPL, which will not happen). Eugen > config BCM283X_MU_SERIAL > bool "Support for BCM283x Mini-UART" > depends on DM_SERIAL && ARCH_BCM283X > diff --git a/drivers/serial/atmel_usart.c b/drivers/serial/atmel_usart.c > index aa8cdff840..c450a4e08a 100644 > --- a/drivers/serial/atmel_usart.c > +++ b/drivers/serial/atmel_usart.c > @@ -218,6 +218,17 @@ static const struct dm_serial_ops atmel_serial_ops = { > .setbrg = atmel_serial_setbrg, > }; > > +#if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_CLK) > +static int atmel_serial_enable_clk(struct udevice *dev) > +{ > + struct atmel_serial_priv *priv = dev_get_priv(dev); > + > + /* Use fixed clock value in SPL */ > + priv->usart_clk_rate = CONFIG_SPL_UART_CLOCK; > + > + return 0; > +} > +#else > static int atmel_serial_enable_clk(struct udevice *dev) > { > struct atmel_serial_priv *priv = dev_get_priv(dev); > @@ -245,6 +256,7 @@ static int atmel_serial_enable_clk(struct udevice *dev) > > return 0; > } > +#endif > > static int atmel_serial_probe(struct udevice *dev) > { > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot