devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Add devicetree support to altera_jtaguart
@ 2011-01-12 22:17 Walter Goossens
       [not found] ` <4D2E287B.7000005-CmkmPbn3yAE@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Walter Goossens @ 2011-01-12 22:17 UTC (permalink / raw)
  To: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ
  Cc: nios2-dev-1eJk0qcHJCcaeqlQEoCUNoJY59XmG8rH

[-- Attachment #1: Type: text/plain, Size: 113 bytes --]

This patch adds devicetree support to the altera_jtaguart driver.
Tested on hardware on the nios2 architecture.


[-- Attachment #2: altera_jtaguart_fdt.patch --]
[-- Type: text/plain, Size: 2705 bytes --]

diff --git a/drivers/serial/altera_jtaguart.c b/drivers/serial/altera_jtaguart.c
index f9b49b5..b71ba92 100644
--- a/drivers/serial/altera_jtaguart.c
+++ b/drivers/serial/altera_jtaguart.c
@@ -431,21 +431,44 @@ static int __devinit altera_jtaguart_probe(struct platform_device *pdev)
 {
 	struct altera_jtaguart_platform_uart *platp = pdev->dev.platform_data;
 	struct uart_port *port;
-	int i;
-
-	for (i = 0; i < ALTERA_JTAGUART_MAXPORTS && platp[i].mapbase; i++) {
-		port = &altera_jtaguart_ports[i].port;
-
-		port->line = i;
-		port->type = PORT_ALTERA_JTAGUART;
-		port->mapbase = platp[i].mapbase;
-		port->membase = ioremap(port->mapbase, ALTERA_JTAGUART_SIZE);
-		port->iotype = SERIAL_IO_MEM;
-		port->irq = platp[i].irq;
-		port->ops = &altera_jtaguart_ops;
-		port->flags = ASYNC_BOOT_AUTOCONF;
-
-		uart_add_one_port(&altera_jtaguart_driver, port);
+	if(platp) {
+		int i;
+		for (i = 0; i < ALTERA_JTAGUART_MAXPORTS && platp[i].mapbase; i++) {
+			port = &altera_jtaguart_ports[i].port;
+
+			port->line = i;
+			port->type = PORT_ALTERA_JTAGUART;
+			port->mapbase = platp[i].mapbase;
+			port->membase = ioremap(port->mapbase, ALTERA_JTAGUART_SIZE);
+			port->iotype = SERIAL_IO_MEM;
+			port->irq = platp[i].irq;
+			port->ops = &altera_jtaguart_ops;
+			port->flags = ASYNC_BOOT_AUTOCONF;
+
+			uart_add_one_port(&altera_jtaguart_driver, port);
+		}
+#ifdef CONFIG_OF
+	} else {
+		struct resource *res_irq;
+		struct resource *res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+		if(res_mem)
+		{
+			res_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+			if(res_irq)
+			{
+				port = &altera_jtaguart_ports[0].port;
+				port->line = 0;
+				port->type = PORT_ALTERA_JTAGUART;
+				port->mapbase = res_mem->start;
+				port->membase = ioremap(port->mapbase, ALTERA_JTAGUART_SIZE);
+				port->iotype = SERIAL_IO_MEM;
+				port->irq = res_irq->start;
+				port->ops = &altera_jtaguart_ops;
+				port->flags = ASYNC_BOOT_AUTOCONF;
+				uart_add_one_port(&altera_jtaguart_driver, port);
+			}
+		}
+#endif
 	}
 
 	return 0;
@@ -464,6 +487,15 @@ static int __devexit altera_jtaguart_remove(struct platform_device *pdev)
 
 	return 0;
 }
+#ifdef CONFIG_OF
+static struct of_device_id altera_jtaguart_match[] = {
+	{ 
+		.compatible = "altera,altera_juart",
+	},
+	{},
+}
+MODULE_DEVICE_TABLE(of, altera_jtaguart_match);
+#endif /* CONFIG_OF */
 
 static struct platform_driver altera_jtaguart_platform_driver = {
 	.probe	= altera_jtaguart_probe,
@@ -471,6 +503,9 @@ static struct platform_driver altera_jtaguart_platform_driver = {
 	.driver	= {
 		.name	= DRV_NAME,
 		.owner	= THIS_MODULE,
+#ifdef CONFIG_OF
+		.of_match_table = altera_jtaguart_match,
+#endif
 	},
 };
 

[-- Attachment #3: Type: text/plain, Size: 192 bytes --]

_______________________________________________
devicetree-discuss mailing list
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-01-24 12:28 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-12 22:17 [PATCH] Add devicetree support to altera_jtaguart Walter Goossens
     [not found] ` <4D2E287B.7000005-CmkmPbn3yAE@public.gmane.org>
2011-01-12 23:06   ` Grant Likely
     [not found]     ` <20110112230607.GA31712-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-01-13  1:18       ` [PATCHv2] " Walter Goossens
     [not found]         ` <4D2E52FF.5060102-CmkmPbn3yAE@public.gmane.org>
2011-01-18 16:35           ` [Nios2-dev] " Tobias Klauser
2011-01-23 13:17             ` [PATCH v3] " Walter Goossens
     [not found]               ` <4D3C2A67.6030408-CmkmPbn3yAE@public.gmane.org>
2011-01-24 12:28                 ` Tobias Klauser
2011-01-13  1:25       ` [PATCH] " Walter Goossens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).