spi-ep93xx.c (53279f36dccffc26ff536003fd6bb97cc21c3b82) spi-ep93xx.c (fd4a319bc933ae93e68935b21924a9ca4ba2d060)
1/*
2 * Driver for Cirrus Logic EP93xx SPI controller.
3 *
4 * Copyright (C) 2010-2011 Mika Westerberg
5 *
6 * Explicit FIFO handling code was inspired by amba-pl022 driver.
7 *
8 * Chip select support using other than built-in GPIOs by H. Hartley Sweeten.

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

1018 dma_release_channel(espi->dma_tx);
1019 sg_free_table(&espi->tx_sgt);
1020 }
1021
1022 if (espi->zeropage)
1023 free_page((unsigned long)espi->zeropage);
1024}
1025
1/*
2 * Driver for Cirrus Logic EP93xx SPI controller.
3 *
4 * Copyright (C) 2010-2011 Mika Westerberg
5 *
6 * Explicit FIFO handling code was inspired by amba-pl022 driver.
7 *
8 * Chip select support using other than built-in GPIOs by H. Hartley Sweeten.

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

1018 dma_release_channel(espi->dma_tx);
1019 sg_free_table(&espi->tx_sgt);
1020 }
1021
1022 if (espi->zeropage)
1023 free_page((unsigned long)espi->zeropage);
1024}
1025
1026static int __devinit ep93xx_spi_probe(struct platform_device *pdev)
1026static int ep93xx_spi_probe(struct platform_device *pdev)
1027{
1028 struct spi_master *master;
1029 struct ep93xx_spi_info *info;
1030 struct ep93xx_spi *espi;
1031 struct resource *res;
1032 int irq;
1033 int error;
1034

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

1133 clk_put(espi->clk);
1134fail_release_master:
1135 spi_master_put(master);
1136 platform_set_drvdata(pdev, NULL);
1137
1138 return error;
1139}
1140
1027{
1028 struct spi_master *master;
1029 struct ep93xx_spi_info *info;
1030 struct ep93xx_spi *espi;
1031 struct resource *res;
1032 int irq;
1033 int error;
1034

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

1133 clk_put(espi->clk);
1134fail_release_master:
1135 spi_master_put(master);
1136 platform_set_drvdata(pdev, NULL);
1137
1138 return error;
1139}
1140
1141static int __devexit ep93xx_spi_remove(struct platform_device *pdev)
1141static int ep93xx_spi_remove(struct platform_device *pdev)
1142{
1143 struct spi_master *master = platform_get_drvdata(pdev);
1144 struct ep93xx_spi *espi = spi_master_get_devdata(master);
1145
1146 spin_lock_irq(&espi->lock);
1147 espi->running = false;
1148 spin_unlock_irq(&espi->lock);
1149

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

1175}
1176
1177static struct platform_driver ep93xx_spi_driver = {
1178 .driver = {
1179 .name = "ep93xx-spi",
1180 .owner = THIS_MODULE,
1181 },
1182 .probe = ep93xx_spi_probe,
1142{
1143 struct spi_master *master = platform_get_drvdata(pdev);
1144 struct ep93xx_spi *espi = spi_master_get_devdata(master);
1145
1146 spin_lock_irq(&espi->lock);
1147 espi->running = false;
1148 spin_unlock_irq(&espi->lock);
1149

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

1175}
1176
1177static struct platform_driver ep93xx_spi_driver = {
1178 .driver = {
1179 .name = "ep93xx-spi",
1180 .owner = THIS_MODULE,
1181 },
1182 .probe = ep93xx_spi_probe,
1183 .remove = __devexit_p(ep93xx_spi_remove),
1183 .remove = ep93xx_spi_remove,
1184};
1185module_platform_driver(ep93xx_spi_driver);
1186
1187MODULE_DESCRIPTION("EP93xx SPI Controller driver");
1188MODULE_AUTHOR("Mika Westerberg <mika.westerberg@iki.fi>");
1189MODULE_LICENSE("GPL");
1190MODULE_ALIAS("platform:ep93xx-spi");
1184};
1185module_platform_driver(ep93xx_spi_driver);
1186
1187MODULE_DESCRIPTION("EP93xx SPI Controller driver");
1188MODULE_AUTHOR("Mika Westerberg <mika.westerberg@iki.fi>");
1189MODULE_LICENSE("GPL");
1190MODULE_ALIAS("platform:ep93xx-spi");