linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration
@ 2011-02-11 10:41 julien.boibessot at free.fr
  2011-02-11 12:25 ` Richard Zhao
  0 siblings, 1 reply; 7+ messages in thread
From: julien.boibessot at free.fr @ 2011-02-11 10:41 UTC (permalink / raw)
  To: linux-arm-kernel

From: Julien Boibessot <julien.boibessot@armadeus.com>

Fixes a regression of recent iomux changes: current MX51_PAD_UART2_TXD__UART2_TXD
declaration overwrites IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT register
(0x09ec) and prevent UART2 Rx from working properly.
(Tested on my custom i.MX51 board where UART2 is used as console)

Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
---
Changes since v1:
    - Improve patch description as requested by Sascha Hauer

 arch/arm/plat-mxc/include/mach/iomux-mx51.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx51.h b/arch/arm/plat-mxc/include/mach/iomux-mx51.h
index b6767f9..df531aa 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx51.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx51.h
@@ -473,7 +473,7 @@
 #define _MX51_PAD_UART2_RXD__UART2_RXD		IOMUX_PAD(0x628, 0x238, 0, 0x09ec, 2, 0)
 #define _MX51_PAD_UART2_TXD__FIRI_RXD		IOMUX_PAD(0x62c, 0x23c, 1, 0x0000, 0, 0)
 #define _MX51_PAD_UART2_TXD__GPIO1_21		IOMUX_PAD(0x62c, 0x23c, 3, 0x0000, 0, 0)
-#define _MX51_PAD_UART2_TXD__UART2_TXD		IOMUX_PAD(0x62c, 0x23c, 0, 0x09ec, 3, 0)
+#define _MX51_PAD_UART2_TXD__UART2_TXD		IOMUX_PAD(0x62c, 0x23c, 0, 0x0000, 0, 0)
 #define _MX51_PAD_UART3_RXD__CSI1_D0		IOMUX_PAD(0x630, 0x240, 2, 0x0000, 0, 0)
 #define _MX51_PAD_UART3_RXD__GPIO1_22		IOMUX_PAD(0x630, 0x240, 3, 0x0000, 0, 0)
 #define _MX51_PAD_UART3_RXD__UART1_DTR		IOMUX_PAD(0x630, 0x240, 0, 0x0000, 0, 0)
-- 
1.6.0.4

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

* [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration
  2011-02-11 10:41 [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration julien.boibessot at free.fr
@ 2011-02-11 12:25 ` Richard Zhao
  2011-02-11 13:05   ` Lothar Waßmann
  2011-02-11 13:43   ` Julien Boibessot
  0 siblings, 2 replies; 7+ messages in thread
From: Richard Zhao @ 2011-02-11 12:25 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Julien,

#define _MX51_PAD_USBH1_DATA2__UART2_TXD	IOMUX_PAD(0x690, 0x290, 1, 0x09ec, 5, 0)

Will you change the above line too?

Thanks
Richard

On Fri, Feb 11, 2011 at 11:41:56AM +0100, julien.boibessot at free.fr wrote:
> From: Julien Boibessot <julien.boibessot@armadeus.com>
> 
> Fixes a regression of recent iomux changes: current MX51_PAD_UART2_TXD__UART2_TXD
> declaration overwrites IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT register
> (0x09ec) and prevent UART2 Rx from working properly.
> (Tested on my custom i.MX51 board where UART2 is used as console)
> 
> Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
> ---
> Changes since v1:
>     - Improve patch description as requested by Sascha Hauer
> 
>  arch/arm/plat-mxc/include/mach/iomux-mx51.h |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx51.h b/arch/arm/plat-mxc/include/mach/iomux-mx51.h
> index b6767f9..df531aa 100644
> --- a/arch/arm/plat-mxc/include/mach/iomux-mx51.h
> +++ b/arch/arm/plat-mxc/include/mach/iomux-mx51.h
> @@ -473,7 +473,7 @@
>  #define _MX51_PAD_UART2_RXD__UART2_RXD		IOMUX_PAD(0x628, 0x238, 0, 0x09ec, 2, 0)
>  #define _MX51_PAD_UART2_TXD__FIRI_RXD		IOMUX_PAD(0x62c, 0x23c, 1, 0x0000, 0, 0)
>  #define _MX51_PAD_UART2_TXD__GPIO1_21		IOMUX_PAD(0x62c, 0x23c, 3, 0x0000, 0, 0)
> -#define _MX51_PAD_UART2_TXD__UART2_TXD		IOMUX_PAD(0x62c, 0x23c, 0, 0x09ec, 3, 0)
> +#define _MX51_PAD_UART2_TXD__UART2_TXD		IOMUX_PAD(0x62c, 0x23c, 0, 0x0000, 0, 0)
>  #define _MX51_PAD_UART3_RXD__CSI1_D0		IOMUX_PAD(0x630, 0x240, 2, 0x0000, 0, 0)
>  #define _MX51_PAD_UART3_RXD__GPIO1_22		IOMUX_PAD(0x630, 0x240, 3, 0x0000, 0, 0)
>  #define _MX51_PAD_UART3_RXD__UART1_DTR		IOMUX_PAD(0x630, 0x240, 0, 0x0000, 0, 0)
> -- 
> 1.6.0.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration
  2011-02-11 12:25 ` Richard Zhao
@ 2011-02-11 13:05   ` Lothar Waßmann
  2011-02-11 13:39     ` Richard Zhao
  2011-02-11 13:43   ` Julien Boibessot
  1 sibling, 1 reply; 7+ messages in thread
From: Lothar Waßmann @ 2011-02-11 13:05 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Richard Zhao writes:
> Hi Julien,
> 
> #define _MX51_PAD_USBH1_DATA2__UART2_TXD	IOMUX_PAD(0x690, 0x290, 1, 0x09ec, 5, 0)
> 
> Will you change the above line too?
> 
Seems like a general copy/paste error in the i.MX51 Ref Manual.
For all pads that can have an UART RXD or TXD function the manual
states that the UART*_IPP_UART_RXD_MUX_SELECT_INPUT register must be
configured, while this is obviously only sensible for the RXD
function.


Lothar Wa?mann
-- 
___________________________________________________________

Ka-Ro electronics GmbH | Pascalstra?e 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Gesch?ftsf?hrer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996

www.karo-electronics.de | info at karo-electronics.de
___________________________________________________________

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

* [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration
  2011-02-11 13:05   ` Lothar Waßmann
@ 2011-02-11 13:39     ` Richard Zhao
  2011-02-11 13:58       ` Lothar Waßmann
  0 siblings, 1 reply; 7+ messages in thread
From: Richard Zhao @ 2011-02-11 13:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Feb 11, 2011 at 02:05:21PM +0100, Lothar Wa?mann wrote:
> Hi,
> 
> Richard Zhao writes:
> > Hi Julien,
> > 
> > #define _MX51_PAD_USBH1_DATA2__UART2_TXD	IOMUX_PAD(0x690, 0x290, 1, 0x09ec, 5, 0)
> > 
> > Will you change the above line too?
> > 
> Seems like a general copy/paste error in the i.MX51 Ref Manual.
> For all pads that can have an UART RXD or TXD function the manual
> states that the UART*_IPP_UART_RXD_MUX_SELECT_INPUT register must be
> configured, while this is obviously only sensible for the RXD
> function.
Yes, it's for RXD. RXD can also select input from TXD.

Thanks
Richard
> 
> 
> Lothar Wa?mann
> -- 
> ___________________________________________________________
> 
> Ka-Ro electronics GmbH | Pascalstra?e 22 | D - 52076 Aachen
> Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
> Gesch?ftsf?hrer: Matthias Kaussen
> Handelsregistereintrag: Amtsgericht Aachen, HRB 4996
> 
> www.karo-electronics.de | info at karo-electronics.de
> ___________________________________________________________

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

* [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration
  2011-02-11 12:25 ` Richard Zhao
  2011-02-11 13:05   ` Lothar Waßmann
@ 2011-02-11 13:43   ` Julien Boibessot
  1 sibling, 0 replies; 7+ messages in thread
From: Julien Boibessot @ 2011-02-11 13:43 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Richard,

Richard Zhao a ?crit :
> #define _MX51_PAD_USBH1_DATA2__UART2_TXD	IOMUX_PAD(0x690, 0x290, 1, 0x09ec, 5, 0)
>
> Will you change the above line too?
>   
yes, you're right, it needs too.

Julien

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

* [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration
  2011-02-11 13:39     ` Richard Zhao
@ 2011-02-11 13:58       ` Lothar Waßmann
  2011-02-12  5:47         ` Richard Zhao
  0 siblings, 1 reply; 7+ messages in thread
From: Lothar Waßmann @ 2011-02-11 13:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Richard Zhao writes:
> On Fri, Feb 11, 2011 at 02:05:21PM +0100, Lothar Wa?mann wrote:
> > Hi,
> > 
> > Richard Zhao writes:
> > > Hi Julien,
> > > 
> > > #define _MX51_PAD_USBH1_DATA2__UART2_TXD	IOMUX_PAD(0x690, 0x290, 1, 0x09ec, 5, 0)
> > > 
> > > Will you change the above line too?
> > > 
> > Seems like a general copy/paste error in the i.MX51 Ref Manual.
> > For all pads that can have an UART RXD or TXD function the manual
> > states that the UART*_IPP_UART_RXD_MUX_SELECT_INPUT register must be
> > configured, while this is obviously only sensible for the RXD
> > function.
> Yes, it's for RXD. RXD can also select input from TXD.
> 
The RXD function can be routed to the TXD pads via
RXD_MUX_SELECT_INPUT, but IMO setting the INPUT_MUX for an OUTPUT
function (TXD) is nonsense.

E.g.:
|Table A-1271. Register: IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT
|
|010: Selecting Pad: UART2_RXD for Mode: ALT0.
|011: Selecting Pad: UART2_TXD for Mode: ALT0.
so, the input path for the RXD function can be routed to either the
UART2_RXD or UART2_TXD pad.

|Table A-286. Register IOMUXC_SW_MUX_CTL_PAD_UART2_RXD Bits Description
|000: Select mux mode: ALT0 mux port: RXD_MUX of instance: uart2.
|NOTE: Pad UART2_RXD is involved in Daisy Chain.
|- Config Register IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT for mode
|ALT0.
This is OK. RXD_MUX is an input whose source is defined by the
RXD_MUX_SELECT_INPUT register.

But:
|Table A-288. Register IOMUXC_SW_MUX_CTL_PAD_UART2_TXD Bits Description
|000: Select mux mode: ALT0 mux port: TXD_MUX of instance: uart2.
|
|NOTE: Pad UART2_TXD is involved in Daisy Chain.
|- Config Register IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT for mode
|ALT0.
IMO does not make any sense. TXD_MUX is an OUTPUT function.
How can the INPUT MUX route an OUTPUT PAD?

Also, the table Table 4-3. i.MX51 Daisy Chain Settings only mentions
the uart_rxd_mux pins, but not uart_txd_mux.


Lothar Wa?mann
-- 
___________________________________________________________

Ka-Ro electronics GmbH | Pascalstra?e 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Gesch?ftsf?hrer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996

www.karo-electronics.de | info at karo-electronics.de
___________________________________________________________

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

* [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration
  2011-02-11 13:58       ` Lothar Waßmann
@ 2011-02-12  5:47         ` Richard Zhao
  0 siblings, 0 replies; 7+ messages in thread
From: Richard Zhao @ 2011-02-12  5:47 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Feb 11, 2011 at 02:58:02PM +0100, Lothar Wa?mann wrote:
> Hi,
> 
> Richard Zhao writes:
> > On Fri, Feb 11, 2011 at 02:05:21PM +0100, Lothar Wa?mann wrote:
> > > Hi,
> > > 
> > > Richard Zhao writes:
> > > > Hi Julien,
> > > > 
> > > > #define _MX51_PAD_USBH1_DATA2__UART2_TXD	IOMUX_PAD(0x690, 0x290, 1, 0x09ec, 5, 0)
> > > > 
> > > > Will you change the above line too?
> > > > 
> > > Seems like a general copy/paste error in the i.MX51 Ref Manual.
> > > For all pads that can have an UART RXD or TXD function the manual
> > > states that the UART*_IPP_UART_RXD_MUX_SELECT_INPUT register must be
> > > configured, while this is obviously only sensible for the RXD
> > > function.
> > Yes, it's for RXD. RXD can also select input from TXD.
> > 
> The RXD function can be routed to the TXD pads via
> RXD_MUX_SELECT_INPUT, but IMO setting the INPUT_MUX for an OUTPUT
> function (TXD) is nonsense.
> 
> E.g.:
> |Table A-1271. Register: IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT
> |
> |010: Selecting Pad: UART2_RXD for Mode: ALT0.
> |011: Selecting Pad: UART2_TXD for Mode: ALT0.
> so, the input path for the RXD function can be routed to either the
> UART2_RXD or UART2_TXD pad.
Right. I double checked with IC guys. 011 means UART2_TXD/RXD swapped. When
changing mode of DCE/DTE, TXD/RXD and RTS/CTS may need swapped. Using this
setting, you don't need to swap the physical wires.

Thanks
Richard
> 
> |Table A-286. Register IOMUXC_SW_MUX_CTL_PAD_UART2_RXD Bits Description
> |000: Select mux mode: ALT0 mux port: RXD_MUX of instance: uart2.
> |NOTE: Pad UART2_RXD is involved in Daisy Chain.
> |- Config Register IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT for mode
> |ALT0.
> This is OK. RXD_MUX is an input whose source is defined by the
> RXD_MUX_SELECT_INPUT register.
> 
> But:
> |Table A-288. Register IOMUXC_SW_MUX_CTL_PAD_UART2_TXD Bits Description
> |000: Select mux mode: ALT0 mux port: TXD_MUX of instance: uart2.
> |
> |NOTE: Pad UART2_TXD is involved in Daisy Chain.
> |- Config Register IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT for mode
> |ALT0.
> IMO does not make any sense. TXD_MUX is an OUTPUT function.
> How can the INPUT MUX route an OUTPUT PAD?
> 
> Also, the table Table 4-3. i.MX51 Daisy Chain Settings only mentions
> the uart_rxd_mux pins, but not uart_txd_mux.
> 
> 
> Lothar Wa?mann
> -- 
> ___________________________________________________________
> 
> Ka-Ro electronics GmbH | Pascalstra?e 22 | D - 52076 Aachen
> Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
> Gesch?ftsf?hrer: Matthias Kaussen
> Handelsregistereintrag: Amtsgericht Aachen, HRB 4996
> 
> www.karo-electronics.de | info at karo-electronics.de
> ___________________________________________________________
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2011-02-12  5:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-11 10:41 [PATCH v2] i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD declaration julien.boibessot at free.fr
2011-02-11 12:25 ` Richard Zhao
2011-02-11 13:05   ` Lothar Waßmann
2011-02-11 13:39     ` Richard Zhao
2011-02-11 13:58       ` Lothar Waßmann
2011-02-12  5:47         ` Richard Zhao
2011-02-11 13:43   ` Julien Boibessot

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