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); |