From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Mon, 31 Oct 2016 14:39:25 -0600 Subject: [U-Boot] [PATCH 09/20] rockchip: spi: Honour the deactivation delay In-Reply-To: <1477946376-29471-1-git-send-email-sjg@chromium.org> References: <1477946376-29471-1-git-send-email-sjg@chromium.org> Message-ID: <1477946376-29471-10-git-send-email-sjg@chromium.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 --- drivers/spi/rk_spi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/spi/rk_spi.c b/drivers/spi/rk_spi.c index 8d64249..15cf0bd 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) -- 2.8.0.rc3.226.g39d4020