devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/3] Load cros_ec_ucsi from OF and ACPI definitions
@ 2025-10-09  1:03 Jameson Thies
  2025-10-09  1:03 ` [PATCH v3 1/3] dt-bindings: chrome: Add cros-ec-ucsi compatibility to typec binding Jameson Thies
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Jameson Thies @ 2025-10-09  1:03 UTC (permalink / raw)
  To: akuchynski, abhishekpandit, krzk+dt, robh, bleung,
	heikki.krogerus, ukaszb, tzungbi
  Cc: devicetree, chrome-platform, linux-usb, linux-kernel,
	Jameson Thies

The ChromeOS UCSI driver (cros_ec_ucsi) currently gets added as
subdevice of cros_ec_dev. But without it being defined by an ACPI
node or in the OF device tree, the typec connectors are not correctly
associated with other part of the device tree. This series updates the
cros_ec_ucsi driver to load based on device definitions in ACPI and OF.
It also changes the cros_ec_dev driver to block adding cros_ec_ucsi
as a subdevice if it is defined in the device tree.

For context, I initially sent out this series for review in March 2025
(https://lkml.kernel.org/20250312195951.1579682-1-jthies@google.com/).

Patch 1/3 has been updated to address comments from the initial review.
There were some open questions on patch 3/3 regarding adding MFD
children when there is no cros_ec_ucsi node and parents conditionally
checking if a child exists to create one.

The expected behavior of this series is to only add the cros_ec_ucsi
subdevice when there isn't a corresponding FW node because always adding
it would result in multiple cros_ec_ucsi devices and too many ports
being registered with the USB Type-C connector class on devices with
correctly defined FW nodes. It also does not look for a child node to
create a child. It is looking for a child of the parent EC device to
only add cros_ec_ucsi if it does not already exist as a sibling.

v3 changes:
- adds cros-ec-ucsi compatibility string to google,cros-ec-typec.yaml
  instead of defining a new binding.
- updates maintainter list in google,cros-ec-typec.yaml
- cleaned up assignments to udata->ec in cros_ec_ucsi.c
- now using acpi_dev_found() to check for ACPI node in cros_ec_dev.c

v2 changes:
- updated google,cros-ec.yaml to support typec ports defined by
  google,cros-ec-ucsi.yaml. Tested with make dt_binding_check
  and dtbs_check

Jameson Thies (3):
  dt-bindings: chrome: Add cros-ec-ucsi compatibility to typec binding
  usb: typec: cros_ec_ucsi: Load driver from OF and ACPI definitions
  mfd: cros_ec: Don't add cros_ec_ucsi if it is defined in OF or ACPI

 .../bindings/chrome/google,cros-ec-typec.yaml | 19 +++++++++++----
 drivers/mfd/cros_ec_dev.c                     | 23 +++++++++++++++----
 drivers/usb/typec/ucsi/cros_ec_ucsi.c         | 22 ++++++++++++++++--
 3 files changed, 53 insertions(+), 11 deletions(-)


base-commit: 48633acccf38d706d7b368400647bb9db9caf1ae
-- 
2.51.0.710.ga91ca5db03-goog


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2025-10-13 20:21 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-09  1:03 [PATCH v3 0/3] Load cros_ec_ucsi from OF and ACPI definitions Jameson Thies
2025-10-09  1:03 ` [PATCH v3 1/3] dt-bindings: chrome: Add cros-ec-ucsi compatibility to typec binding Jameson Thies
2025-10-09 19:09   ` Benson Leung
2025-10-10 17:54   ` Rob Herring (Arm)
2025-10-09  1:03 ` [PATCH v3 2/3] usb: typec: cros_ec_ucsi: Load driver from OF and ACPI definitions Jameson Thies
2025-10-09 19:12   ` Benson Leung
2025-10-10 17:37   ` Dmitry Baryshkov
2025-10-11  0:10     ` Jameson Thies
2025-10-11  1:22       ` Dmitry Baryshkov
2025-10-13 19:49         ` Jameson Thies
2025-10-13 20:21           ` Dmitry Baryshkov
2025-10-09  1:03 ` [PATCH v3 3/3] mfd: cros_ec: Don't add cros_ec_ucsi if it is defined in OF or ACPI Jameson Thies
2025-10-09 19:13   ` Benson Leung
2025-10-10 17:38   ` Dmitry Baryshkov
2025-10-10 23:42     ` Jameson Thies

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).