From 1b5b41d6678fa8f631159d5e756c3028c803be49 Mon Sep 17 00:00:00 2001 From: Sam Rainey Date: Mon, 17 Oct 2022 14:15:18 -0700 Subject: [PATCH] wcd939x-usbss: Add support for WCD_USBSS_HSJ_CONNECT in the wcd939x i2c driver Add a case in the wcd939x i2c driver for connecting a headset microphone via the USB subsystem. Update corresponding header file. Change-Id: Ia01804a8ffde36d055a65c11692cef20297e30ca Signed-off-by: Sam Rainey --- drivers/soc/qcom/wcd939x-i2c.c | 8 ++++++++ include/linux/soc/qcom/wcd939x-i2c.h | 1 + 2 files changed, 9 insertions(+) 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 {