From patchwork Wed Jul 26 00:35:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 108727 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp199885qge; Tue, 25 Jul 2017 17:37:37 -0700 (PDT) X-Received: by 10.98.236.146 with SMTP id e18mr10894521pfm.141.1501029457374; Tue, 25 Jul 2017 17:37:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501029457; cv=none; d=google.com; s=arc-20160816; b=VInenP27JPK76qnWlFDmhcD1KYcXaWwqjhZ/F3Sgu2TAgC0WIdZ2J7DrWfn6XxpQWq uyfgFJ7ky3/l38hDg3wL5PJTSHHVj6RlCjBAu74PuHzq9De8khCiPMwBdELC+fbuMnvq smxEYjawPHfJdfg2cYy6yAm9HwB8Hy75aJdKaHxRNtb/gFomh7QEtsjvJcMLtmVcziJY JLtlMM2MB/YhzQmcFAmoNLmk4ZQ7rgQMxN3hWAPncqwTjqzNxCDhF9fGU4KGZIAr/VMF bjFUBPr/CesiEQJhi4ABBNqAhKeKd0/bIISdfN36qqtVd7NaW8rXPm3n3t8vAt64bmar 1WJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=/Ly9plFeMV7+ibRN2ZxKsE48bBId6xdA+3ufQUNmYrI=; b=OZonkX0We5/kVqKRYYy6+Isyan2XyBBJsXu03L7ia4/rvxhkVyk1Alv+UxWIdzy8vZ g+HiMBQe6m66E86qKSCjVPUIhKWA1wJbaM/WIOcvlCxIfBLbM5dXU5BvJMSC2sVJb9gd HIux+z3R8rH2YWAAxNq3e1mV2N33SvgwUbKxzHNNlANG0/bZvhaG5dWqFu/PnKJdbItq pg6nX1d7xIkD7B7AZIq0KnOd+LAVJk4g6TAJHGGO/hqnvG3Bl6sqabhr13Im7LAf3ZSM wE9NLJL4/C828UOnYKWzNeJN1dx40Crslmhk/tOjBH54NuF5lL/nF5/JF83RXJR5LDck SX5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.b=eVxbitL5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o26si8950570pge.34.2017.07.25.17.37.36; Tue, 25 Jul 2017 17:37:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.b=eVxbitL5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751791AbdGZAf1 (ORCPT + 26 others); Tue, 25 Jul 2017 20:35:27 -0400 Received: from mail-it0-f43.google.com ([209.85.214.43]:34513 "EHLO mail-it0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751741AbdGZAfY (ORCPT ); Tue, 25 Jul 2017 20:35:24 -0400 Received: by mail-it0-f43.google.com with SMTP id v205so18462965itf.1 for ; Tue, 25 Jul 2017 17:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=/Ly9plFeMV7+ibRN2ZxKsE48bBId6xdA+3ufQUNmYrI=; b=eVxbitL5aFvfNaHVpbgNXvoeaGJ6QB6YIanCoNiLJaNqgxcQX5/4aCwFiBq7RBobek KkxCWpIicXK/3wCI8b0ieOrHW4y69NCTHBQ1JTh5ScG1luDdTYqw9Nzy6z1nWqlsN7YA MrXwVl0jX+aH4sMUITXtZiND1BqsEthj06M8g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=/Ly9plFeMV7+ibRN2ZxKsE48bBId6xdA+3ufQUNmYrI=; b=m69bvB+3el82sqK3SE3zSNvh2lNPhjKp3EXGdUHoD8CWk2Yqolz63298+jK1D7sEfZ EnsHn1CtvlpBmrYbvNw1xlzEcu8aD6FuK/tphrvbmw1nr+VcqEzTE7nq8BmhhcrYKhq3 RNZV1txNS6i34nPbpYAaU5yoaJhodtIa+sY2thQhWFk+/GSOcC+jZrnr7keE+vbtRYuM LxFk8KJy5hzd0K7PlhbuRrEXX3u0XpmT/GgoYYkUq4nnUrNBMrKeS/kHiFFg5Vk5FV9P tQWcaUsbtUtCkGNIHIfhkkga86hfeGlb8Xom0lAIJFjiKBBliLs4rGq1BBRoEyUUvGsB 3u3g== X-Gm-Message-State: AIVw1106biGnt48L3sv329unFyON1E7CNeQnkTxFbS8Wdye8Uhuyqd6d pwgC5m6rRu3t/kgj X-Received: by 10.36.67.201 with SMTP id s192mr11777272itb.6.1501029323698; Tue, 25 Jul 2017 17:35:23 -0700 (PDT) Received: from localhost.localdomain (static.8.26.4.46.clients.your-server.de. [46.4.26.8]) by smtp.gmail.com with ESMTPSA id l69sm5097373ioi.49.2017.07.25.17.35.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 25 Jul 2017 17:35:23 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: Mark Brown , Banajit Goswami , alsa-devel@alsa-project.org Cc: Jaroslav Kysela , Takashi Iwai , Patrick Lai , linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v1 0/6] ASoC: codecs: msm8916-wcd-analog: Add support to MBHC Date: Wed, 26 Jul 2017 02:35:06 +0200 Message-Id: <20170726003512.18965-1-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Srinivas Kandagatla This patchset adds support to MBHC(Multibutton headset control) block in PM8916 analog block. MBHC support comes from2 blocks first mechanical headset detection and second headset type, 5 button detection. This patchset adds support to: 1> Support to NC and NO type of headset Jacks. 2> Mechanical insertion and detection of headset jack. 3> Detect a 3 pole Headphone and a 4 pole Headset. 4> Detect 5 buttons. First patch fixes error code returned by snd_soc_codec_set_jack() to be more precise for users. Second patch is patch from Damien, followed by few fixes to codec driver w.r.t mbhc and final patch to add mbhc support. Damien sent a similar patchset to add support to mechanical detection, but that patch has issues and will not work on most usecases (for example after a playback/capture session, multicodec case). So I only picked up the BIT mask patch from that series. Tested it on DB410c with Audio Mezz board with 4 pole and 3 pole and during playback and recording use cases. root@linaro-alip:~# evtest No device specified, trying to scan all of /dev/input/event* Available devices: /dev/input/event0: pm8941_pwrkey /dev/input/event1: DB410c Headset Jack /dev/input/event2: gpio_keys Select the device event number [0-2]: 1 Input driver version is 1.0.1 Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0 Input device name: "DB410c Headset Jack" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 114 (KEY_VOLUMEDOWN) Event code 115 (KEY_VOLUMEUP) Event code 226 (KEY_MEDIA) Event code 260 (BTN_4) Event code 582 (KEY_VOICECOMMAND) Event type 5 (EV_SW) Event code 2 (SW_HEADPHONE_INSERT) state 1 Event code 4 (SW_MICROPHONE_INSERT) state 1 Properties: Testing ... (interrupt to exit) Event: time 1501001112.059684, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 1 Event: time 1501001112.059684, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0 Event: time 1501001112.059684, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 0 Event: time 1501001112.059684, -------------- SYN_REPORT ------------ Event: time 1501001112.254116, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 0 Event: time 1501001112.254116, -------------- SYN_REPORT ------------ Event: time 1501001113.154184, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1 Event: time 1501001113.154184, -------------- SYN_REPORT ------------ Event: time 1501001113.319658, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0 Event: time 1501001113.319658, -------------- SYN_REPORT ------------ Event: time 1501001113.781084, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 1 Event: time 1501001113.781084, -------------- SYN_REPORT ------------ Event: time 1501001114.024930, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 0 Event: time 1501001114.024930, -------------- SYN_REPORT ------------ Event: time 1501001114.419082, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1 Event: time 1501001114.419082, -------------- SYN_REPORT ------------ Event: time 1501001114.576011, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0 Event: time 1501001114.576011, -------------- SYN_REPORT ------------ Event: time 1501001114.795281, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1 Event: time 1501001114.795281, -------------- SYN_REPORT ------------ Event: time 1501001114.863333, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0 Event: time 1501001114.863333, -------------- SYN_REPORT ------------ Event: time 1501001116.603372, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 1 Event: time 1501001116.603372, -------------- SYN_REPORT ------------ Damien Riegel (1): ASoC: codecs: msm8916-analog: fix DIG_CLK_CTL_RXD3_CLK_EN define Srinivas Kandagatla (5): ASoC: jack: fix snd_soc_codec_set_jack return error ASoC: codecs: msm8916-wcd-analog: move codec reset to probe ASoC: codecs: msm8916-wcd-analog: set default micbias voltage to 1.8 ASoC: codecs: msm8916-wcd-analog: add MBHC support ASoC: qcom: apq8016-sbc: Add support to Headset JACK .../bindings/sound/qcom,msm8916-wcd-analog.txt | 9 + sound/soc/codecs/msm8916-wcd-analog.c | 359 +++++++++++++++++++-- sound/soc/codecs/msm8916-wcd.h | 12 + sound/soc/qcom/apq8016_sbc.c | 52 +++ sound/soc/soc-jack.c | 2 +- 5 files changed, 410 insertions(+), 24 deletions(-) create mode 100644 sound/soc/codecs/msm8916-wcd.h -- 2.9.3