[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200213095119.f6obrdqb6ql76qqy@pengutronix.de>
Date: Thu, 13 Feb 2020 10:51:19 +0100
From: Uwe Kleine-König
<u.kleine-koenig@...gutronix.de>
To: Anson Huang <anson.huang@....com>
Cc: "mark.rutland@....com" <mark.rutland@....com>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"shawnguo@...nel.org" <shawnguo@...nel.org>,
"s.hauer@...gutronix.de" <s.hauer@...gutronix.de>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"robh+dt@...nel.org" <robh+dt@...nel.org>,
dl-linux-imx <linux-imx@....com>,
"kernel@...gutronix.de" <kernel@...gutronix.de>,
"festevam@...il.com" <festevam@...il.com>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH] ARM: dts: imx6sx: Add missing uart mux function
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@...escale.com>
> > >
> > > 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/ |
Powered by blists - more mailing lists