From: Simon Glass Date: Sun, 13 Nov 2016 21:22:03 +0000 (-0700) Subject: rockchip: spi: Honour the deactivation delay X-Git-Tag: v2017.01-rc1~210^2~14 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b42524744d3c7ca015ec7702f3420104539491ac;p=oweals%2Fu-boot.git rockchip: spi: Honour the deactivation delay This is not currently implemented. Add support for this so that the Chrome OS EC can be used on jerry. Signed-off-by: Simon Glass --- diff --git a/drivers/spi/rk_spi.c b/drivers/spi/rk_spi.c index 8d64249385..15cf0bda20 100644 --- a/drivers/spi/rk_spi.c +++ b/drivers/spi/rk_spi.c @@ -110,6 +110,14 @@ static void spi_cs_activate(struct udevice *dev, uint cs) struct rockchip_spi_priv *priv = dev_get_priv(bus); struct rockchip_spi *regs = priv->regs; + /* If it's too soon to do another transaction, wait */ + if (plat->deactivate_delay_us && priv->last_transaction_us) { + ulong delay_us; /* The delay completed so far */ + delay_us = timer_get_us() - priv->last_transaction_us; + if (delay_us < plat->deactivate_delay_us) + udelay(plat->deactivate_delay_us - delay_us); + } + debug("activate cs%u\n", cs); writel(1 << cs, ®s->ser); if (plat->activate_delay_us)