From: Christoph Fritz <chf.fritz@googlemail.com>
To: Fabio Estevam <festevam@gmail.com>
Cc: "Martin Fuzzey" <mfuzzey@parkeon.com>,
"Baruch Siach" <baruch@tkos.co.il>,
"Sascha Hauer" <kernel@pengutronix.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Fabio Estevam" <fabio.estevam@nxp.com>,
"Shawn Guo" <shawnguo@kernel.org>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Subject: Re: serial: imx: regression triggered by newly introduced DSR irq handling
Date: Sat, 13 Aug 2016 22:35:32 +0200 [thread overview]
Message-ID: <1471120532.1923.4.camel@googlemail.com> (raw)
In-Reply-To: <CAOMZO5BQQemrKFjejUxQpW+d=BGn_b+d_sbr9Untu8iO3dOVvw@mail.gmail.com>
On Wed, 2016-08-10 at 17:54 -0300, Fabio Estevam wrote:
> On Fri, Aug 5, 2016 at 9:03 AM, Christoph Fritz
> <chf.fritz@googlemail.com> wrote:
>
> > SION is necessary for pinconfig MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1
> > if bit 17 in IOMUXC_GPR_GPR1 is set and bit 13 not.
> >
> > So that ref_enetpll1 provides a clock not only for the external PHY but
> > also for the internal controller.
> >
> > Using SION is a quirk here, because the silicon doesn't feed the clock
> > back to the internal controller automatically.
> >
> > On the other hand, NXP could argue: You need to add a wire on your PCB
> > between ENET1_REF_CLK1 and ENET1_TX_CLK -- but referring to the
> > datasheet ENET1_TX_CLK isn't used in RMII config...
> >
> > So if Fabio or Shawn agrees with my assumption above, I'll add something
> > like 27e16501052e5341934d3 "serial: imx: implement DSR irq
> > handling for DTE mode".
To correct myself, I'm referring to commit da4fa6fa8016dba54ae "ARM:
imx25-pinfunc: document SION being important for
MX25_PAD_SD1_CMD__SD1_CMD".
> >
> > Okay?
>
> Could you please post your suggestion as a patch or RFC so that we can
> understand what your proposal is?
Sure, here is my proposal:
---
arch/arm/boot/dts/imx6sx-pinfunc.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/arm/boot/dts/imx6sx-pinfunc.h b/arch/arm/boot/dts/imx6sx-pinfunc.h
index bb9c6b7..67a3dd7 100644
--- a/arch/arm/boot/dts/imx6sx-pinfunc.h
+++ b/arch/arm/boot/dts/imx6sx-pinfunc.h
@@ -308,6 +308,19 @@
#define MX6SX_PAD_ENET1_RX_CLK__VDEC_DEBUG_35 0x008C 0x03D4 0x0000 0x8 0x0
#define MX6SX_PAD_ENET1_RX_CLK__PCIE_CTRL_DEBUG_29 0x008C 0x03D4 0x0000 0x9 0x0
#define MX6SX_PAD_ENET1_TX_CLK__ENET1_TX_CLK 0x0090 0x03D8 0x0000 0x0 0x0
+/*
+ * SION bit is necessary for ENET1_REF_CLK1 (ENET2_REF_CLK2 untested) if it is
+ * used as clock output of IMX6SX_CLK_ENET_REF (ENET1_TX_CLK) to e.g. supply a
+ * PHY in RMII mode. This configuration is true if:
+ * - bit 1 in field IMX6SX_GPR1_FEC_CLOCK_PAD_DIR_MASK is set
+ * - bit 1 in field IMX6SX_GPR1_FEC_CLOCK_MUX_SEL_MASK unset
+ * It seems to be a silicon bug that in this configuration ENET1_TX reference
+ * clock isn't provided automatically. According to i.mx6sx reference manual
+ * (IOMUXC_GPR_GPR1 field descriptions: ENET1_CLK_SEL, Rev. 0 from 2/2015) it
+ * should be the case.
+ * This might have side effects for other hardware units that are connected to
+ * that pin and use the respective function as input (e.g. DSR irq handling).
+ */
#define MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x0090 0x03D8 0x0760 0x1 0x1
#define MX6SX_PAD_ENET1_TX_CLK__AUDMUX_AUD4_RXD 0x0090 0x03D8 0x0644 0x2 0x1
#define MX6SX_PAD_ENET1_TX_CLK__UART1_DTR_B 0x0090 0x03D8 0x0000 0x3 0x0
--
WARNING: multiple messages have this Message-ID (diff)
From: chf.fritz@googlemail.com (Christoph Fritz)
To: linux-arm-kernel@lists.infradead.org
Subject: serial: imx: regression triggered by newly introduced DSR irq handling
Date: Sat, 13 Aug 2016 22:35:32 +0200 [thread overview]
Message-ID: <1471120532.1923.4.camel@googlemail.com> (raw)
In-Reply-To: <CAOMZO5BQQemrKFjejUxQpW+d=BGn_b+d_sbr9Untu8iO3dOVvw@mail.gmail.com>
On Wed, 2016-08-10 at 17:54 -0300, Fabio Estevam wrote:
> On Fri, Aug 5, 2016 at 9:03 AM, Christoph Fritz
> <chf.fritz@googlemail.com> wrote:
>
> > SION is necessary for pinconfig MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1
> > if bit 17 in IOMUXC_GPR_GPR1 is set and bit 13 not.
> >
> > So that ref_enetpll1 provides a clock not only for the external PHY but
> > also for the internal controller.
> >
> > Using SION is a quirk here, because the silicon doesn't feed the clock
> > back to the internal controller automatically.
> >
> > On the other hand, NXP could argue: You need to add a wire on your PCB
> > between ENET1_REF_CLK1 and ENET1_TX_CLK -- but referring to the
> > datasheet ENET1_TX_CLK isn't used in RMII config...
> >
> > So if Fabio or Shawn agrees with my assumption above, I'll add something
> > like 27e16501052e5341934d3 "serial: imx: implement DSR irq
> > handling for DTE mode".
To correct myself, I'm referring to commit da4fa6fa8016dba54ae "ARM:
imx25-pinfunc: document SION being important for
MX25_PAD_SD1_CMD__SD1_CMD".
> >
> > Okay?
>
> Could you please post your suggestion as a patch or RFC so that we can
> understand what your proposal is?
Sure, here is my proposal:
---
arch/arm/boot/dts/imx6sx-pinfunc.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/arm/boot/dts/imx6sx-pinfunc.h b/arch/arm/boot/dts/imx6sx-pinfunc.h
index bb9c6b7..67a3dd7 100644
--- a/arch/arm/boot/dts/imx6sx-pinfunc.h
+++ b/arch/arm/boot/dts/imx6sx-pinfunc.h
@@ -308,6 +308,19 @@
#define MX6SX_PAD_ENET1_RX_CLK__VDEC_DEBUG_35 0x008C 0x03D4 0x0000 0x8 0x0
#define MX6SX_PAD_ENET1_RX_CLK__PCIE_CTRL_DEBUG_29 0x008C 0x03D4 0x0000 0x9 0x0
#define MX6SX_PAD_ENET1_TX_CLK__ENET1_TX_CLK 0x0090 0x03D8 0x0000 0x0 0x0
+/*
+ * SION bit is necessary for ENET1_REF_CLK1 (ENET2_REF_CLK2 untested) if it is
+ * used as clock output of IMX6SX_CLK_ENET_REF (ENET1_TX_CLK) to e.g. supply a
+ * PHY in RMII mode. This configuration is true if:
+ * - bit 1 in field IMX6SX_GPR1_FEC_CLOCK_PAD_DIR_MASK is set
+ * - bit 1 in field IMX6SX_GPR1_FEC_CLOCK_MUX_SEL_MASK unset
+ * It seems to be a silicon bug that in this configuration ENET1_TX reference
+ * clock isn't provided automatically. According to i.mx6sx reference manual
+ * (IOMUXC_GPR_GPR1 field descriptions: ENET1_CLK_SEL, Rev. 0 from 2/2015) it
+ * should be the case.
+ * This might have side effects for other hardware units that are connected to
+ * that pin and use the respective function as input (e.g. DSR irq handling).
+ */
#define MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x0090 0x03D8 0x0760 0x1 0x1
#define MX6SX_PAD_ENET1_TX_CLK__AUDMUX_AUD4_RXD 0x0090 0x03D8 0x0644 0x2 0x1
#define MX6SX_PAD_ENET1_TX_CLK__UART1_DTR_B 0x0090 0x03D8 0x0000 0x3 0x0
--
next prev parent reply other threads:[~2016-08-13 20:35 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-24 13:24 [PATCH v2 0/6] serial: imx: handshaking fixes and improvments Uwe Kleine-König
2016-03-24 13:24 ` Uwe Kleine-König
2016-03-24 13:24 ` [PATCH v2 1/6] serial: imx: fix polarity of RI Uwe Kleine-König
2016-03-24 13:24 ` Uwe Kleine-König
2016-03-24 13:24 ` [PATCH v2 2/6] serial: imx: let irq handler return IRQ_NONE if no event was handled Uwe Kleine-König
2016-03-24 13:24 ` Uwe Kleine-König
2016-03-24 13:24 ` [PATCH v2 3/6] serial: imx: make sure unhandled irqs are disabled Uwe Kleine-König
2016-03-24 13:24 ` Uwe Kleine-König
2016-03-24 13:24 ` [PATCH v2 4/6] serial: imx: only count 0->1 transitions for RNG Uwe Kleine-König
2016-03-24 13:24 ` Uwe Kleine-König
2016-03-24 13:24 ` [PATCH v2 5/6] serial: imx: reorder functions to simplify next patch Uwe Kleine-König
2016-03-24 13:24 ` Uwe Kleine-König
2016-03-24 13:24 ` [PATCH v2 6/6] serial: imx: implement DSR irq handling for DTE mode Uwe Kleine-König
2016-03-24 13:24 ` Uwe Kleine-König
[not found] ` <1470350663.26773.41.camel@googlemail.com>
2016-08-05 6:58 ` serial: imx: regression triggered by newly introduced DSR irq handling Uwe Kleine-König
2016-08-05 6:58 ` Uwe Kleine-König
2016-08-05 12:03 ` Christoph Fritz
2016-08-05 12:03 ` Christoph Fritz
2016-08-10 20:54 ` Fabio Estevam
2016-08-10 20:54 ` Fabio Estevam
2016-08-13 20:35 ` Christoph Fritz [this message]
2016-08-13 20:35 ` Christoph Fritz
2016-08-15 5:22 ` Uwe Kleine-König
2016-08-15 5:22 ` Uwe Kleine-König
2016-08-17 9:25 ` [PATCH] ARM: dts: imx6sx: document SION necessity of ENET1_REF_CLK1 Christoph Fritz
2016-08-17 9:25 ` Christoph Fritz
2016-08-17 14:26 ` Fabio Estevam
2016-08-17 14:26 ` Fabio Estevam
2016-08-17 18:03 ` Christoph Fritz
2016-08-17 18:03 ` Christoph Fritz
2016-08-22 15:08 ` Christoph Fritz
2016-08-22 15:08 ` Christoph Fritz
2016-08-29 1:18 ` Shawn Guo
2016-08-29 1:18 ` Shawn Guo
2016-11-21 11:00 ` serial: imx: regression triggered by newly introduced DSR irq handling Christoph Fritz
2016-11-21 11:00 ` Christoph Fritz
2016-11-21 11:07 ` Uwe Kleine-König
2016-11-21 11:07 ` Uwe Kleine-König
2016-04-11 16:01 ` [PATCH v2 0/6] serial: imx: handshaking fixes and improvments Petr Štetiar
2016-04-11 16:01 ` Petr Štetiar
2016-04-12 7:46 ` Uwe Kleine-König
2016-04-12 7:46 ` Uwe Kleine-König
2016-04-12 9:48 ` Petr Štetiar
2016-04-12 9:48 ` Petr Štetiar
2016-04-12 10:58 ` Uwe Kleine-König
2016-04-12 10:58 ` Uwe Kleine-König
2016-04-12 12:17 ` Petr Štetiar
2016-04-12 12:17 ` Petr Štetiar
2016-04-12 17:30 ` Uwe Kleine-König
2016-04-12 17:30 ` Uwe Kleine-König
2016-04-13 9:13 ` Petr Štetiar
2016-04-13 9:13 ` Petr Štetiar
2016-04-13 11:16 ` Uwe Kleine-König
2016-04-13 11:16 ` Uwe Kleine-König
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1471120532.1923.4.camel@googlemail.com \
--to=chf.fritz@googlemail.com \
--cc=baruch@tkos.co.il \
--cc=fabio.estevam@nxp.com \
--cc=festevam@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=mfuzzey@parkeon.com \
--cc=shawnguo@kernel.org \
--cc=u.kleine-koenig@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.