[PATCH 0/4] arm64: qcom: sm8550: retrieve USB-C port orientation from gpio

From: Neil Armstrong
Date: Fri Aug 04 2023 - 09:50:25 EST


This patchset is derived from [1], with only the GPIO orientation.

On the SM8550 platform, the PMIC Glink firmware doesn't emit
ALTMODE events for all USB-C port changes like it was done
for older platforms (like SM8450).
This means we only have a valid orientation when an Altmode
compliant device is inserted, but not for all the other devices,
including USB cables, dongles and non-altmode Hubs.

But the actual orientation is shared by the PM8550B by
a signal called CC_OUT which can be read on a gpio of the SM8550
SoC.

Let's add support for this feature by using the UCSI PMIC
Glink driver events to read and dispatch the orientation
to the USB-C connector devices on the DT graph.

While everybody would prefer having a proper PMIC Glink event
for an orientation change, this is not implemented and not
planned for future platforms either.

[1] https://lore.kernel.org/all/20230601-topic-sm8550-upstream-type-c-v3-0-22c9973012b6@xxxxxxxxxx/

Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
---
Neil Armstrong (4):
dt-bindings: soc: qcom: qcom,pmic-glink: add a gpio used to determine the Type-C port plug orientation
usb: ucsi: glink: use the connector orientation GPIO to provide switch events
arm64: dts: qcom: sm8550-mtp: add orientation gpio
arm64: dts: qcom: sm8550-qrd: add orientation gpio

.../bindings/soc/qcom/qcom,pmic-glink.yaml | 18 ++++++++
arch/arm64/boot/dts/qcom/sm8550-mtp.dts | 1 +
arch/arm64/boot/dts/qcom/sm8550-qrd.dts | 1 +
drivers/usb/typec/ucsi/ucsi_glink.c | 54 +++++++++++++++++++++-
4 files changed, 73 insertions(+), 1 deletion(-)
---
base-commit: fb4327106e5250ee360d0d8b056c1eef7eeb9a98
change-id: 20230804-topic-sm8550-upstream-type-c-orientation-0bbbb360d3f7

Best regards,
--
Neil Armstrong <neil.armstrong@xxxxxxxxxx>