diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2012-12-28 17:46:31 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-01-02 10:56:16 +0100 |
commit | 668dffaa0d4ce994c45710ca31066681861daba5 (patch) | |
tree | 9850f9bfee7d6de9b2c174019ab3769d6d36b377 /drivers/spi/atmel_spi.c | |
parent | b4f7410ad17e9b5901b93bd9156cc40801fe2a05 (diff) | |
download | barebox-668dffaa0d4ce994c45710ca31066681861daba5.tar.gz barebox-668dffaa0d4ce994c45710ca31066681861daba5.tar.xz |
spi: atmel: request cs pin via gpiolib
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/spi/atmel_spi.c')
-rw-r--r-- | drivers/spi/atmel_spi.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c index 793933eefb..08cb4169ea 100644 --- a/drivers/spi/atmel_spi.c +++ b/drivers/spi/atmel_spi.c @@ -371,6 +371,7 @@ err: static int atmel_spi_probe(struct device_d *dev) { int ret = 0; + int i; struct spi_master *master; struct atmel_spi *as; struct at91_spi_platform_data *pdata = dev->platform_data; @@ -399,6 +400,12 @@ static int atmel_spi_probe(struct device_d *dev) as->cs_pins = pdata->chipselect; as->regs = dev_request_mem_region(dev, 0); + for (i = 0; i <= master->num_chipselect; i++) { + ret = gpio_request(as->cs_pins[i], dev_name(dev)); + if (ret) + goto out_gpio; + } + /* Initialize the hardware */ clk_enable(as->clk); spi_writel(as, CR, SPI_BIT(SWRST)); @@ -418,6 +425,7 @@ static int atmel_spi_probe(struct device_d *dev) out_reset_hw: spi_writel(as, CR, SPI_BIT(SWRST)); spi_writel(as, CR, SPI_BIT(SWRST)); /* AT91SAM9263 Rev B workaround */ +out_gpio: clk_disable(as->clk); clk_put(as->clk); out_free: |