diff mbox

spi: img-spfi: same edge bit set to double spfi speeds

Message ID 1422985565-14163-1-git-send-email-sifan.naeem@imgtec.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sifan Naeem Feb. 3, 2015, 5:46 p.m. UTC
Setting the same edge bit is required for operating at full bitrate
programmed into the SPFI control register. Without this bit set the
max operating bitrate supported would be half the maximum bitrate
supported by the img-spfi block.
It's safe to set this bit for all transactions.

Signed-off-by: Sifan Naeem <sifan.naeem@imgtec.com>
---
 drivers/spi/spi-img-spfi.c |    4 ++++
 1 file changed, 4 insertions(+)

Comments

Andrew Bresticker Feb. 4, 2015, 6:10 a.m. UTC | #1
Hi Sifan,

On Tue, Feb 3, 2015 at 9:46 AM, Sifan Naeem <sifan.naeem@imgtec.com> wrote:
> Setting the same edge bit is required for operating at full bitrate
> programmed into the SPFI control register. Without this bit set the
> max operating bitrate supported would be half the maximum bitrate
> supported by the img-spfi block.
> It's safe to set this bit for all transactions.
>
> Signed-off-by: Sifan Naeem <sifan.naeem@imgtec.com>

> @@ -435,6 +436,9 @@ static void img_spfi_config(struct spi_master *master, struct spi_device *spi,
>                 val |= SPFI_CONTROL_CONTINUE;
>         spfi_writel(spfi, val, SPFI_CONTROL);
>
> +       /* Double the transfer speed by setting Same Edge. */

I'm not sure a comment here is totally necessary, but if you do want
one, I don't think "Double the transfer speed" is the best way to put
this.  Something explaining what the SE bit does and that failing to
set it results in us operating at half the specified bitrate would be
more useful.
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c
index c01567d..e6f77b8 100644
--- a/drivers/spi/spi-img-spfi.c
+++ b/drivers/spi/spi-img-spfi.c
@@ -39,6 +39,7 @@ 
 #define SPFI_CONTROL_SOFT_RESET			BIT(11)
 #define SPFI_CONTROL_SEND_DMA			BIT(10)
 #define SPFI_CONTROL_GET_DMA			BIT(9)
+#define SPFI_CONTROL_SE			BIT(8)
 #define SPFI_CONTROL_TMODE_SHIFT		5
 #define SPFI_CONTROL_TMODE_MASK			0x7
 #define SPFI_CONTROL_TMODE_SINGLE		0
@@ -435,6 +436,9 @@  static void img_spfi_config(struct spi_master *master, struct spi_device *spi,
 		val |= SPFI_CONTROL_CONTINUE;
 	spfi_writel(spfi, val, SPFI_CONTROL);
 
+	/* Double the transfer speed by setting Same Edge. */
+	val |= SPFI_CONTROL_SE;
+
 	val = spfi_readl(spfi, SPFI_PORT_STATE);
 	if (spi->mode & SPI_CPHA)
 		val |= SPFI_PORT_STATE_CK_PHASE(spi->chip_select);