mbox series

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

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

Message

Sven Peter Sept. 23, 2021, 6:13 p.m. UTC
Hi,

v1: https://lore.kernel.org/linux-usb/20210918120934.28252-1-sven@svenpeter.dev/
Thanks again to everyone for your review of the initial version!

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

As suggested bei Heikki, this is now done by creating a separate interrupt handler
for the Apple chips and adding specific setup code to the probe function.
There should be no functional changes for existing TPS chips which is which
I've removed the RFT.

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                 | 229 +++++++++++++++---
 drivers/usb/typec/tipd/tps6598x.h             |  12 +
 drivers/usb/typec/tipd/trace.h                |  23 ++
 4 files changed, 231 insertions(+), 37 deletions(-)