[U-Boot] [PATCH v5 4/5] mips: ath79: add spi driver
Antony Pavlov
antonynpavlov at gmail.com
Wed Dec 30 09:32:52 CET 2015
On Wed, 30 Dec 2015 01:51:47 +0100
Marek Vasut <marex at denx.de> wrote:
> On Wednesday, December 30, 2015 at 12:46:23 AM, Thomas Chou wrote:
> > Hi Marek,
> >
> > On 2015年12月29日 21:25, Marek Vasut wrote:
> > > On Tuesday, December 29, 2015 at 02:00:27 PM, Thomas Chou wrote:
> > >> Hi Wills,
> > >>
> > >> On 2015年12月29日 19:17, Wills Wang wrote:
> > >>> diff --git a/arch/mips/mach-ath79/Kconfig
> > >>> b/arch/mips/mach-ath79/Kconfig index 1d92a5b..b5668e9 100644
> > >>> --- a/arch/mips/mach-ath79/Kconfig
> > >>> +++ b/arch/mips/mach-ath79/Kconfig
> > >>> @@ -15,6 +15,7 @@ config SOC_AR933X
> > >>>
> > >>> select SYS_MIPS_CACHE_INIT_RAM_LOAD
> > >>> select MIPS_TUNE_24KC
> > >>> select AR933X_UART
> > >>>
> > >>> + select ATH79_SPI
> > >>
> > >> Both AR933X_UART and ATH79_SPI should not be selected with mach Kconfig.
> > >> They should go with board defconfig.
> > >>
> > >>> diff --git a/drivers/spi/ath79_spi.c b/drivers/spi/ath79_spi.c
> > >>>
> > >>> +static inline void ath79_spi_delay(int max_hz)
> > >>> +{
> > >>> + uint64_t tick = get_tbclk();
> > >>> +
> > >>> + do_div(tick, max_hz);
> > >>> + tick = get_ticks() + tick + 1; /* get current timestamp */
> > >>> + while (get_ticks() < tick) /* loop till event */
> > >>> + /*NOP*/;
> > >>> +}
> > >>
> > >> Use udelay() instead.
> > >
> > > You mean get_timer() based delay loop, yes ?
> >
> > Sorry, my mistake. Just realized that we don't have nano delay yet. The
> > code above is fine.
>
> Just skimming through the code, it seems like bitbanging the SPI using the
> generic soft-spi driver might be easier ;-/
AR9331 SPI controller has special shift register for reading received data,
so you have no need in reading every single receiving MISO bit with separate
gpio access, this can give a small speedup. Next, in openwrt tree there is
a dirty-hacky ath79-spi linux kernel patch for very impressive SPI flash
read speedup (2 MiB/s instead of 20 KiB/s, I have no precise bandwidth
results at the moment).
So for better performance it is reasonable to have separate ath79-spi driver.
--
Best regards,
Antony Pavlov
More information about the U-Boot
mailing list