diff options
Diffstat (limited to 'drivers/spi/atmel_spi.c')
| -rw-r--r-- | drivers/spi/atmel_spi.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c index 02f9320f3efc..8abae4ad0fa5 100644 --- a/drivers/spi/atmel_spi.c +++ b/drivers/spi/atmel_spi.c | |||
| @@ -766,6 +766,7 @@ static int __init atmel_spi_probe(struct platform_device *pdev) | |||
| 766 | /* Initialize the hardware */ | 766 | /* Initialize the hardware */ |
| 767 | clk_enable(clk); | 767 | clk_enable(clk); |
| 768 | spi_writel(as, CR, SPI_BIT(SWRST)); | 768 | spi_writel(as, CR, SPI_BIT(SWRST)); |
| 769 | spi_writel(as, CR, SPI_BIT(SWRST)); /* AT91SAM9263 Rev B workaround */ | ||
| 769 | spi_writel(as, MR, SPI_BIT(MSTR) | SPI_BIT(MODFDIS)); | 770 | spi_writel(as, MR, SPI_BIT(MSTR) | SPI_BIT(MODFDIS)); |
| 770 | spi_writel(as, PTCR, SPI_BIT(RXTDIS) | SPI_BIT(TXTDIS)); | 771 | spi_writel(as, PTCR, SPI_BIT(RXTDIS) | SPI_BIT(TXTDIS)); |
| 771 | spi_writel(as, CR, SPI_BIT(SPIEN)); | 772 | spi_writel(as, CR, SPI_BIT(SPIEN)); |
| @@ -782,6 +783,7 @@ static int __init atmel_spi_probe(struct platform_device *pdev) | |||
| 782 | 783 | ||
| 783 | out_reset_hw: | 784 | out_reset_hw: |
| 784 | spi_writel(as, CR, SPI_BIT(SWRST)); | 785 | spi_writel(as, CR, SPI_BIT(SWRST)); |
| 786 | spi_writel(as, CR, SPI_BIT(SWRST)); /* AT91SAM9263 Rev B workaround */ | ||
| 785 | clk_disable(clk); | 787 | clk_disable(clk); |
| 786 | free_irq(irq, master); | 788 | free_irq(irq, master); |
| 787 | out_unmap_regs: | 789 | out_unmap_regs: |
| @@ -805,6 +807,7 @@ static int __exit atmel_spi_remove(struct platform_device *pdev) | |||
| 805 | spin_lock_irq(&as->lock); | 807 | spin_lock_irq(&as->lock); |
| 806 | as->stopping = 1; | 808 | as->stopping = 1; |
| 807 | spi_writel(as, CR, SPI_BIT(SWRST)); | 809 | spi_writel(as, CR, SPI_BIT(SWRST)); |
| 810 | spi_writel(as, CR, SPI_BIT(SWRST)); /* AT91SAM9263 Rev B workaround */ | ||
| 808 | spi_readl(as, SR); | 811 | spi_readl(as, SR); |
| 809 | spin_unlock_irq(&as->lock); | 812 | spin_unlock_irq(&as->lock); |
| 810 | 813 | ||
