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

From: Sven Peter
Date: Tue Sep 28 2021 - 11:55:21 EST


v1: https://lore.kernel.org/linux-usb/20210918120934.28252-1-sven@xxxxxxxxxxxxx/
v2: https://lore.kernel.org/linux-usb/20210923181321.3044-1-sven@xxxxxxxxxxxxx/
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.



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(-)