From patchwork Fri Oct 12 06:31:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10637979 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 254AC13AD for ; Fri, 12 Oct 2018 06:31:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 149332B94F for ; Fri, 12 Oct 2018 06:31:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 08DBE2B960; Fri, 12 Oct 2018 06:31:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_INVALID,DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 544822B94F for ; Fri, 12 Oct 2018 06:31:58 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 19DC1267967; Fri, 12 Oct 2018 08:31:57 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 712C1267981; Fri, 12 Oct 2018 08:31:54 +0200 (CEST) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id B8F32267967 for ; Fri, 12 Oct 2018 08:31:51 +0200 (CEST) Received: from unknown (HELO relmlir4.idc.renesas.com) ([10.200.68.154]) by relmlie2.idc.renesas.com with ESMTP; 12 Oct 2018 15:31:50 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir4.idc.renesas.com (Postfix) with ESMTP id 310DD7FDC3; Fri, 12 Oct 2018 15:31:50 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.54,371,1534777200"; d="scan'208";a="294946740" Received: from mail-os2jpn01lp0146.outbound.protection.outlook.com (HELO JPN01-OS2-obe.outbound.protection.outlook.com) ([23.103.139.146]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 12 Oct 2018 15:31:49 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kEe4SWW5TkQh6TiWoNzZ0VHpZFRpHriUzcjy5AzPqkQ=; b=Mf+tYqjGofKMXMjiGvQkyAZiYv+aEFThZNIJ5//Ss/HhzfmppZO3jQpyK/E6e0zQOrwlSQsCu2iMXajUA2jr/Qm7AAAZopioa12xQGPPiBy9UG1MzbQPxZkpf9HOzF0FPJP5oFrWk70cPpifeZc/prKovfF73HcbHmjtB50qzdc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.130) by OSAPR01MB1857.jpnprd01.prod.outlook.com (2603:1096:603:2d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.21; Fri, 12 Oct 2018 06:31:49 +0000 Message-ID: <87murjbs45.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.5 Mule/6.0 To: Mark Brown , Jaroslav Kysela In-Reply-To: <87sh1bbs77.wl-kuninori.morimoto.gx@renesas.com> References: <87sh1bbs77.wl-kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Fri, 12 Oct 2018 06:31:49 +0000 X-Originating-IP: [211.11.155.130] X-ClientProxiedBy: TYAPR04CA0001.apcprd04.prod.outlook.com (2603:1096:404:15::13) To OSAPR01MB1857.jpnprd01.prod.outlook.com (2603:1096:603:2d::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7c4f46f1-8747-480d-566c-08d6300c63c3 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:OSAPR01MB1857; X-Microsoft-Exchange-Diagnostics: 1; OSAPR01MB1857; 3:r1h7e4LWPDNvOK00lIngdilKjXfsCKeoVIcflFGCFIeEkHWxKwumGSWDPRtpV9HULC5mhWBOKinsl6+pNE5TGWQFea2fOS50xm28zjH9i3qPEG8jyEEtcN9GoqF6fbkN3q4QFpcN6G/+PtQWjy68/rMiJ+MhLuVNSPG1jlFELFfVZ7kBT3Hr2nWetmtegwMvMc3XMVmdjLdeWqrJ8humvYAOTE67jzdQa0ScDahdbRn0y2YXWM6+agVOPaaYOcS3; 25:XiOm5/HASdlepmlo89f2hVg8CR/Tpp1FRSTDm/EkJyeXUejrSLKdBFeUIe1S8zqEA5lc6uPuZ/lTzbHcdIvrtCW4FgiH1YIAG+SnCQPJJ4MmM2pYYWgVeEhOnac+5hXUO425He5Bdp+XiZC2J35srCoNNRt1mp6z2oAsHoZ34TYuzoZZ3wwFUr94Ft0ZwP+2Z/weK9z9+4gwFfHNY9UP5WLOO7N/kk85bUrEWbvC21L/pjFT/FVdUESgIsRikPmav4bpk5U7r7cSBUvgu9eiwO+K/yR65CPr5FuYnwoX+eIjX//p1EGYY3g6NEW5FsI6VgcvMK3Df0uLCBHcCSoZkg==; 31:NJwsYZ8uYb79MaJLZKuG0bcT929A+XT8SODMilqTpqKrcYOJcDu1LRdKip+G+i+sGA9ki0GvEdDvkZZYh/I1yB1qN6rvAKSkzDraDVkoPemvvuj5rY59ViddzTONosMLLhIOjmumTYEHKcl5vDrD2EC+UXFhzxybZQyqC9qrdy8RzU0IqzvdPCT4zZBekviat2hVlAr8hVC8Vs3k8c9UI5XQOekOZVLUG0SiVVrbBEo= X-MS-TrafficTypeDiagnostic: OSAPR01MB1857: X-Microsoft-Exchange-Diagnostics: 1; OSAPR01MB1857; 20:4a4ashHlS7MIIqYvPerb6foT3UAf31s/QaiBY1CfasXDvQF3DJKxrtvfzX3lPLXm6W01bwhhbNRyweACQ4ksxb32HYWn71mCw9n5KHBLEgYt2CaGi4e/TuqwdQDHh/3PQRyEeFEvSfwRzFaof3FTJisWpSU7krg+DlZjbew8dzmB6gtAZTvScXy4mlLq2AAUv9w/NmNttfSwsg14X/KfX2MaZfDAAx6/p9hILa5ThMyhG9IB4qgNBqjSm8dLcb8FMhbrpvjlC8gIa2caQg8BRNnHF9Vp/pnB62pfJLTF6d6OIOwiRH9V3fmv9uuAwNo6ZboJRFAgzpLMnx9y9ZFVUtD4n44dTQHPN990RyUwDGmUwRT7TcITC2g6OzRZtn3OnfKfHQi4GyeQ/tUPn8LVuOsCcZq/ZmCd8+7Q47v92V7tbTPKoEXkNckwrscDRNKhjkg36wotqBSNPxUyiAnk9lKP5QEm94ySGNuYuvW93XNXGHuwS4Iy8jZiYPCdD0E0; 4:7YVHELoaEe/t3f36y3XoC0xP4moCjy0qHTO1a2kV24Zx0IYIzmZTu7sNbFIl79zGTLFB0D/58978HsEj6yK5+w4VOs954TjeTlKJuU2X3b61zr6fJMzaLyGx/K1Jn5tOcLTRN0I/iG5TOUK/ryGKMCmOy3R1BWbM/rlQaQZL0MRvaxbuwZulej05JgN68laZ1GFLA+kHMh8XJAldsYs1lETzw+Mu2/T9mG2/iZg//jkYDZCEgsbYaSmlmNASGpKlsG3V+Kav4J549giNeBSMWQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231355)(944501410)(52105095)(3002001)(6055026)(149066)(150057)(6041310)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(201708071742011)(7699051); SRVR:OSAPR01MB1857; BCL:0; PCL:0; RULEID:; SRVR:OSAPR01MB1857; X-Forefront-PRVS: 0823A5777B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(136003)(39860400002)(396003)(376002)(346002)(189003)(199004)(76176011)(7696005)(52116002)(16586007)(110136005)(956004)(476003)(2616005)(486006)(6486002)(386003)(69596002)(47776003)(5660300001)(53416004)(316002)(50466002)(11346002)(446003)(186003)(26005)(53936002)(97736004)(16526019)(58126008)(305945005)(105586002)(81166006)(106356001)(8936002)(81156014)(2906002)(7736002)(66066001)(478600001)(25786009)(36756003)(3846002)(8676002)(575784001)(6116002)(86362001)(23726003)(68736007)(4326008)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:OSAPR01MB1857; H:morimoto-PC.renesas.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; OSAPR01MB1857; 23:875g6qgbtTRdWW5uS6I5PGtcYabpX2YOPNNBvsWMH?= v7ZQWztxJXYRyqcQ84ftVPu+NijScKjb/MO4Dg14v8Wo4nTUgDBpf1SZ9hjheoCMA/W7VqUxPRkd9VHi9Z9Yt5Z+gxN382yEqO9g5FkIPueqysq8PiCVbTaT6G2N7srMEqZjbr3+28U5aBCT+IULZBe3GTJvq3Pkoia2fdhAC9fv/7hGRJ3zy87vJp3tesgNTQMdZBqaKta4fec5M7YYumnDjfbI4L8MpP+nQhrSc6LVcEuuNRdFyXSjIexJuoTe+CYtmVZddtmf35BXU0pWmcb5ez4MeTw3pMyYAgZHjQW0W14Yf5BSVmswkY0WSLn4Fs3fLZYJNuxbwsLul0pcJUdPID3d7h4uu1Xghe6igInxn1zV+90R69W+/DW4wjT5gADZ/A5pffMea+4T/h5RU+DWJd+6jlQDM6ZtHg6+06cnt1c4tL/Nfb0dNCfKK9olNVy5+SzPxjSHjbSZfss0PSBBsgVsraTww6Gnsvc2McZFJYr+m/Zp/r7NWaCnoQ3Sj0vKVqmglpy0MEYNltJRs9ckA+TGhQR77mzuGXAZd7CHWDiTJ/VZFhKUz3/F/ixocNAADRTHnQkmq3JJkSVJhqAngCvGAc5Y4wwbgr85AEZCFoTmDAvtXNFvNupKp1J/Acbr2lGq0csy+1EeguKdhjZ/njpVsS/5oYphWlbUc3k71kb5mhr91DGfdFOC/xeA4rNgrBkci6z3CANrWCHa3GTe+3FFh/pejb/wNT5tOXZGbG2y2i7gFLspgzsxCKbAOnPvJboBy2qnCPsfQG7D4zYEoo7HhetE6zWIlNCB700wFXIJhXUFXHFB/3R765BlPPDqYYp2AzcQTwa4tevOmC5eHZfYKqRF6yQB243h05us2QC39EVF0GS0C69Eq88ibm9uj0rIKAYRPGdckwmhhFsnt46NEAHQqcYUEM/P8NNV5nYdddANV/WrkvPhgFwBFVd/0/2lfVK/B1pMNOywEnUneiM3/jx2xfFhONPFQ4iVQvEnQzEb8zrEh0rNsAt82dZEyn6cg4tNmhZXPzj9I/Qhyedqha6Ei87OVRXkPiRibtf48uOhnHSHtyL3rtgUX+TSv9le1WO4AJZ42m1SNGO26E7NMxW2mmm/H0rX88fx9UNBQJSEORx8jn8xB4k4ehIvRlWMgQrR1PBuu8Budzn X-Microsoft-Antispam-Message-Info: zPVwwooKtO37ktWVu1d+P/KtxwEFHiyqqh5nLza9ixAdPAN9HKcuJ4FkT9F60oHRfkzAfQs3HNiV47SxvnFewuVDfnp05GRMItQtaXx4uUSjhusmuTWG65avTqydrB38fGFDu0trFGC6ZJyBBx6OT2qZxGv8UGlqavC+KGemkEx1TXrM8qb7hD1KOR3o2NLA6zyk2uS/qOrogEFuYrmlnxRqrhSrqBrng+XZyTdoM2Oc4chLI1CFmOqmchq6CpsmqbEori0Wx+EAqXBo5kD0nwmZQ2/GF9mkQPo+UxsMA1cnAJfUFH6TfLBGxjTkN/wszeew/F/+V6UmBQLttYTF8RhwhBtWYKHhbwlGkoa0mKo= X-Microsoft-Exchange-Diagnostics: 1; OSAPR01MB1857; 6:5grLGELAa5jGVhCqI3WClzIG02eN65g1g+Kp3SP1ZJISelPaLKrpvzAMeF6EoN/sXrV0oAzxPEb4mrQjy083ZhceHUSjZmjx+wtudnC1LYZX9Fn4NLr7PuaRnUixaOmOmDbv29cmPoD7g9pL7Jzvx17F4vo3P0vTntZ71AXBSnQBF1LKb6GPukohtLOkJPt24JlHW1VzhajY6sr9tbnpMWqCPrkT7f63Ym/t7jWnK1Jjvz5ox8EcVthmVjEuCylya3x0dumapfLxqWTQXzXcFQ/FvNn3AQMyWndUb9eBxwWvBXoRjjemZjrkbiimgOlFJK4g/ln6iqvVFbyHdRTlpkOJSK3cVfs0rMtuoFUqsbLaeS4Y8VvM3XMbqqQ1Fjm7B6Knnr6CdwjPe3InnAWeN3umRaHFJuJ/uNxzbOsDb3bEzi//D/GZBJTfJHwEUQLxTsbLGAw93MTdu7hR2vcKkA==; 5:aglzmlE4nUerSC4cQO0dauC8yi9v2SKr29OzoSUP7u+wF3/K+6hczQv7EM/Dpf8mJ7b5CQgMhJin6WN0acecIGYyZKqvcHiT8VFE9yqykFQfOARutX1KlPoiDpfAQHK56/7mCue7ytKfhtC5VAYfVqxWtBivuo5ufl+1tjLMlK8=; 7:JzK8msT6Wo2dkllVuWm5G+QhooeXPbj9DsFnvghat/kLO/rtFsM9fcOaLMYRZ55GrGCOBzek1PXQly4EmdMa9fDnk0kg8TuxE7HqJSRMc72rLhLBk9Oc8MhnQjgud5u+zFewkuujVnwsJ4jP4BJmv/9S03RvmMunX4eBDIIuBwCzO+5SsYLQgcDLLL6SqAQD/45IPX6mTAkSGOoTgncTOyfNucswggdRUIPZKe5QGiSMGdLSGJrf3Y+01qMQ+z9A SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; OSAPR01MB1857; 20:CHtFnqTth651heqenkI3Bty1XbTSSFbEbh9cF2UkYA1vS6K8mUOPZKYJGxZysNhjPF1S5xvo0C0d6d/6/shhpeSROWp3/1oXYFkRaVhjMCJgJpcgHmQ0/cubV5nDg5rY77kU1eN5naThkkvrlxQIKqy2Zr6zL2bsQW1vX+Nmsow= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2018 06:31:49.0020 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7c4f46f1-8747-480d-566c-08d6300c63c3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSAPR01MB1857 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH 3/3] ASoC: pcm3168a: add I2S/Left_J TDM support X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto pcm3168a is supporting TDM on I2S/Left_J, but there is no settings for it. This patch add it. Signed-off-by: Kuninori Morimoto --- sound/soc/codecs/pcm3168a.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sound/soc/codecs/pcm3168a.c b/sound/soc/codecs/pcm3168a.c index f0e2b88..63aa025 100644 --- a/sound/soc/codecs/pcm3168a.c +++ b/sound/soc/codecs/pcm3168a.c @@ -33,6 +33,8 @@ #define PCM3168A_FMT_RIGHT_J_16 0x3 #define PCM3168A_FMT_DSP_A 0x4 #define PCM3168A_FMT_DSP_B 0x5 +#define PCM3168A_FMT_I2S_TDM 0x6 +#define PCM3168A_FMT_LEFT_J_TDM 0x7 #define PCM3168A_FMT_DSP_MASK 0x4 #define PCM3168A_NUM_SUPPLIES 6 @@ -401,9 +403,11 @@ static int pcm3168a_hw_params(struct snd_pcm_substream *substream, bool tx, master_mode; u32 val, mask, shift, reg; unsigned int rate, fmt, ratio, max_ratio; + unsigned int chan; int i, min_frame_size; rate = params_rate(params); + chan = params_channels(params); ratio = pcm3168a->sysclk / rate; @@ -456,6 +460,21 @@ static int pcm3168a_hw_params(struct snd_pcm_substream *substream, return -EINVAL; } + /* for TDM */ + if (chan > 2) { + switch (fmt) { + case PCM3168A_FMT_I2S: + fmt = PCM3168A_FMT_I2S_TDM; + break; + case PCM3168A_FMT_LEFT_J: + fmt = PCM3168A_FMT_LEFT_J_TDM; + break; + default: + dev_err(component->dev, "TDM is supported under I2S/Left_J only\n"); + return -EINVAL; + } + } + if (master_mode) val = ((i + 1) << shift); else