Qualcomm WCD9390/WCD9395 is a standalone Hi-Fi audio codec IC with a functionally separate USB SubSystem for Altmode/Analog Audio Switch accessible over an I2C interface. It provides switching USB-C USB2.0 lines between USB and Audio Headphones speaker lines, and the USB-C SBU lines between DisplayPort AUX and Audio Headphones Microphone/Ground. The Audio Headphone and Microphone data path between the Codec and the USB-C Mux subsystems are external to the IC, thus requiring DT port-endpoint graph description to handle USB-C altmode & orientation switching for Audio Accessory Mode. Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx> --- Changes in v2: - Bindings: - Limited text width to 80 chars max - Added maxItems: 1 to reset-gpios - Driver - Added missing bitfield.h and gpio/consumer.h includes - Fixed double typec_switch_unregister() - Added missing typec_switch_put() in remove() - Removed useless wcd9395-usbss compatible & device_id since wcd9395 has wcd9390 as fallback - Link to v1: https://lore.kernel.org/r/20231208-topic-sm8650-upstream-wcd939x-usbss-v1-0-91d1ba680fe0@xxxxxxxxxx --- Neil Armstrong (2): dt-bindings: usb: Document WCD939x USB SubSystem Altmode/Analog Audio Switch usb: typec: mux: add Qualcomm WCD939X USB SubSystem Altmode Mux driver .../bindings/usb/qcom,wcd939x-usbss.yaml | 102 +++ drivers/usb/typec/mux/Kconfig | 10 + drivers/usb/typec/mux/Makefile | 1 + drivers/usb/typec/mux/wcd939x-usbss.c | 779 +++++++++++++++++++++ 4 files changed, 892 insertions(+) --- base-commit: bc63de6e6ba0b16652c5fb4b9c9916b9e7ca1f23 change-id: 20231208-topic-sm8650-upstream-wcd939x-usbss-030c011a1709 Best regards, -- Neil Armstrong <neil.armstrong@xxxxxxxxxx>