soc: qcom: add UCSI function to PMIC GLINK The PMIC GLINK interface offers an UCSI endpoint for newer SoCs, the UCSI exchange is necessary to configure the USB-C port USB role and altmode on the SM8450 HDK and SM8550 MTP boards. Since the DT description is the same, support for SM8350 HDK is also added. This patchset focuses on USB and disables altmode support on those 2 SoCs until DP altmode over the combo phy is supported. Depends on PMIC Glink patchset at [1]. [1] https://lore.kernel.org/all/20230130042003.577063-1-quic_bjorande@quicinc.com/ To: Heikki Krogerus <heikki.krogerus@linux.intel.com> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org> To: Andy Gross <agross@kernel.org> To: Bjorn Andersson <andersson@kernel.org> To: Konrad Dybcio <konrad.dybcio@linaro.org> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Catalin Marinas <catalin.marinas@arm.com> To: Will Deacon <will@kernel.org> Cc: linux-kernel@vger.kernel.org Cc: linux-usb@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> --- Changes in v4: - Handle remove for UCSI driver - Fixup client mask match data handling - Added USB ports bindings review tag - Link to v3: https://lore.kernel.org/r/20230130-topic-sm8450-upstream-pmic-glink-v3-0-4c860d265d28@linaro.org Changes in v3: - Fixed patch 1 by moving mask to pmic_glink_of_match - Fixed patch 8 by adding back hsphy - Add bindings change to dwc3 to support separate HS & SS OF graph links - Link to v2: https://lore.kernel.org/r/20230130-topic-sm8450-upstream-pmic-glink-v2-0-71fea256474f@linaro.org Changes in v2: - Moved the dwc3 port subnodes to dtsi - Added SM8350 HDK support - Added help about ucsi module name - Added bindings acks - Fixed sm8550 pmic glink compatible - Added more description in config update patch - Link to v1: https://lore.kernel.org/r/20230130-topic-sm8450-upstream-pmic-glink-v1-0-0b0acfad301e@linaro.org --- Neil Armstrong (12): usb: typec: ucsi: add PMIC Glink UCSI driver dt-bindings: soc: qcom: qcom,pmic-glink: document SM8450 compatible dt-bindings: soc: qcom: qcom,pmic-glink: document SM8550 compatible soc: qcom: pmic_glink: register ucsi aux device dt-bindings: usb: snps,dwc3: document HS & SS OF graph ports arm64: dts: qcom: sm8350: add port subnodes in dwc3 node arm64: dts: qcom: sm8450: add port subnodes in dwc3 node arm64: dts: qcom: sm8550: add port subnodes in dwc3 node arm64: dts: qcom: sm8350-hdk: add pmic glink node arm64: dts: qcom: sm8450-hdk: add pmic glink node arm64: dts: qcom: sm8550-mtp: add pmic glink node arm64: defconfig: add PMIC GLINK modules .../bindings/soc/qcom/qcom,pmic-glink.yaml | 2 + .../devicetree/bindings/usb/snps,dwc3.yaml | 16 + arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 67 +++- arch/arm64/boot/dts/qcom/sm8350.dtsi | 19 ++ arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 45 ++- arch/arm64/boot/dts/qcom/sm8450.dtsi | 19 ++ arch/arm64/boot/dts/qcom/sm8550-mtp.dts | 45 ++- arch/arm64/boot/dts/qcom/sm8550.dtsi | 19 ++ arch/arm64/configs/defconfig | 4 + drivers/soc/qcom/pmic_glink.c | 65 +++- drivers/usb/typec/ucsi/Kconfig | 10 + drivers/usb/typec/ucsi/Makefile | 1 + drivers/usb/typec/ucsi/ucsi_glink.c | 345 +++++++++++++++++++++ 13 files changed, 642 insertions(+), 15 deletions(-) --- base-commit: 6f72958a49f68553f2b6ff713e8c8e51a34c1e1e change-id: 20230130-topic-sm8450-upstream-pmic-glink-3b3a0b7bcd33 Best regards,