Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
To: "AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Nícolas F. R. A. Prado" <nfraprado@collabora.com>
Cc: Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	kernel@collabora.com,  devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	 linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org
Subject: Re: [PATCH] arm64: dts: mediatek: mt8390-genio-common: Force ssusb2 dual role mode to host
Date: Thu, 24 Apr 2025 10:58:39 +0200	[thread overview]
Message-ID: <fd4f9f760c4860216aeb58a91a75c24dda64919c.camel@collabora.com> (raw)
In-Reply-To: <eb350c96-379a-46db-8a54-e1b9c71be431@collabora.com>

Hi Angelo,

On Thu, 2025-04-24 at 09:24 +0200, AngeloGioacchino Del Regno wrote:
> Il 23/04/25 22:48, Nícolas F. R. A. Prado ha scritto:
> > On Mon, Mar 31, 2025 at 11:25:52AM +0200, Louis-Alexis Eyraud
> > wrote:
> > > On the Mediatek Genio 510-EVK and 700-EVK boards, ssusb2
> > > controller is
> > > one but has two ports: one is routed to the M.2 slot, the other
> > > is on
> > > the RPi header who does support full OTG.
> > > Since Mediatek Genio 700-EVK USB support was added, dual role
> > > mode
> > > property is set to otg for ssusb2. This config prevents the M.2
> > > Wifi/Bluetooth module, present on those boards and exposing
> > > Bluetooth
> > > as an USB device to be properly detected at startup, so configure
> > > for
> > > the ssusb2 dr_mode property as host instead.
> > > 
> > > Fixes: 1afaeca17238 ("arm64: dts: mediatek: mt8390-genio-700: Add
> > > USB, TypeC Controller, MUX")
> > > Signed-off-by: Louis-Alexis Eyraud
> > > <louisalexis.eyraud@collabora.com>
> > > ---
> > > I've tested this patch on Mediatek Genio 510-EVK board with a
> > > kernel
> > > based on linux-next (tag: next-20250331).
> > > ---
> > >   arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi | 8
> > > +++++++-
> > >   1 file changed, 7 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/arch/arm64/boot/dts/mediatek/mt8390-genio-
> > > common.dtsi b/arch/arm64/boot/dts/mediatek/mt8390-genio-
> > > common.dtsi
> > > index
> > > 60139e6dffd8e0e326690d922f3360d829ed026b..3a9d429f0f14b501ae41551
> > > dfe7272f242345138 100644
> > > --- a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
> > > +++ b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
> > > @@ -1199,7 +1199,13 @@ xhci_ss_ep: endpoint {
> > >   };
> > >   
> > >   &ssusb2 {
> > > -	dr_mode = "otg";
> > > +	/*
> > > +	 * the ssusb2 controller is one but we got two ports :
> > > one is routed
> > > +	 * to the M.2 slot, the other is on the RPi header who
> > > does support
> > > +	 * full OTG but we keep it disabled otherwise the BT on
> > > the M.2 slot
> > > +	 * USB line goes obviously dead if switching to gadget
> > > mode.
> > > +	 */
> > > +	dr_mode = "host";
> > 
> > Hi,
> > 
> > while I agree with this change, now that this controller is fixed
> > to host mode,
> > the connector child node here which is supposed to probe with
> > driver
> > usb-conn-gpio, which would monitor the ID and VBUS lines and change
> > the USB role
> > as needed, will fail to probe with:
> > 
> >    platform 112a1000.usb:connector: deferred probe pending: usb-
> > conn-gpio: failed to get role switch
> > 
> > as indeed there no longer is a role switch registered.
> > 
> > For that reason, I believe as part of this commit you should also
> > disable the
> > connector. Since role switching is no longer supported by this
> > controller,
> > there's no sense in even trying to probe this driver.
> > 
> > Thanks,
> > Nícolas
> 
> Can we instead go for role-switch-default-mode = "host", with a big
> comment
> in the devicetree saying that the controller is shared between BT and
> the other
> port? :-)
> 
> Cheers,
> Angelo
Using role-switch-default-mode property (set to host) does work as an
alternative fix in order to keep the dr_mode set to otg and also not
having a error about the connector too.
But I also needed to change the associated GPIO polarity, otherwise the
role mode would remain device and the BT module would not still be
detected.
I'll make those changes in the v2 patch. 

Regards,
Louis-Alexis


      reply	other threads:[~2025-04-24  9:44 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-31  9:25 [PATCH] arm64: dts: mediatek: mt8390-genio-common: Force ssusb2 dual role mode to host Louis-Alexis Eyraud
2025-03-31 13:27 ` AngeloGioacchino Del Regno
2025-04-23 20:48 ` Nícolas F. R. A. Prado
2025-04-24  7:24   ` AngeloGioacchino Del Regno
2025-04-24  8:58     ` Louis-Alexis Eyraud [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=fd4f9f760c4860216aeb58a91a75c24dda64919c.camel@collabora.com \
    --to=louisalexis.eyraud@collabora.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kernel@collabora.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=nfraprado@collabora.com \
    --cc=robh@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