summaryrefslogtreecommitdiff
path: root/drivers/spi
diff options
context:
space:
mode:
authorJagan Teki <jagan@amarulasolutions.com>2019-02-27 17:32:09 +0300
committerJagan Teki <jagan@amarulasolutions.com>2019-03-04 15:38:56 +0300
commit178fbd243daeb0a3137e46bdc3b63d8df049e982 (patch)
tree5c02b3f6148c239a473407c23ed0c0c1327a046f /drivers/spi
parent8d9bf46847cd66989d944060d9ad4b37bb2bc460 (diff)
downloadu-boot-178fbd243daeb0a3137e46bdc3b63d8df049e982.tar.xz
spi: sun4i: Support fifo_depth via drvdata
Support fifo_depth via drvdata instead of macro definition, this would eventually reduce another macro definition for new SPI controller fifo depth support addition. Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/sun4i_spi.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/spi/sun4i_spi.c b/drivers/spi/sun4i_spi.c
index be026e6554..82e69a6b6a 100644
--- a/drivers/spi/sun4i_spi.c
+++ b/drivers/spi/sun4i_spi.c
@@ -33,8 +33,6 @@
#include <linux/iopoll.h>
-#define SUN4I_FIFO_DEPTH 64
-
#define SUN4I_RXDATA_REG 0x00
#define SUN4I_TXDATA_REG 0x04
@@ -131,6 +129,7 @@ enum sun4i_spi_bits {
struct sun4i_spi_variant {
const unsigned long *regs;
const u32 *bits;
+ u32 fifo_depth;
};
struct sun4i_spi_platdata {
@@ -359,7 +358,7 @@ static int sun4i_spi_xfer(struct udevice *dev, unsigned int bitlen,
while (len) {
/* Setup the transfer now... */
- nbytes = min(len, (u32)(SUN4I_FIFO_DEPTH - 1));
+ nbytes = min(len, (priv->variant->fifo_depth - 1));
/* Setup the counters */
writel(SUN4I_BURST_CNT(nbytes), SPI_REG(priv, SPI_BC));
@@ -503,6 +502,7 @@ static const u32 sun4i_spi_bits[] = {
static const struct sun4i_spi_variant sun4i_a10_spi_variant = {
.regs = sun4i_spi_regs,
.bits = sun4i_spi_bits,
+ .fifo_depth = 64,
};
static const struct udevice_id sun4i_spi_ids[] = {