From patchwork Mon Jul 23 15:53:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 142616 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp6208409ljj; Mon, 23 Jul 2018 08:58:22 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdGXU8Bd0hGff8SDLOANejyxIGr+sedrXYpvE3Tbrm25N6t7W2wpueQIE8uOGuKSThiOv19 X-Received: by 2002:a17:902:7c0a:: with SMTP id x10-v6mr13173310pll.77.1532361502047; Mon, 23 Jul 2018 08:58:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532361502; cv=none; d=google.com; s=arc-20160816; b=P3XGUqr1dBSm2gyCI7jkarlYeokWIuCFqxpf/PX7EmdpRojiZT2+yHRQASV3iCGKW1 1EZghhk8ib9sK79IuH9bikCOJ2S1giaGp1yAkh3khTlVTqhcvsfBIZZQoSJVAMFhuzQV yGKzN5m/8n/TsJiCx5nLSJFZpa4CVv9N+lUPYT62bThUNQnf1+IKA6kzPuRBr7byJq9q SpGOkcvHQap9I2hxCuP9hOPFQTsjG+LqNXcASohI2dGiftWoJOMwCv+mWbkrqSMEYKUh +3VANPblJeDRCPtQUNCdPSzrO10qVwU7o9BvAvqWkKC/Em4+P9SUGLotpDE/ct0/bGO9 2g8g== 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=uOSHNGuwMIQPaOng5qdIAcC0fCSRyc9ISZGk86LG6+c=; b=HD/mmbiblYvUQcmEFF+30pxU+maIoZ2TyTEIov+VJlsxyOgpGR6V2bjyrcfAmOQLZx 3Jv174SzDw5g7UQcWP4QuL12ozmXU4bst5VgXqiyZ/VagLJdQXyVO9RoQHdcS1mtHC39 FdN/l2ALDCxE5RvdUjWgK1PprCZOR6YUqIWYLlcRsxEcQN+p8iu5vEyM2iYV/DTriHVh 9gK8+0zmxvXI+0Y8g6pOZbiYez95NQVrl3YSKqxS5bpx6i11eJelvoiAbXwFpdbfGMi4 W+yYFRsNrGID2vTdRTe1xaMjY2lkYSXV2YwsRvDX0hzijGdGgWN5Ik9fhdekWb5Y8Y7q ECyA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GwwVnft5; 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 a1-v6si8449724pld.63.2018.07.23.08.58.21; Mon, 23 Jul 2018 08:58:22 -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.s=google header.b=GwwVnft5; 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 S2388444AbeGWRAJ (ORCPT + 31 others); Mon, 23 Jul 2018 13:00:09 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:36901 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387968AbeGWRAI (ORCPT ); Mon, 23 Jul 2018 13:00:08 -0400 Received: by mail-wm0-f68.google.com with SMTP id n11-v6so1726965wmc.2 for ; Mon, 23 Jul 2018 08:58:16 -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=uOSHNGuwMIQPaOng5qdIAcC0fCSRyc9ISZGk86LG6+c=; b=GwwVnft5qHo7WIdXv4bdoFEk+uTepqDVQxIE7DhTPyHqWrNY4fIkZld9sgeXatrvu6 sZXovjeKd109qebG7Imtfu1xzsffG5npy1/6uXCy4DRRMFly2COZRSA7ey91lLdQVFeA suc/xvtG3Erb0UWtaG8Jx6057fFfOz0Flghog= 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=uOSHNGuwMIQPaOng5qdIAcC0fCSRyc9ISZGk86LG6+c=; b=L15j3uTAKBYG4l6hrXxNYTuwL3cjrjaObc+ighKrkXDxoie8j26DZ3W6H1Uzul+3un BUh7jTwE6zrPeLDxNuOMbRIYVnnG5wfN5h2nQuO/JHMn4dRLMPHZK9Ei95sYviQnt891 EdAvM/vj7xnl07MMXU4wfPWdJF5FyK9OAmdVQ3oRDEzF558Xvm/wN6D/cOREULOUn0UP cUtla6/fyXCynYxYnNxPgT7MdY7eaCOkcWY5yjCrmCfBr979tfSBlZqzxthz6VrcgScb x+PC5WImbkiR8BdfMoESBnELFfWTyKkFDYfsetDkQZTCCNIVjVToq/7vEMoK/nJvdHpc b8gg== X-Gm-Message-State: AOUpUlGSfMXXl4IccjTIIqhX7Ku1X65T28TwlXz65IQZuzrrRhiSIqjU AU/p9YI7JTeho82pKTM/HfcYjA== X-Received: by 2002:a1c:4143:: with SMTP id o64-v6mr8372905wma.123.1532361495830; Mon, 23 Jul 2018 08:58:15 -0700 (PDT) Received: from localhost.localdomain (cpc90716-aztw32-2-0-cust92.18-1.cable.virginm.net. [86.26.100.93]) by smtp.gmail.com with ESMTPSA id 14-v6sm206385wmt.1.2018.07.23.08.58.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 23 Jul 2018 08:58:15 -0700 (PDT) From: Srinivas Kandagatla To: lee.jones@linaro.org, robh+dt@kernel.org, broonie@kernel.org Cc: mark.rutland@arm.com, lgirdwood@gmail.com, tiwai@suse.com, bgoswami@codeaurora.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, vkoul@kernel.org, alsa-devel@alsa-project.org, Srinivas Kandagatla Subject: [PATCH 00/12] mfd: Add support to WCD9335 Audio Codec Date: Mon, 23 Jul 2018 16:53:58 +0100 Message-Id: <20180723155410.9494-1-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.16.2 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Qualcomm WCD9335 Codec is a standalone Hi-Fi audio codec IC. It is integrated in multiple Qualcomm SoCs like: MSM8996, MSM8976, and MSM8956 chipsets. WCD9335 had multiple functional blocks, like: Soundwire controller, interrupt mux, pin controller, Audio codec, MBHC, MAD(Mic activity Detection), Ultrasonic proximity and pen detection, Battery-voltage monitoring and Codec processing engine. Currently this patchset has been only tested with SLIMbus interface due to hardware avaiablity, but it can be easily made to work with both SLIMbus and I2C/I2S. This patchset adds very basic playback and capture support witout much fancy features. New features will be added once the basic support is in. This patchset is tested on top of linux-next on DB820c for both playback and capture paths. This patchset also depends on the SLIMbus Stream apis which is already merged via char-misc tree for 4.19. Some parts of the code has been inherited from Qualcomm andriod kernel, so credits to various authors. WCD9335 can be interfaced via I2S/I2C or SLIMbus. Here is my test branch incase someone want to try this out: https://git.linaro.org/people/srinivas.kandagatla/linux.git/log/?h=wcd9335 Thanks, Srini Srinivas Kandagatla (12): mfd: dt-bindings: Add wcd9335 mfd bindings mfd: wcd9335: add support to wcd9335 core mfd: wcd9335: add wcd irq support ASoC: dt-bindings: add dt bindings for wcd9335 audio codec ASoC: core: add support to snd_soc_dai_get_channel_map() ASoC: wcd9335: add support to wcd9335 codec ASoC: wcd9335: add CLASS-H Controller support ASoC: wcd9335: add basic controls ASoC: wcd9335: add playback dapm widgets ASoC: wcd9335: add capture dapm widgets ASoC: wcd9335: add audio routings ASoC: apq8096: Add support to Analog audio via WCD9335 slim .../devicetree/bindings/mfd/qcom,wcd9335.txt | 130 + .../devicetree/bindings/sound/qcom,wcd9335.txt | 21 + drivers/mfd/Kconfig | 18 + drivers/mfd/Makefile | 4 + drivers/mfd/wcd9335-core.c | 278 ++ drivers/mfd/wcd9335-irq.c | 172 + include/dt-bindings/mfd/wcd9335.h | 43 + include/linux/mfd/wcd9335/registers.h | 580 +++ include/linux/mfd/wcd9335/wcd9335.h | 43 + include/sound/soc-dai.h | 8 + sound/soc/codecs/Kconfig | 5 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/wcd-clsh.c | 1010 ++++ sound/soc/codecs/wcd-clsh.h | 69 + sound/soc/codecs/wcd9335.c | 4981 ++++++++++++++++++++ sound/soc/qcom/apq8096.c | 68 + sound/soc/soc-core.c | 22 + 17 files changed, 7454 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/qcom,wcd9335.txt create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd9335.txt create mode 100644 drivers/mfd/wcd9335-core.c create mode 100644 drivers/mfd/wcd9335-irq.c create mode 100644 include/dt-bindings/mfd/wcd9335.h create mode 100644 include/linux/mfd/wcd9335/registers.h create mode 100644 include/linux/mfd/wcd9335/wcd9335.h create mode 100644 sound/soc/codecs/wcd-clsh.c create mode 100644 sound/soc/codecs/wcd-clsh.h create mode 100644 sound/soc/codecs/wcd9335.c -- 2.16.2