From: Heikki Krogerus <heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Heiko Stuebner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
Cc: linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
Subject: Re: usb typec not doing handling in-kernel
Date: Mon, 13 Aug 2018 16:36:37 +0300 [thread overview]
Message-ID: <20180813133637.GA25757@kuha.fi.intel.com> (raw)
In-Reply-To: <3762490.crBoikqiXD@phil>
Hi Heiko,
On Mon, Aug 13, 2018 at 12:36:55PM +0200, Heiko Stuebner wrote:
> Hi,
>
> I'm currently trying to wrap my head around the new typec subsystem and
> also how to do it correctly on Rockchip rk3399 devices.
>
> The issue (and Guenter might know quite a bit about that) is that on
> ChromeOS devices the embedded controller hides the whole tcpm/vdm
> logic from the operating system and just provides a custom interface to
> query things like cable state, display-port hotplug status and so on.
>
> So right now the rk3399-typec-phy uses that extcon-based interface to
> get all status changes but that of course leaves out all systems directly
> talking to a fusb302. I did a small drawing to showcase that:
>
> ------------- ------------------
> | typec-phy |----| extcon-cros-ec |\
> ------------- ------------------ \
> | \ \
> ------------- \ ------------------ \ -----------
> | cdn-dp | \| ????? |-----| fusb302 |
> ------------- ------------------ -----------
>
> So to bring everything on the same page, I guess the cros-ec extcon
> (drivers/extcon/extcon-usbc-cros-ec.c) should somehow use the typec
> functions instead of implementing an extcon?
I don't think the two necessary exclude each other. You can continue
to register the extcon device and use it for communication with the
phy driver, and also register your Type-C port(s), partners, and
optionally the port and partner alternate modes. I guess Guenter has
patches for that already?
It looks to me like that phy driver could just register a Type-C
switch for the orientation, and mux for the mode. Those seem to be the
only details the driver needs from extcon-usbc-cros-ec.
> But from reading into the typec code, it somehow looks like the
> typec framework expects to be in control of things like altmode
> negotiations, or am I misreading something?
The alternate mode drivers will assume they are in control of the
negotiation with the partner, but note that you will not always need
them. The rest of the code in the framework doesn't expect to be in
control of the communication.
If the EC (or some other microcontroller) firmware is taking care of
the actual entering and configuring of the alternate modes, the port
driver (so extcon-usbc-cros-ec in your case) will need to "emulate"
the VDM communication if the alt mode drivers need to be used, and
that means they need to do so with every supported alternate mode
separately.
Of course if the details that for example the DisplayPort alt mode
driver supplies to the user space is not relevant on your system, and
there is no requirement to allow the user to be able to reconfigure
the DisplayPort alt mode (note: you will also be unable to exit the
mode from sysfs in this case), you can still register the partner alt
mode device and simply allow the binding to the driver fail, or don't
register the partner alt modes with the USB Type-C framework at all.
I've prepared patches for the ucsi driver that add displayport alt
mode support to it. UCSI is just a standardised firmware interface for
USB Type-C conncetors, so the situation is exactly the same as with
extcon-usbc-cros-ec. I was planning to send the patches out for review
after next -rc1, but I guess I could send a RFC already. With UCSI we
do have a requirement to allow the user to reconfigure the DisplayPort
alternate mode if needed.
Br,
--
heikki
next prev parent reply other threads:[~2018-08-13 13:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-13 10:36 usb typec not doing handling in-kernel Heiko Stuebner
2018-08-13 12:29 ` Guenter Roeck
[not found] ` <6e3e7449-1957-e98d-c186-97d960e06c09-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2018-09-20 8:21 ` Heiko Stuebner
2018-09-20 20:49 ` Guenter Roeck
2018-08-13 13:36 ` Heikki Krogerus [this message]
[not found] ` <20180813133637.GA25757-FZxXFokcWpatqXYlAKuG4QC/G2K4zDHf@public.gmane.org>
2018-08-14 13:58 ` Heiko Stuebner
2018-08-15 14:46 ` Heikki Krogerus
[not found] ` <20180815144636.GB25757-FZxXFokcWpatqXYlAKuG4QC/G2K4zDHf@public.gmane.org>
2018-10-23 13:49 ` Heiko Stuebner
2018-10-24 6:49 ` Heikki Krogerus
2018-08-13 20:20 ` Alexandru M Stan
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=20180813133637.GA25757@kuha.fi.intel.com \
--to=heikki.krogerus-vuqaysv1563yd54fqh9/ca@public.gmane.org \
--cc=heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org \
--cc=linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org \
--cc=linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.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