From f4493be839d4eedbcedf19fcca41164d15a139c8 Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca@lucaweiss.eu>
Date: Fri, 5 Jul 2024 16:41:49 +0200
Subject: [PATCH] linux-postmarketos-qcom-sm6350: enable USB Type-C related
 options (MR 5321)

Since the v6.9 upgrade the kernel supports Type-C functionality for
Fairphone 4, but I forgot to enable the relevant kconfig options then.

Enable them now along with a bunch of options related to USB that come
in useful. Also prepare some options that will be used in the future
with DisplayPort over USB-C (e.g. SBU mux).

[ci:skip-build]: already built successfully in CI
---
 .../linux-postmarketos-qcom-sm6350/APKBUILD   |  4 +-
 .../config-postmarketos-qcom-sm6350.aarch64   | 50 ++++++++++++++++---
 2 files changed, 46 insertions(+), 8 deletions(-)

diff --git a/device/community/linux-postmarketos-qcom-sm6350/APKBUILD b/device/community/linux-postmarketos-qcom-sm6350/APKBUILD
index 2883ee1a459..dfcc98b27a1 100644
--- a/device/community/linux-postmarketos-qcom-sm6350/APKBUILD
+++ b/device/community/linux-postmarketos-qcom-sm6350/APKBUILD
@@ -3,7 +3,7 @@
 _flavor="postmarketos-qcom-sm6350"
 pkgname=linux-$_flavor
 pkgver=6.9.7
-pkgrel=0
+pkgrel=1
 pkgdesc="Mainline Kernel fork for SM6350/SM7225 devices"
 arch="aarch64"
 _carch="arm64"
@@ -55,5 +55,5 @@ package() {
 
 sha512sums="
 2d432d2e9cf681c55a8406d1c9122ebdde8fdd0dee12815b785bfc9446527bec25a812b297e88d893685fa32b45afd752ae13ae2c28bf6e53f9699e4f7021dae  linux-v6.9.7-sm6350.tar.gz
-893f1612c691687f77eee626dddaab9d06bfe7a60a4b2ea2a224110bdfb127dc731767d0df775767f72dc5f2ca94c88637dd387e0574afceee81ec6b9c854d93  config-postmarketos-qcom-sm6350.aarch64
+0025fefe24d80100a4507e12703cb340790985cb4bbdd8f84b32e1852b1df5a9bddd08745eaebcb848779d5205a23e6809b24fe420b8994c1e51e0f9801ae95a  config-postmarketos-qcom-sm6350.aarch64
 "
diff --git a/device/community/linux-postmarketos-qcom-sm6350/config-postmarketos-qcom-sm6350.aarch64 b/device/community/linux-postmarketos-qcom-sm6350/config-postmarketos-qcom-sm6350.aarch64
index 592a2e9e47a..851de3f21a4 100644
--- a/device/community/linux-postmarketos-qcom-sm6350/config-postmarketos-qcom-sm6350.aarch64
+++ b/device/community/linux-postmarketos-qcom-sm6350/config-postmarketos-qcom-sm6350.aarch64
@@ -1839,6 +1839,7 @@ CONFIG_DM_THIN_PROVISIONING=m
 # CONFIG_DM_VDO is not set
 # CONFIG_TARGET_CORE is not set
 CONFIG_NETDEVICES=y
+CONFIG_MII=m
 CONFIG_NET_CORE=y
 # CONFIG_BONDING is not set
 CONFIG_DUMMY=m
@@ -2049,7 +2050,7 @@ CONFIG_USB_NET_DRIVERS=y
 # CONFIG_USB_KAWETH is not set
 # CONFIG_USB_PEGASUS is not set
 # CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_RTL8152 is not set
+CONFIG_USB_RTL8152=m
 # CONFIG_USB_LAN78XX is not set
 # CONFIG_USB_USBNET is not set
 # CONFIG_USB_HSO is not set
@@ -3121,7 +3122,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
 CONFIG_REGULATOR_QCOM_PM8008=y
 CONFIG_REGULATOR_QCOM_RPMH=y
 # CONFIG_REGULATOR_QCOM_SPMI is not set
-# CONFIG_REGULATOR_QCOM_USB_VBUS is not set
+CONFIG_REGULATOR_QCOM_USB_VBUS=y
 # CONFIG_REGULATOR_RAA215300 is not set
 # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
 # CONFIG_REGULATOR_RT4801 is not set
@@ -3298,6 +3299,7 @@ CONFIG_DRM_PANEL_HIMAX_HX83112A=m
 CONFIG_DRM_BRIDGE=y
 CONFIG_DRM_PANEL_BRIDGE=y
 CONFIG_DRM_AUX_BRIDGE=y
+CONFIG_DRM_AUX_HPD_BRIDGE=y
 
 #
 # Display Interface Bridges
@@ -3476,7 +3478,7 @@ CONFIG_SND_USB_AUDIO=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=y
 # CONFIG_HID_BATTERY_STRENGTH is not set
-# CONFIG_HIDRAW is not set
+CONFIG_HIDRAW=y
 CONFIG_UHID=m
 CONFIG_HID_GENERIC=y
 
@@ -3500,6 +3502,7 @@ CONFIG_HID_APPLE=y
 # CONFIG_HID_MACALLY is not set
 # CONFIG_HID_PRODIKEYS is not set
 # CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CP2112 is not set
 # CONFIG_HID_CREATIVE_SB0540 is not set
 # CONFIG_HID_CYPRESS is not set
 # CONFIG_HID_DRAGONRISE is not set
@@ -3509,6 +3512,7 @@ CONFIG_HID_APPLE=y
 # CONFIG_HID_ELO is not set
 # CONFIG_HID_EVISION is not set
 # CONFIG_HID_EZKEY is not set
+# CONFIG_HID_FT260 is not set
 # CONFIG_HID_GEMBIRD is not set
 # CONFIG_HID_GFRM is not set
 # CONFIG_HID_GLORIOUS is not set
@@ -3534,6 +3538,7 @@ CONFIG_HID_APPLE=y
 # CONFIG_HID_LENOVO is not set
 # CONFIG_HID_LETSKETCH is not set
 CONFIG_HID_LOGITECH=y
+# CONFIG_HID_LOGITECH_DJ is not set
 # CONFIG_HID_LOGITECH_HIDPP is not set
 # CONFIG_LOGITECH_FF is not set
 # CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -3602,7 +3607,7 @@ CONFIG_HID_LOGITECH=y
 #
 CONFIG_USB_HID=y
 # CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
+CONFIG_USB_HIDDEV=y
 # end of USB HID support
 
 CONFIG_I2C_HID=y
@@ -3617,7 +3622,7 @@ CONFIG_USB_ULPI_BUS=y
 # CONFIG_USB_CONN_GPIO is not set
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB=y
-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
 #
 # Miscellaneous USB options
@@ -3828,7 +3833,38 @@ CONFIG_USB_CONFIGFS_F_FS=y
 # CONFIG_USB_RAW_GADGET is not set
 # end of USB Gadget precomposed configurations
 
-# CONFIG_TYPEC is not set
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=y
+# CONFIG_TYPEC_TCPCI is not set
+# CONFIG_TYPEC_FUSB302 is not set
+CONFIG_TYPEC_QCOM_PMIC=y
+# CONFIG_TYPEC_UCSI is not set
+# CONFIG_TYPEC_TPS6598X is not set
+# CONFIG_TYPEC_ANX7411 is not set
+# CONFIG_TYPEC_RT1719 is not set
+# CONFIG_TYPEC_HD3SS3220 is not set
+# CONFIG_TYPEC_STUSB160X is not set
+# CONFIG_TYPEC_WUSB3801 is not set
+
+#
+# USB Type-C Multiplexer/DeMultiplexer Switch support
+#
+# CONFIG_TYPEC_MUX_FSA4480 is not set
+CONFIG_TYPEC_MUX_GPIO_SBU=y
+# CONFIG_TYPEC_MUX_PI3USB30532 is not set
+# CONFIG_TYPEC_MUX_IT5205 is not set
+# CONFIG_TYPEC_MUX_NB7VPQ904M is not set
+# CONFIG_TYPEC_MUX_PTN36502 is not set
+# CONFIG_TYPEC_MUX_WCD939X_USBSS is not set
+# end of USB Type-C Multiplexer/DeMultiplexer Switch support
+
+#
+# USB Type-C Alternate Mode drivers
+#
+CONFIG_TYPEC_DP_ALTMODE=y
+# CONFIG_TYPEC_NVIDIA_ALTMODE is not set
+# end of USB Type-C Alternate Mode drivers
+
 CONFIG_USB_ROLE_SWITCH=y
 CONFIG_MMC=y
 CONFIG_PWRSEQ_EMMC=y
@@ -4408,6 +4444,7 @@ CONFIG_QCOM_GENI_SE=y
 CONFIG_QCOM_LLCC=y
 CONFIG_QCOM_MDT_LOADER=m
 # CONFIG_QCOM_OCMEM is not set
+# CONFIG_QCOM_PMIC_GLINK is not set
 CONFIG_QCOM_QMI_HELPERS=y
 # CONFIG_QCOM_RAMP_CTRL is not set
 CONFIG_QCOM_RMTFS_MEM=y
@@ -4495,6 +4532,7 @@ CONFIG_EXTCON=y
 # CONFIG_EXTCON_RT8973A is not set
 # CONFIG_EXTCON_SM5502 is not set
 # CONFIG_EXTCON_USB_GPIO is not set
+# CONFIG_EXTCON_USBC_TUSB320 is not set
 # CONFIG_MEMORY is not set
 CONFIG_IIO=y
 # CONFIG_IIO_BUFFER is not set
-- 
GitLab