[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090704085721.GA29751@nokia.com>
Date: Sat, 4 Jul 2009 11:57:21 +0300
From: Felipe Balbi <felipe.balbi@...ia.com>
To: ext Janusz Krzysztofik <jkrzyszt@....icnet.pl>
Cc: Jonathan McDowell <noodles@...th.li>,
Tony Lindgren <tony@...mide.com>,
"linux-omap@...r.kernel.org" <linux-omap@...r.kernel.org>,
"linux-serial@...r.kernel.org" <linux-serial@...r.kernel.org>,
"linux-arm-kernel@...ts.arm.linux.org.uk"
<linux-arm-kernel@...ts.arm.linux.org.uk>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] [RFC] OMAP1: AMS_DELTA: add modem support
Hi,
On Sat, Jul 04, 2009 at 02:06:42AM +0200, ext Janusz Krzysztofik wrote:
> This patch adds support for modem device found on Amstrad E3 (Delta) board.
>
> Patch created against linux-2.6.31-rc1.
>
> Based on earlier patch by Jonathan McDowell, available at
> http://the.earth.li/pub/e3/2.6.19/ams-delta-modem.patch.
> Modified after Ladislav Michl's arch/arm/mach-omap1/board-voiceblue.c.
>
> Signed-off-by: Janusz Krzysztofik <jkrzyszt@....icnet.pl>
> ---
> Registering the modem platform device from a separate arch_initcall (and not from machine_init() callback) preserves serial console port
> at ttyS0.
>
> --- linux-2.6.31-rc1/arch/arm/mach-omap1/board-ams-delta.c.orig 2009-06-27 20:19:50.000000000 +0200
> +++ linux-2.6.31-rc1/arch/arm/mach-omap1/board-ams-delta.c 2009-07-04 00:50:46.000000000 +0200
> @@ -15,8 +15,11 @@
> #include <linux/kernel.h>
> #include <linux/init.h>
> #include <linux/input.h>
> +#include <linux/irq.h>
> #include <linux/platform_device.h>
> +#include <linux/serial_8250.h>
>
> +#include <asm/serial.h>
> #include <mach/hardware.h>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> @@ -233,7 +236,39 @@ static void __init ams_delta_init(void)
>
> omap_usb_init(&ams_delta_usb_config);
> platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices));
> +
> +}
> +
> +static struct plat_serial8250_port ams_delta_modem_ports[] = {
> + {
> + .membase = (void *) AMS_DELTA_MODEM_VIRT,
> + .mapbase = AMS_DELTA_MODEM_PHYS,
> + .irq = OMAP_GPIO_IRQ(2),
you should avoid OMAP_GPIO_IRQ() and use gpio_to_irq(), but for that
you're gonna need to change ams_delta_modem_init as well:
ams_delta_modem_ports[] = {
{
...
.irq = -EINVAL; /* changed later */
...
},
};
> +static int __init ams_delta_modem_init(void)
> +{
ams_delta_modem_ports[0].irq = gpio_to_irq(2);
> + set_irq_type(OMAP_GPIO_IRQ(2), IRQ_TYPE_EDGE_RISING);
gpio_to_irq(2);
> + ams_delta_latch2_write(
> + AMS_DELTA_LATCH2_MODEM_NRESET | AMS_DELTA_LATCH2_MODEM_CODEC,
> + AMS_DELTA_LATCH2_MODEM_NRESET | AMS_DELTA_LATCH2_MODEM_CODEC);
> + return platform_device_register(&ams_delta_modem_device);
> }
> +arch_initcall(ams_delta_modem_init);
--
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists