spi-ath79.c (f9cd49033b349b8be3bb1f01b39eed837853d880) spi-ath79.c (fd4a319bc933ae93e68935b21924a9ca4ba2d060)
1/*
2 * SPI controller driver for the Atheros AR71XX/AR724X/AR913X SoCs
3 *
4 * Copyright (C) 2009-2011 Gabor Juhos <juhosg@openwrt.org>
5 *
6 * This driver has been based on the spi-gpio.c:
7 * Copyright (C) 2006,2008 David Brownell
8 *

--- 178 unchanged lines hidden (view full) ---

187 ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, out | AR71XX_SPI_IOC_CLK);
188
189 word <<= 1;
190 }
191
192 return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS);
193}
194
1/*
2 * SPI controller driver for the Atheros AR71XX/AR724X/AR913X SoCs
3 *
4 * Copyright (C) 2009-2011 Gabor Juhos <juhosg@openwrt.org>
5 *
6 * This driver has been based on the spi-gpio.c:
7 * Copyright (C) 2006,2008 David Brownell
8 *

--- 178 unchanged lines hidden (view full) ---

187 ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, out | AR71XX_SPI_IOC_CLK);
188
189 word <<= 1;
190 }
191
192 return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS);
193}
194
195static __devinit int ath79_spi_probe(struct platform_device *pdev)
195static int ath79_spi_probe(struct platform_device *pdev)
196{
197 struct spi_master *master;
198 struct ath79_spi *sp;
199 struct ath79_spi_platform_data *pdata;
200 struct resource *r;
201 int ret;
202
203 master = spi_alloc_master(&pdev->dev, sizeof(*sp));

--- 42 unchanged lines hidden (view full) ---

246 iounmap(sp->base);
247err_put_master:
248 platform_set_drvdata(pdev, NULL);
249 spi_master_put(sp->bitbang.master);
250
251 return ret;
252}
253
196{
197 struct spi_master *master;
198 struct ath79_spi *sp;
199 struct ath79_spi_platform_data *pdata;
200 struct resource *r;
201 int ret;
202
203 master = spi_alloc_master(&pdev->dev, sizeof(*sp));

--- 42 unchanged lines hidden (view full) ---

246 iounmap(sp->base);
247err_put_master:
248 platform_set_drvdata(pdev, NULL);
249 spi_master_put(sp->bitbang.master);
250
251 return ret;
252}
253
254static __devexit int ath79_spi_remove(struct platform_device *pdev)
254static int ath79_spi_remove(struct platform_device *pdev)
255{
256 struct ath79_spi *sp = platform_get_drvdata(pdev);
257
258 spi_bitbang_stop(&sp->bitbang);
259 iounmap(sp->base);
260 platform_set_drvdata(pdev, NULL);
261 spi_master_put(sp->bitbang.master);
262
263 return 0;
264}
265
266static struct platform_driver ath79_spi_driver = {
267 .probe = ath79_spi_probe,
255{
256 struct ath79_spi *sp = platform_get_drvdata(pdev);
257
258 spi_bitbang_stop(&sp->bitbang);
259 iounmap(sp->base);
260 platform_set_drvdata(pdev, NULL);
261 spi_master_put(sp->bitbang.master);
262
263 return 0;
264}
265
266static struct platform_driver ath79_spi_driver = {
267 .probe = ath79_spi_probe,
268 .remove = __devexit_p(ath79_spi_remove),
268 .remove = ath79_spi_remove,
269 .driver = {
270 .name = DRV_NAME,
271 .owner = THIS_MODULE,
272 },
273};
274module_platform_driver(ath79_spi_driver);
275
276MODULE_DESCRIPTION("SPI controller driver for Atheros AR71XX/AR724X/AR913X");
277MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
278MODULE_LICENSE("GPL v2");
279MODULE_ALIAS("platform:" DRV_NAME);
269 .driver = {
270 .name = DRV_NAME,
271 .owner = THIS_MODULE,
272 },
273};
274module_platform_driver(ath79_spi_driver);
275
276MODULE_DESCRIPTION("SPI controller driver for Atheros AR71XX/AR724X/AR913X");
277MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
278MODULE_LICENSE("GPL v2");
279MODULE_ALIAS("platform:" DRV_NAME);