diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index d6e5a4e3bfa9..bba27648556a 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -1727,6 +1727,7 @@ regmap_write regulator_allow_bypass regulator_bulk_disable + regulator_bulk_enable regulator_count_voltages regulator_disable regulator_disable_regmap diff --git a/arch/arm64/configs/vendor/pineapple_GKI.config b/arch/arm64/configs/vendor/pineapple_GKI.config index f48dc8c453ca..dac0c6629f4e 100644 --- a/arch/arm64/configs/vendor/pineapple_GKI.config +++ b/arch/arm64/configs/vendor/pineapple_GKI.config @@ -153,6 +153,7 @@ CONFIG_QCOM_SPSS=m CONFIG_QCOM_STATS=m CONFIG_QCOM_TSENS=m CONFIG_QCOM_VADC_COMMON=m +CONFIG_QCOM_WCD_USBSS_I2C=m # CONFIG_QCOM_WCNSS_PIL is not set CONFIG_QRTR=m CONFIG_QRTR_SMD=m diff --git a/drivers/soc/qcom/wcd939x-i2c.c b/drivers/soc/qcom/wcd939x-i2c.c index 1cdd6e76f89b..d17337ac98a9 100644 --- a/drivers/soc/qcom/wcd939x-i2c.c +++ b/drivers/soc/qcom/wcd939x-i2c.c @@ -341,6 +341,14 @@ int wcd_usbss_switch_update(enum wcd_usbss_cable_types ctype, regmap_update_bits_base(wcd_usbss_ctxt_->regmap, WCD_USBSS_AUDIO_FSM_START, 0x01, 0x01, NULL, false, true); break; + case WCD_USBSS_HSJ_CONNECT: + /* Select MG2, GSBU1 */ + regmap_update_bits(wcd_usbss_ctxt_->regmap, + WCD_USBSS_SWITCH_SELECT0, 0x03, 0x1); + /* Enable SENSE, MIC, AGND switches */ + regmap_update_bits(wcd_usbss_ctxt_->regmap, + WCD_USBSS_SWITCH_SETTINGS_ENABLE, 0x07, 0x07); + break; case WCD_USBSS_DP_AUX_CC1: fallthrough; case WCD_USBSS_DP_AUX_CC2: diff --git a/include/linux/soc/qcom/wcd939x-i2c.h b/include/linux/soc/qcom/wcd939x-i2c.h index 7d9fb4edb711..36320ce34c77 100644 --- a/include/linux/soc/qcom/wcd939x-i2c.h +++ b/include/linux/soc/qcom/wcd939x-i2c.h @@ -15,6 +15,7 @@ enum wcd_usbss_cable_types { WCD_USBSS_DP_AUX_CC2, WCD_USBSS_AATC, WCD_USBSS_GND_MIC_SWAP_AATC, + WCD_USBSS_HSJ_CONNECT, }; enum wcd_usbss_cable_status {