Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2743f0c1dcca54d6c80b0de1273b3f4e90051a85
Commit:     2743f0c1dcca54d6c80b0de1273b3f4e90051a85
Parent:     6d2a8401d27e3eb8b71d09dd67e0e7d0085b5e29
Author:     Andrew Victor <[EMAIL PROTECTED]>
AuthorDate: Wed Jan 23 09:29:46 2008 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Sat Jan 26 15:00:32 2008 +0000

    [ARM] 4760/1: [AT91] SPI CS0 errata on AT91RM9200
    
    Due to errata regarding the handling of SPI CS0 on the AT91RM9200, the
    atmel_spi driver drives CS0 from the SPI controller and not as a GPIO
    pin.
    We therefore need to configure CS0 for use by the controller
    
    Signed-off-by: Andrew Victor <[EMAIL PROTECTED]>
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/mach-at91/at91rm9200_devices.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-at91/at91rm9200_devices.c 
b/arch/arm/mach-at91/at91rm9200_devices.c
index ea9a952..ef6aeb8 100644
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
@@ -558,8 +558,11 @@ void __init at91_add_device_spi(struct spi_board_info 
*devices, int nr_devices)
                else
                        cs_pin = spi_standard_cs[devices[i].chip_select];
 
-               /* enable chip-select pin */
-               at91_set_gpio_output(cs_pin, 1);
+               if (devices[i].chip_select == 0)        /* for CS0 errata */
+                       at91_set_A_periph(cs_pin, 0);
+               else
+                       at91_set_gpio_output(cs_pin, 1);
+
 
                /* pass chip-select pin to driver */
                devices[i].controller_data = (void *) cs_pin;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to