linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] omap3_beagle: Init only uart3 used for console
@ 2012-03-05 11:12 Govindraj.R
  2012-03-05 14:06 ` Koen Kooi
  2012-03-05 20:00 ` Kevin Hilman
  0 siblings, 2 replies; 8+ messages in thread
From: Govindraj.R @ 2012-03-05 11:12 UTC (permalink / raw)
  To: linux-arm-kernel

From: "Govindraj.R" <govindraj.raja@ti.com>

On beagle some of uart mux lines are used for other
purpose so init only uart3.

Uart2 rx line clashes with gpio_147 used for usb ehci
phy reset. Initializing uart2 pad_mux lines can break
ehci module on beagle xm.
(gpio_147 is available on uart2_rx in mode4 reference 
mux34xx.c -> uart2_rx.gpio_147)

Cc: Tony Lindgren <tony@atomide.com>
Cc: Kevin Hilman <khilman@ti.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Robert Nelson <robertcnelson@gmail.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
---
 arch/arm/mach-omap2/board-omap3beagle.c |   50 ++++++++++++++++++++++++++++++-
 1 files changed, 49 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 817be06..a2e0052 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -493,6 +493,54 @@ static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
 static struct omap_board_mux board_mux[] __initdata = {
 	{ .reg_offset = OMAP_MUX_TERMINATOR },
 };
+
+static struct omap_device_pad uart3_pads[] __initdata = {
+	{
+		.name	= "uart3_cts_rctx.uart3_cts_rctx",
+		.enable	= OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
+	},
+	{
+		.name	= "uart3_rts_sd.uart3_rts_sd",
+		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
+	},
+	{
+		.name	= "uart3_tx_irtx.uart3_tx_irtx",
+		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
+	},
+	{
+		.name	= "uart3_rx_irrx.uart3_rx_irrx",
+		.flags	= OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
+		.enable	= OMAP_PIN_INPUT | OMAP_MUX_MODE0,
+		.idle	= OMAP_PIN_INPUT | OMAP_MUX_MODE0,
+	},
+};
+
+static inline void board_serial_init(void)
+{
+	struct omap_board_data uart3_bdata;
+	uart3_bdata.flags     = 0;
+	uart3_bdata.pads      = uart3_pads;
+	uart3_bdata.pads_cnt  = ARRAY_SIZE(uart3_pads);
+	uart3_bdata.id        = 2;
+
+	/*
+	 * Init only uart3 used as console
+	 * don't init other uarts as uart mux lines
+	 * might be used for other purpose on beagle board
+	 * ex: uart2_rx used by gpio_147 for usb_ehci phy reset.
+	 */
+	omap_serial_init_port(&uart3_bdata, NULL);
+}
+#else
+
+/*
+ * If mux is disabled from kernel probably we
+ * are relying on boot-loaders so we init all uarts
+ */
+static inline void board_serial_init(void)
+{
+	omap_serial_init();
+}
 #endif
 
 static void __init beagle_opp_init(void)
@@ -549,7 +597,7 @@ static void __init omap3_beagle_init(void)
 	platform_add_devices(omap3_beagle_devices,
 			ARRAY_SIZE(omap3_beagle_devices));
 	omap_display_init(&beagle_dss_data);
-	omap_serial_init();
+	board_serial_init();
 	omap_sdrc_init(mt46h32m32lf6_sdrc_params,
 				  mt46h32m32lf6_sdrc_params);
 
-- 
1.7.5.4

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

* [PATCH] omap3_beagle: Init only uart3 used for console
  2012-03-05 11:12 [PATCH] omap3_beagle: Init only uart3 used for console Govindraj.R
@ 2012-03-05 14:06 ` Koen Kooi
  2012-03-06  9:03   ` Raja, Govindraj
  2012-03-05 20:00 ` Kevin Hilman
  1 sibling, 1 reply; 8+ messages in thread
From: Koen Kooi @ 2012-03-05 14:06 UTC (permalink / raw)
  To: linux-arm-kernel


Op 5 mrt. 2012, om 12:12 heeft Govindraj.R het volgende geschreven:

> From: "Govindraj.R" <govindraj.raja@ti.com>
> 
> On beagle some of uart mux lines are used for other
> purpose so init only uart3.
> 
> Uart2 rx line clashes with gpio_147 used for usb ehci
> phy reset. Initializing uart2 pad_mux lines can break
> ehci module on beagle xm.
> (gpio_147 is available on uart2_rx in mode4 reference 
> mux34xx.c -> uart2_rx.gpio_147)

That's only on xM revision C, right?

regards,

Koen

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

* [PATCH] omap3_beagle: Init only uart3 used for console
  2012-03-05 11:12 [PATCH] omap3_beagle: Init only uart3 used for console Govindraj.R
  2012-03-05 14:06 ` Koen Kooi
@ 2012-03-05 20:00 ` Kevin Hilman
  2012-03-05 20:51   ` Tony Lindgren
  2012-03-06  9:10   ` Raja, Govindraj
  1 sibling, 2 replies; 8+ messages in thread
From: Kevin Hilman @ 2012-03-05 20:00 UTC (permalink / raw)
  To: linux-arm-kernel

"Govindraj.R" <govindraj.raja@ti.com> writes:

> From: "Govindraj.R" <govindraj.raja@ti.com>
>
> On beagle some of uart mux lines are used for other
> purpose so init only uart3.

OK, but you should also be clear that this patch is effectively
disabling all UARTS (except UART3) by defatul, which I'm not sure all
Beagle users will be happy about.

> Uart2 rx line clashes with gpio_147 used for usb ehci
> phy reset. Initializing uart2 pad_mux lines can break
> ehci module on beagle xm.
> (gpio_147 is available on uart2_rx in mode4 reference 
> mux34xx.c -> uart2_rx.gpio_147)

As Koen mentioned, this conflict only exists on certain boards, so
you should be clear that this is just an example.

> Cc: Tony Lindgren <tony@atomide.com>
> Cc: Kevin Hilman <khilman@ti.com>
> Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Tested-by: Robert Nelson <robertcnelson@gmail.com>
> Signed-off-by: Govindraj.R <govindraj.raja@ti.com>

[...]

> +
> +static inline void board_serial_init(void)

Should be __init

[...]

> +static inline void board_serial_init(void)

here too.

Kevin

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

* [PATCH] omap3_beagle: Init only uart3 used for console
  2012-03-05 20:00 ` Kevin Hilman
@ 2012-03-05 20:51   ` Tony Lindgren
  2012-03-06  9:16     ` Raja, Govindraj
  2012-03-06  9:10   ` Raja, Govindraj
  1 sibling, 1 reply; 8+ messages in thread
From: Tony Lindgren @ 2012-03-05 20:51 UTC (permalink / raw)
  To: linux-arm-kernel

* Kevin Hilman <khilman@ti.com> [120305 11:28]:
> "Govindraj.R" <govindraj.raja@ti.com> writes:
> 
> > From: "Govindraj.R" <govindraj.raja@ti.com>
> >
> > On beagle some of uart mux lines are used for other
> > purpose so init only uart3.
> 
> OK, but you should also be clear that this patch is effectively
> disabling all UARTS (except UART3) by defatul, which I'm not sure all
> Beagle users will be happy about.
> 
> > Uart2 rx line clashes with gpio_147 used for usb ehci
> > phy reset. Initializing uart2 pad_mux lines can break
> > ehci module on beagle xm.
> > (gpio_147 is available on uart2_rx in mode4 reference 
> > mux34xx.c -> uart2_rx.gpio_147)
> 
> As Koen mentioned, this conflict only exists on certain boards, so
> you should be clear that this is just an example.

OK, thanks for the comments. Also it's a bit clear if
this really is safe to do on all beagles.
 
> > Cc: Tony Lindgren <tony@atomide.com>
> > Cc: Kevin Hilman <khilman@ti.com>
> > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> > Tested-by: Robert Nelson <robertcnelson@gmail.com>
> > Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
> 
> [...]
> 
> > +
> > +static inline void board_serial_init(void)
> 
> Should be __init
> 
> [...]
> 
> > +static inline void board_serial_init(void)
> 
> here too.

..so dropping the patch for now until these are fixed
and we have some tested-bys for non-xm beagles too.

Regards,

Tony

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

* [PATCH] omap3_beagle: Init only uart3 used for console
  2012-03-05 14:06 ` Koen Kooi
@ 2012-03-06  9:03   ` Raja, Govindraj
  2012-03-06  9:10     ` Koen Kooi
  0 siblings, 1 reply; 8+ messages in thread
From: Raja, Govindraj @ 2012-03-06  9:03 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Mar 5, 2012 at 7:36 PM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>
> Op 5 mrt. 2012, om 12:12 heeft Govindraj.R het volgende geschreven:
>
>> From: "Govindraj.R" <govindraj.raja@ti.com>
>>
>> On beagle some of uart mux lines are used for other
>> purpose so init only uart3.
>>
>> Uart2 rx line clashes with gpio_147 used for usb ehci
>> phy reset. Initializing uart2 pad_mux lines can break
>> ehci module on beagle xm.
>> (gpio_147 is available on uart2_rx in mode4 reference
>> mux34xx.c -> uart2_rx.gpio_147)
>
> That's only on xM revision C, right?

Applicable to all beagle boards having external usb
hub (USB2HS_nRST will require uart2_rx.gpio_147)

Beagle Rev Ax/Bx doesn't seem to have external hub
module so not applicable for those boards

Will modify and post a new patch.

--
Thanks,
Govindraj.R

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

* [PATCH] omap3_beagle: Init only uart3 used for console
  2012-03-06  9:03   ` Raja, Govindraj
@ 2012-03-06  9:10     ` Koen Kooi
  0 siblings, 0 replies; 8+ messages in thread
From: Koen Kooi @ 2012-03-06  9:10 UTC (permalink / raw)
  To: linux-arm-kernel


Op 6 mrt. 2012, om 10:03 heeft Raja, Govindraj het volgende geschreven:

> On Mon, Mar 5, 2012 at 7:36 PM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>> 
>> Op 5 mrt. 2012, om 12:12 heeft Govindraj.R het volgende geschreven:
>> 
>>> From: "Govindraj.R" <govindraj.raja@ti.com>
>>> 
>>> On beagle some of uart mux lines are used for other
>>> purpose so init only uart3.
>>> 
>>> Uart2 rx line clashes with gpio_147 used for usb ehci
>>> phy reset. Initializing uart2 pad_mux lines can break
>>> ehci module on beagle xm.
>>> (gpio_147 is available on uart2_rx in mode4 reference
>>> mux34xx.c -> uart2_rx.gpio_147)
>> 
>> That's only on xM revision C, right?
> 
> Applicable to all beagle boards having external usb
> hub (USB2HS_nRST will require uart2_rx.gpio_147)

My apologies, I was confusing it with the DVI reset GPIO (which changed in between revisions) and the polarity of the USB pin (which changed during xM A -> C).

regards,

Koen

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

* [PATCH] omap3_beagle: Init only uart3 used for console
  2012-03-05 20:00 ` Kevin Hilman
  2012-03-05 20:51   ` Tony Lindgren
@ 2012-03-06  9:10   ` Raja, Govindraj
  1 sibling, 0 replies; 8+ messages in thread
From: Raja, Govindraj @ 2012-03-06  9:10 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Mar 6, 2012 at 1:30 AM, Kevin Hilman <khilman@ti.com> wrote:
> "Govindraj.R" <govindraj.raja@ti.com> writes:
>
>> From: "Govindraj.R" <govindraj.raja@ti.com>
>>
>> On beagle some of uart mux lines are used for other
>> purpose so init only uart3.
>
> OK, but you should also be clear that this patch is effectively
> disabling all UARTS (except UART3) by defatul, which I'm not sure all
> Beagle users will be happy about.
>

Okay, I have posted new version of the patch
"[PATCH] omap3_beagle: init uart2 for beagle rev AX/BX only"

which initialises uart1/3/4 on all beagle boards

and uart2 init is done for only beagle rev ax/bx
which doesn't seem to have external usb module.


>> Uart2 rx line clashes with gpio_147 used for usb ehci
>> phy reset. Initializing uart2 pad_mux lines can break
>> ehci module on beagle xm.
>> (gpio_147 is available on uart2_rx in mode4 reference
>> mux34xx.c -> uart2_rx.gpio_147)
>
> As Koen mentioned, this conflict only exists on certain boards, so
> you should be clear that this is just an example.
>

conflict exists all beagle rev's expect rev ax/bx.

--
Thanks,
Govindraj.R

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

* [PATCH] omap3_beagle: Init only uart3 used for console
  2012-03-05 20:51   ` Tony Lindgren
@ 2012-03-06  9:16     ` Raja, Govindraj
  0 siblings, 0 replies; 8+ messages in thread
From: Raja, Govindraj @ 2012-03-06  9:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Mar 6, 2012 at 2:21 AM, Tony Lindgren <tony@atomide.com> wrote:
> * Kevin Hilman <khilman@ti.com> [120305 11:28]:
>> "Govindraj.R" <govindraj.raja@ti.com> writes:
>>
>> > From: "Govindraj.R" <govindraj.raja@ti.com>
>> >
>> > On beagle some of uart mux lines are used for other
>> > purpose so init only uart3.
>>
>> OK, but you should also be clear that this patch is effectively
>> disabling all UARTS (except UART3) by defatul, which I'm not sure all
>> Beagle users will be happy about.
>>
>> > Uart2 rx line clashes with gpio_147 used for usb ehci
>> > phy reset. Initializing uart2 pad_mux lines can break
>> > ehci module on beagle xm.
>> > (gpio_147 is available on uart2_rx in mode4 reference
>> > mux34xx.c -> uart2_rx.gpio_147)
>>
>> As Koen mentioned, this conflict only exists on certain boards, so
>> you should be clear that this is just an example.
>
> OK, thanks for the comments. Also it's a bit clear if
> this really is safe to do on all beagles.

I have clarified the same in reply to "Kevin Hilman" and "Koen Kooi"
in the same thread.

>
>> > Cc: Tony Lindgren <tony@atomide.com>
>> > Cc: Kevin Hilman <khilman@ti.com>
>> > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>> > Tested-by: Robert Nelson <robertcnelson@gmail.com>
>> > Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
>>
>> [...]
>>
>> > +
>> > +static inline void board_serial_init(void)
>>
>> Should be __init
>>
>> [...]
>>
>> > +static inline void board_serial_init(void)
>>
>> here too.
>
> ..so dropping the patch for now until these are fixed
> and we have some tested-bys for non-xm beagles too.
>

Okay fine, I have new version of the patch
"[PATCH] omap3_beagle: init uart2 for beagle rev AX/BX only"

This patch shouldn't have any impact and should work on beagles.

--
Thanks,
Govindraj.R

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

end of thread, other threads:[~2012-03-06  9:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-05 11:12 [PATCH] omap3_beagle: Init only uart3 used for console Govindraj.R
2012-03-05 14:06 ` Koen Kooi
2012-03-06  9:03   ` Raja, Govindraj
2012-03-06  9:10     ` Koen Kooi
2012-03-05 20:00 ` Kevin Hilman
2012-03-05 20:51   ` Tony Lindgren
2012-03-06  9:16     ` Raja, Govindraj
2012-03-06  9:10   ` Raja, Govindraj

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).