From: Thomas Schaefer <Thomas.Schaefer@kontron.com>
To: Peter Chen <peter.chen@nxp.com>
Cc: "marex@denx.de" <marex@denx.de>,
"shawnguo@kernel.org" <shawnguo@kernel.org>,
"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
dl-linux-imx <linux-imx@nxp.com>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
"festevam@gmail.com" <festevam@gmail.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: AW: [PATCH] ARM: dts: imx7: fix USB controller 'size' parameter
Date: Fri, 30 Aug 2019 11:37:41 +0000 [thread overview]
Message-ID: <ac85e371bc3b4a62b49f2c83745a6aa7@kontron.com> (raw)
In-Reply-To: <20190830093345.GA25865@b29397-desktop>
-----Ursprüngliche Nachricht-----
Von: Peter Chen <peter.chen@nxp.com>
Gesendet: Freitag, 30. August 2019 11:34
> On 19-08-30 07:11:42, Thomas Schaefer wrote:
> > -----Ursprüngliche Nachricht-----
> > Von: Peter Chen <peter.chen@nxp.com>
> > Gesendet: Freitag, 30. August 2019 04:26
> > > On 19-08-29 17:49:13, Thomas Schaefer wrote:
> > > > Currently the size parameter in the reg property of usbotg and
> > > > usbh nodes in imx7s and imx7d dts includes is set to 0x200 which
> > > > is wrong for the i.MX7 CPU. According to reference manual, spacing
> > > > of USB controller registers is 0x10000 instead.
> > > >
> > > > This patch will fix this and set the 'size' to 0x10000.
> > > >
> > > > Signed-off-by: Thomas Schaefer <thomas.schaefer@kontron.com>
> > > > ---
> > > > arch/arm/boot/dts/imx7d.dtsi | 2 +- arch/arm/boot/dts/imx7s.dtsi
> > > > | 4 ++--
> > > > 2 files changed, 3 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/arch/arm/boot/dts/imx7d.dtsi
> > > > b/arch/arm/boot/dts/imx7d.dtsi index 42528d2812a2..f1b098d28b6e
> > > > 100644
> > > > --- a/arch/arm/boot/dts/imx7d.dtsi
> > > > +++ b/arch/arm/boot/dts/imx7d.dtsi
> > > > @@ -117,7 +117,7 @@
> > > > &aips3 {
> > > > usbotg2: usb@30b20000 {
> > > > compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
> > > > - reg = <0x30b20000 0x200>;
> > > > + reg = <0x30b20000 0x10000>;
> > > > interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
> > > > clocks = <&clks IMX7D_USB_CTRL_CLK>;
> > > > fsl,usbphy = <&usbphynop2>;
> > > > diff --git a/arch/arm/boot/dts/imx7s.dtsi
> > > > b/arch/arm/boot/dts/imx7s.dtsi index c1a4fff5ceda..9e25fccf33f0
> > > > 100644
> > > > --- a/arch/arm/boot/dts/imx7s.dtsi
> > > > +++ b/arch/arm/boot/dts/imx7s.dtsi
> > > > @@ -1088,7 +1088,7 @@
> > > >
> > > > usbotg1: usb@30b10000 {
> > > > compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
> > > > - reg = <0x30b10000 0x200>;
> > > > + reg = <0x30b10000 0x10000>;
> > > > interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
> > > > clocks = <&clks IMX7D_USB_CTRL_CLK>;
> > > > fsl,usbphy = <&usbphynop1>;
> > > > @@ -1099,7 +1099,7 @@
> > > >
> > > > usbh: usb@30b30000 {
> > > > compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
> > > > - reg = <0x30b30000 0x200>;
> > > > + reg = <0x30b30000 0x10000>;
> > > > interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
> > > > clocks = <&clks IMX7D_USB_CTRL_CLK>;
> > > > fsl,usbphy = <&usbphynop3>;
> > >
> > > Hi Thomos,
> > >
> > > The core controller range is 0x200, from offset 0x200, it is non-core register, which is used by usbmisc. Fabio said you met problem at u-boot for this size, what's the problem about it?
> > >
> > > Thanks,
> > > Peter
> >
> > Hi Peter,
> >
> > When porting one of our i.MX7 based modules to u-boot v2019.07, I found that scanning USB with 'usb start' crashes when trying to scan the _second_ controller enabled in the device tree (the first controller was detected properly). After some investigation I found that the problem was introduced with Marek Vasuts 'usb: ehci-mx6: Fix bus enumeration for DM case' (u-boot commit 501547cec1f7f0438cae388a104ff60f18576c01). This patch uses the 'reg' property in the usbotg and usbh nodes to calculate the device index number for the driver.
> >
> > Actually, controller range on i.MX6 is 0x200, thus the calculation is correct for i.MX6, but on i.MX7 the base addresses of the controller registers differ by 0x10000 and calculation will fail if more than one USB controller is enabled in the device tree. This is why I suggested to fix this problem in the imx7s and imx7d device tree include files.
> >
>
> At dts, each USB controller has its reg property to describe its base address, we do not need additional calculation.
>
> For controller index, it is only needed for imx6 since we share non-core register from 0x800 among controllers. From imx7, we have dedicate non-core region for each controller, it can be described at dts well.
>
> At dts, we use usbmisc to describe the non core part, and the related Linux code is at drivers/usb/chipidea/usbmisc_imx.c
>
> --
>
> Thanks,
> Peter Chen
>
OK. Understood. This is not the right place to fix this problem in u-boot.
Thomas
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
prev parent reply other threads:[~2019-08-30 11:37 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-29 15:49 [PATCH] ARM: dts: imx7: fix USB controller 'size' parameter Thomas Schaefer
2019-08-29 15:58 ` Fabio Estevam
2019-08-29 16:01 ` Marco Felsch
2019-08-30 2:25 ` Peter Chen
2019-08-30 7:11 ` AW: " Thomas Schaefer
2019-08-30 9:33 ` Peter Chen
2019-08-30 11:37 ` Thomas Schaefer [this message]
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=ac85e371bc3b4a62b49f2c83745a6aa7@kontron.com \
--to=thomas.schaefer@kontron.com \
--cc=festevam@gmail.com \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=marex@denx.de \
--cc=peter.chen@nxp.com \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox