diff options
author | Philippe Langlais <philippe.langlais@linaro.org> | 2011-03-23 11:05:16 +0100 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2011-03-24 04:27:35 +0100 |
commit | 06fb01fd1dc624d891cbe039a88a44bc8a8a9ec1 (patch) | |
tree | e9e198d3281cac335d2e3bfc47069ffc1e66fe14 /drivers/spi/amba-pl022.c | |
parent | spi/omap_mcspi: Fix broken last word xfer (diff) | |
download | linux-06fb01fd1dc624d891cbe039a88a44bc8a8a9ec1.tar.xz linux-06fb01fd1dc624d891cbe039a88a44bc8a8a9ec1.zip |
spi/pl022: Add loopback support for the SPI on 5500
Extend the vendor data with a loopback field, and add new
amba-pl022 vendor data for the DB5500 pl023, as the pl023
on db8500 and db5500 vary.
Signed-off-by: Prajadevi H <prajadevi.h@stericsson.com>
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to '')
-rw-r--r-- | drivers/spi/amba-pl022.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/spi/amba-pl022.c b/drivers/spi/amba-pl022.c index 5c2b092a915e..5a4e0afb9ad6 100644 --- a/drivers/spi/amba-pl022.c +++ b/drivers/spi/amba-pl022.c @@ -324,6 +324,7 @@ struct vendor_data { bool unidir; bool extended_cr; bool pl023; + bool loopback; }; /** @@ -1983,7 +1984,7 @@ static int pl022_setup(struct spi_device *spi) SSP_WRITE_BITS(chip->cr0, clk_freq.scr, SSP_CR0_MASK_SCR, 8); /* Loopback is available on all versions except PL023 */ - if (!pl022->vendor->pl023) { + if (pl022->vendor->loopback) { if (spi->mode & SPI_LOOP) tmp = LOOPBACK_ENABLED; else @@ -2233,6 +2234,7 @@ static struct vendor_data vendor_arm = { .unidir = false, .extended_cr = false, .pl023 = false, + .loopback = true, }; @@ -2242,6 +2244,7 @@ static struct vendor_data vendor_st = { .unidir = false, .extended_cr = true, .pl023 = false, + .loopback = true, }; static struct vendor_data vendor_st_pl023 = { @@ -2250,6 +2253,16 @@ static struct vendor_data vendor_st_pl023 = { .unidir = false, .extended_cr = true, .pl023 = true, + .loopback = false, +}; + +static struct vendor_data vendor_db5500_pl023 = { + .fifodepth = 32, + .max_bpw = 32, + .unidir = false, + .extended_cr = true, + .pl023 = true, + .loopback = true, }; static struct amba_id pl022_ids[] = { @@ -2283,6 +2296,11 @@ static struct amba_id pl022_ids[] = { .mask = 0xffffffff, .data = &vendor_st_pl023, }, + { + .id = 0x10080023, + .mask = 0xffffffff, + .data = &vendor_db5500_pl023, + }, { 0, 0 }, }; |