mbox series

[v3,0/6] usb: typec: tipd: Add Apple M1 support

Message ID 20210928155502.71372-1-sven@svenpeter.dev (mailing list archive)
Headers show
Series usb: typec: tipd: Add Apple M1 support | expand

Message

Sven Peter Sept. 28, 2021, 3:54 p.m. UTC
Hi,

v1: https://lore.kernel.org/linux-usb/20210918120934.28252-1-sven@svenpeter.dev/
v2: https://lore.kernel.org/linux-usb/20210923181321.3044-1-sven@svenpeter.dev/ 
Thanks again to Heikki for your review of v2!

This series adds initial support for the Apple CD3217/3218 chip which is also
known as Apple ACE1/2. These chips are used on Apple M1 machines.
They are based on the TI TPS6598x chips with a few differences:

	- The interrupt numbers have been changed
	- The secondary i2c bus and its interrupt controller are connected to the
	  system management controller and must not be disturbed
	- The chip comes up in a low power state and must be booted using the
	  "SPSS" (System Power State Switch maybe) command which is not
	  documented in the TI manual
	- The interrupt mask must be set up explicitly

The only difference to v2 is that now of_device_is_compatible instead of
of_device_get_match_data is used to switch to the CD321x logic as suggested
by Heikki.

Best,

Sven

Sven Peter (6):
  dt-bindings: usb: tps6598x: Add Apple CD321x compatible
  usb: typec: tipd: Split interrupt handler
  usb: typec: tipd: Add short-circuit for no irqs
  usb: typec: tipd: Add support for Apple CD321X
  usb: typec: tipd: Switch CD321X power state to S0
  usb: typec: tipd: Remove FIXME about testing with I2C_FUNC_I2C

 .../devicetree/bindings/usb/ti,tps6598x.yaml  |   4 +
 drivers/usb/typec/tipd/core.c                 | 206 +++++++++++++++---
 drivers/usb/typec/tipd/tps6598x.h             |  12 +
 drivers/usb/typec/tipd/trace.h                |  23 ++
 4 files changed, 209 insertions(+), 36 deletions(-)