diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2015-11-02 15:21:40 +0200 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2015-11-04 22:11:42 +0530 |
commit | 34635b1accb99b3c3ad3b35a210be198701aac7e (patch) | |
tree | cec0af61443eb64d4a5792b6ad7bca7e8a81212e /drivers/dma/edma.c | |
parent | 829a2fac71b83c1689213337e8cfc58a9ea12211 (diff) | |
download | linux-34635b1accb99b3c3ad3b35a210be198701aac7e.tar.bz2 |
dmaengine: edma: Add dummy driver skeleton for edma3-tptc
The eDMA3 TPTC does not need any software configuration, but it is a
separate IP block in the SoC. In order the omap hwmod core to be able to
handle the TPTC resources correctly in regards of PM we need to have a
driver loaded for it.
This patch will add a dummy driver skeleton without probe or remove
callbacks provided.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reported-by: Olof Johansson <olof@lixom.net>
Tested-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/edma.c')
-rw-r--r-- | drivers/dma/edma.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c index 31722d436a42..6b03e4e84e6b 100644 --- a/drivers/dma/edma.c +++ b/drivers/dma/edma.c @@ -269,6 +269,11 @@ static const struct of_device_id edma_of_ids[] = { {} }; +static const struct of_device_id edma_tptc_of_ids[] = { + { .compatible = "ti,edma3-tptc", }, + {} +}; + static inline unsigned int edma_read(struct edma_cc *ecc, int offset) { return (unsigned int)__raw_readl(ecc->base + offset); @@ -2399,6 +2404,13 @@ static struct platform_driver edma_driver = { }, }; +static struct platform_driver edma_tptc_driver = { + .driver = { + .name = "edma3-tptc", + .of_match_table = edma_tptc_of_ids, + }, +}; + bool edma_filter_fn(struct dma_chan *chan, void *param) { bool match = false; @@ -2418,6 +2430,12 @@ EXPORT_SYMBOL(edma_filter_fn); static int edma_init(void) { + int ret; + + ret = platform_driver_register(&edma_tptc_driver); + if (ret) + return ret; + return platform_driver_register(&edma_driver); } subsys_initcall(edma_init); @@ -2425,6 +2443,7 @@ subsys_initcall(edma_init); static void __exit edma_exit(void) { platform_driver_unregister(&edma_driver); + platform_driver_unregister(&edma_tptc_driver); } module_exit(edma_exit); |