Re: [PATCH 0/3] ChromeOS EC USB-C Connector Class

Jon Flatley
2019-11-14T01:10:14Z

On Wed, Nov 13, 2019 at 10:25 AM Heikki Krogerus
<heikki.krogerus@linux.intel.com> wrote:
>
> Hi guys,
>
> On Wed, Nov 13, 2019 at 09:51:27AM -0800, Benson Leung wrote:
> > Hi Jon,
> >
> > Thanks for posting this.
> >
> > Adding Heikki, the typec connector class maintainer, and Enric, co-maintainer
> > of platform/chrome.
>
> Thanks Benson.
>
> > On Tue, Nov 12, 2019 at 07:10:41PM -0800, Jon Flatley wrote:
> > > This patch set adds a basic implementation of the USB-C connector class for
> > > devices using the ChromeOS EC. On ACPI devices an additional ACPI driver is
> > > necessary to receive USB-C PD host events from the PD EC device "GOOG0003".
> > > Incidentally, this ACPI driver adds notifications for events that
> > > cros-usbpd-charger has been missing, so fix that while we're at it.
> >
> > > Jon Flatley (3):
> > > platform: chrome: Add cros-ec-usbpd-notify driver
> > > power: supply: cros-ec-usbpd-charger: Fix host events
> > > platform: chrome: Added cros-ec-typec driver
> > >
> > > drivers/mfd/cros_ec_dev.c | 7 +-
> > > drivers/platform/chrome/Kconfig | 20 +
> > > drivers/platform/chrome/Makefile | 2 +
> > > drivers/platform/chrome/cros_ec_typec.c | 457 ++++++++++++++++++
> > > .../platform/chrome/cros_ec_usbpd_notify.c | 156 ++++++
> > > drivers/power/supply/Kconfig | 2 +-
> > > drivers/power/supply/cros_usbpd-charger.c | 45 +-
> > > .../platform_data/cros_ec_usbpd_notify.h | 40 ++
> > > 8 files changed, 696 insertions(+), 33 deletions(-)
> > > create mode 100644 drivers/platform/chrome/cros_ec_typec.c
> > > create mode 100644 drivers/platform/chrome/cros_ec_usbpd_notify.c
> > > create mode 100644 include/linux/platform_data/cros_ec_usbpd_notify.h
>
> I'll go over these tomorrow, but I have one question already. Can you
> guys influence what goes to the ACPI tables?
>
> Ideally every Type-C connector is always described in its own ACPI
> node (or DT node if DT is used). Otherwise getting the correct
> capabilities and especially connections to other devices (like the
> muxes) for every port may get difficult.

Hey Heikki, thank you for your quick response!

In general we do have control over the ACPI tables and over DT. The
difference for ChromeOS is that the PD implementation and policy
decisions are handled by the embedded controller. This includes
alternate mode transitions and control over the muxes. I don't believe
there is any information about port capabilities in ACPI or DT, that's
all handled by the EC. With current EC firmware we are mostly limited
to querying the EC for port capabilities and state. There may be some
exceptions to this, such as with Rockchip platforms, but even then the
EC is largely in control.

I think you raise a valid point, but such a change is probably out of
scope for this implementation.

Thanks,
-Jon

>
> Br,
>
> --
> heikki