Browse Source

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>
Peter Ujfalusi 9 years ago
parent
commit
34635b1acc
1 changed files with 19 additions and 0 deletions
  1. 19 0
      drivers/dma/edma.c

+ 19 - 0
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)
 static inline unsigned int edma_read(struct edma_cc *ecc, int offset)
 {
 {
 	return (unsigned int)__raw_readl(ecc->base + 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 edma_filter_fn(struct dma_chan *chan, void *param)
 {
 {
 	bool match = false;
 	bool match = false;
@@ -2418,6 +2430,12 @@ EXPORT_SYMBOL(edma_filter_fn);
 
 
 static int edma_init(void)
 static int edma_init(void)
 {
 {
+	int ret;
+
+	ret = platform_driver_register(&edma_tptc_driver);
+	if (ret)
+		return ret;
+
 	return platform_driver_register(&edma_driver);
 	return platform_driver_register(&edma_driver);
 }
 }
 subsys_initcall(edma_init);
 subsys_initcall(edma_init);
@@ -2425,6 +2443,7 @@ subsys_initcall(edma_init);
 static void __exit edma_exit(void)
 static void __exit edma_exit(void)
 {
 {
 	platform_driver_unregister(&edma_driver);
 	platform_driver_unregister(&edma_driver);
+	platform_driver_unregister(&edma_tptc_driver);
 }
 }
 module_exit(edma_exit);
 module_exit(edma_exit);