Re: [PATCH] ARM: dts: imx6sx: Add missing uart mux function
From: Uwe Kleine-König
Date: Thu Feb 13 2020 - 04:51:25 EST
Hello Anson,
On Thu, Feb 13, 2020 at 09:18:10AM +0000, Anson Huang wrote:
> > On Thu, Feb 13, 2020 at 02:43:09PM +0800, Anson Huang wrote:
> > > From: Anson Huang <b20788@xxxxxxxxxxxxx>
> > >
> > > Update i.MX6SX pinfunc header to add uart mux function.
> >
> > I'm aware you add the macros in a consistent way to the already existing
> > stuff. Still I think there is something to improve here. We now have
> > definitions like:
> >
> > MX6SX_PAD_GPIO1_IO06__UART1_RTS_B
> > MX6SX_PAD_GPIO1_IO06__UART1_CTS_B
> >
> > MX6SX_PAD_GPIO1_IO07__UART1_CTS_B
> > MX6SX_PAD_GPIO1_IO07__UART1_RTS_B
> >
> > where (ignoring other pins that could be used) only the following
> > combinations are valid:
> >
> > MX6SX_PAD_GPIO1_IO04__UART1_TX
> > MX6SX_PAD_GPIO1_IO05__UART1_RX
> > MX6SX_PAD_GPIO1_IO06__UART1_RTS_B
> > MX6SX_PAD_GPIO1_IO07__UART1_CTS_B
> >
> > (in DCE mode) and
> >
> > MX6SX_PAD_GPIO1_IO04__UART1_RX
> > MX6SX_PAD_GPIO1_IO05__UART1_TX
> > MX6SX_PAD_GPIO1_IO06__UART1_CTS_B
> > MX6SX_PAD_GPIO1_IO07__UART1_RTS_B
> >
> > (in DTE mode).
>
> Is it possible the using below combination, if possible, then I think the prefix "DTE/DCE" are
> NOT impacting real functions, they are just different names for better identification:
>
> MX6SX_PAD_GPIO1_IO04__UART1_TX
> MX6SX_PAD_GPIO1_IO05__UART1_RX
> MX6SX_PAD_GPIO1_IO06__UART1_CTS_B
> MX6SX_PAD_GPIO1_IO07__UART1_RTS_B
This is wrong according to my experience. If you look at the diagram in
the i.MX6SX RM in the External Signals chapter (page 4111 in the
IMX6SXRM Rev. 2, 9/2017) you can only either use RX/TX and RTS/CTS for
their original purpose, or swap both pairs together.
> > For i.MX6SLL, i.MX6UL, imx6ULL and i.MX7 the naming convention is saner, a
> > typical definition there is:
> >
> > MX7D_PAD_LPSR_GPIO1_IO04__UART5_DTE_RTS
> >
> > where the name includes DTE and where is it (more) obvious that this cannot
> > be combined with
> >
> > MX7D_PAD_LPSR_GPIO1_IO07__UART5_DCE_TX
> >
> > .
> >
> > I suggest to adapt the latter naming convention also for the other i.MX
> > pinfunc headers, probably with introducing defines for not breaking existing
> > dts files.
>
> If to improve the name, just change the existing dts files which use them should be OK,
> as this header file ONLY used by DT and should be no compatible issues. So should I
> change the dts files together?
My approach would be one patch for each of:
- rename existing imx6sx symbols to contain DTE or DCE
(introducing defines that map the old name to the new)
- introduce the new defines you added in your patch under discussion
here (with the new naming scheme obviously)
- switch all in-tree consumers to the new names
(maybe offering to split per machine)
I would also drop the _B suffix in the first patch which serves no
useful purpose.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |