spi-mxs.c (222e82bef4bd520a31d48c31ab24e49dd46daa46) spi-mxs.c (fd4a319bc933ae93e68935b21924a9ca4ba2d060)
1/*
2 * Freescale MXS SPI master driver
3 *
4 * Copyright 2012 DENX Software Engineering, GmbH.
5 * Copyright 2012 Freescale Semiconductor, Inc.
6 * Copyright 2008 Embedded Alley Solutions, Inc All Rights Reserved.
7 *
8 * Rework and transition to new API by:

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

504
505static const struct of_device_id mxs_spi_dt_ids[] = {
506 { .compatible = "fsl,imx23-spi", .data = (void *) IMX23_SSP, },
507 { .compatible = "fsl,imx28-spi", .data = (void *) IMX28_SSP, },
508 { /* sentinel */ }
509};
510MODULE_DEVICE_TABLE(of, mxs_spi_dt_ids);
511
1/*
2 * Freescale MXS SPI master driver
3 *
4 * Copyright 2012 DENX Software Engineering, GmbH.
5 * Copyright 2012 Freescale Semiconductor, Inc.
6 * Copyright 2008 Embedded Alley Solutions, Inc All Rights Reserved.
7 *
8 * Rework and transition to new API by:

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

504
505static const struct of_device_id mxs_spi_dt_ids[] = {
506 { .compatible = "fsl,imx23-spi", .data = (void *) IMX23_SSP, },
507 { .compatible = "fsl,imx28-spi", .data = (void *) IMX28_SSP, },
508 { /* sentinel */ }
509};
510MODULE_DEVICE_TABLE(of, mxs_spi_dt_ids);
511
512static int __devinit mxs_spi_probe(struct platform_device *pdev)
512static int mxs_spi_probe(struct platform_device *pdev)
513{
514 const struct of_device_id *of_id =
515 of_match_device(mxs_spi_dt_ids, &pdev->dev);
516 struct device_node *np = pdev->dev.of_node;
517 struct spi_master *master;
518 struct mxs_spi *spi;
519 struct mxs_ssp *ssp;
520 struct resource *iores, *dmares;

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

631out_free_dma:
632 dma_release_channel(ssp->dmach);
633 clk_disable_unprepare(ssp->clk);
634out_master_free:
635 spi_master_put(master);
636 return ret;
637}
638
513{
514 const struct of_device_id *of_id =
515 of_match_device(mxs_spi_dt_ids, &pdev->dev);
516 struct device_node *np = pdev->dev.of_node;
517 struct spi_master *master;
518 struct mxs_spi *spi;
519 struct mxs_ssp *ssp;
520 struct resource *iores, *dmares;

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

631out_free_dma:
632 dma_release_channel(ssp->dmach);
633 clk_disable_unprepare(ssp->clk);
634out_master_free:
635 spi_master_put(master);
636 return ret;
637}
638
639static int __devexit mxs_spi_remove(struct platform_device *pdev)
639static int mxs_spi_remove(struct platform_device *pdev)
640{
641 struct spi_master *master;
642 struct mxs_spi *spi;
643 struct mxs_ssp *ssp;
644
645 master = spi_master_get(platform_get_drvdata(pdev));
646 spi = spi_master_get_devdata(master);
647 ssp = &spi->ssp;

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

654
655 spi_master_put(master);
656
657 return 0;
658}
659
660static struct platform_driver mxs_spi_driver = {
661 .probe = mxs_spi_probe,
640{
641 struct spi_master *master;
642 struct mxs_spi *spi;
643 struct mxs_ssp *ssp;
644
645 master = spi_master_get(platform_get_drvdata(pdev));
646 spi = spi_master_get_devdata(master);
647 ssp = &spi->ssp;

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

654
655 spi_master_put(master);
656
657 return 0;
658}
659
660static struct platform_driver mxs_spi_driver = {
661 .probe = mxs_spi_probe,
662 .remove = __devexit_p(mxs_spi_remove),
662 .remove = mxs_spi_remove,
663 .driver = {
664 .name = DRIVER_NAME,
665 .owner = THIS_MODULE,
666 .of_match_table = mxs_spi_dt_ids,
667 },
668};
669
670module_platform_driver(mxs_spi_driver);
671
672MODULE_AUTHOR("Marek Vasut <marex@denx.de>");
673MODULE_DESCRIPTION("MXS SPI master driver");
674MODULE_LICENSE("GPL");
675MODULE_ALIAS("platform:mxs-spi");
663 .driver = {
664 .name = DRIVER_NAME,
665 .owner = THIS_MODULE,
666 .of_match_table = mxs_spi_dt_ids,
667 },
668};
669
670module_platform_driver(mxs_spi_driver);
671
672MODULE_AUTHOR("Marek Vasut <marex@denx.de>");
673MODULE_DESCRIPTION("MXS SPI master driver");
674MODULE_LICENSE("GPL");
675MODULE_ALIAS("platform:mxs-spi");