From patchwork Wed Sep 27 14:52:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kamlakant Patel X-Patchwork-Id: 819204 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="VJ/NGY3Y"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3y2LQX6kf9z9tXs for ; Thu, 28 Sep 2017 00:52:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751892AbdI0Owf (ORCPT ); Wed, 27 Sep 2017 10:52:35 -0400 Received: from mail-sn1nam01on0064.outbound.protection.outlook.com ([104.47.32.64]:21856 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751293AbdI0Owb (ORCPT ); Wed, 27 Sep 2017 10:52:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=WUs9wfy0quima91+qGVRz6VAU8qQYf+3SEeewIibzAY=; b=VJ/NGY3YqZhLuMJ25YDWfKNHdY7+JOeCdqSKxLOHI8H8FHszd1TkQF8AiAg6GPIhWfhQGrCs7er0Ri+ijKRi0LQcku7SpKA2VX3JSWrMSaDzPgMs/uA+A/ULy4M/ETNYby86c2YTS4Qb9mUBmiNt0YLmyGe6dYUPLWGHnDUFHsY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Kamlakant.Patel@cavium.com; Received: from kamlakant--T110-II.caveonetworks.com (111.93.218.67) by BN4PR07MB2129.namprd07.prod.outlook.com (10.164.63.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Wed, 27 Sep 2017 14:52:28 +0000 From: Kamlakant Patel To: linux-i2c@vger.kernel.org, linux-acpi@vger.kernel.org Cc: Jayachandran C , Wolfram Sang , Mika Westerberg , Kamlakant Patel Subject: [PATCH 1/3] ACPI / APD: Add clock frequency for ThunderX2 I2C controller Date: Wed, 27 Sep 2017 20:22:21 +0530 Message-Id: <1506523943-8632-2-git-send-email-kamlakant.patel@cavium.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1506523943-8632-1-git-send-email-kamlakant.patel@cavium.com> References: <1506523943-8632-1-git-send-email-kamlakant.patel@cavium.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BMXPR01CA0043.INDPRD01.PROD.OUTLOOK.COM (10.174.214.29) To BN4PR07MB2129.namprd07.prod.outlook.com (10.164.63.11) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d3373f6c-9849-400e-3fe9-08d505b760f1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BN4PR07MB2129; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 3:vag1sis8mscTudz3K5lec0311CmjKSEFwzWOkQKBLy7h5fX1bg8VuXrHPqgRQGT6rXwOqgmPKtnb6leWIUZDMtERtLWYKxstfFvbkhGCms2esuIJCV9mNt7FvZjmI3XzZgtlg/Y5XJYavfdWZW/GxnDP8D7MJM6o0R3cScx48uWh9rha07os87YxY3eRhpSN2dg5+KH2hVrukKdC94Uv0g/rGcA4zrC4xMKEkuzoX3scEy1z0w2miIFFSYxeeZzj; 25:zAR+22nDSGRfLtSGcK8m5zzowHv5X/aqz5+tZnwp2LSziXJAHoAld7Lw7XcWi1BEhHcDwafpX4mXGnDcy89ueJuT1CQrcITHlTjih+khSYGRGWTHz5ksmIjs4M7tQahMDPYfDr7S//K4gRnGK0vX0t+eQs+yUb2e5vMXMrBjGgf2dwnHeVD54ZLXJTed3Tvvo4uesFKjZbnz69a7lhd2c69sBplo387t7gCpW+y5sZPnrgiZykFsNhoN4T/EB/2EYQmZt/knlIA3D/EKoTj9eCaA/yfERDBE34eFCIP+8v4TXAxDzHbpQh0Gyr3CPkN+XKiSsOJ6ZXIR1Gr6uE7V/A==; 31:cVyjhj8Tyk1AslbHodt73OOMHQtj3pyo6HC3YPiXBt9/gd3I+O8hGfliXxls1AwR/nc/95h9DZ8ZM/nCX7YG/tX3s/wv1KQIhO3wn6n0PwK8qNA6aMQKb1cyUNmVSG1u4Te0Qrkf95WpfbwltcTgDfCyb/kAca7AnxK1PgF6yKL2MAEz5+qfxL6PKBqRNcf2UbNJMcE+wFW+LDD2L9oSkDfZsbb9opH010PXEIFR6TU= X-MS-TrafficTypeDiagnostic: BN4PR07MB2129: X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 20:EgtSldiyEVn6QyzT28k6NeV3MRs68qaon8lIm7jwIY1sDUEBHuHk4OAe574qLXeH2z8tf4oLDeQPnlvFDSvcEAjpLky+W18VPERJymQeW8Xsp13I4bfvk3ijlHgGFGQD07S6jf3sebLo2EVrSg3lFf3g9S9y2tlD1A/cbzZNTA0/6bjLN7/nIEzg5UfH2LtrkDMQDTZpsT6VzWvWnafilsDSTShQ9t+VeUrGpGh8KK0Vgx8Wipx8dqSdNzMZPkT/D7585qUvSckBkliWWhXOpnExhgGMEdNnLtYeNrseEU2++UmMsBJZpKItG7das6kqChXO+n5EkUpNTREgV+dXb6wYIVmzePzF26I1E/049J7kjVWMHqfENOZ/Of7yKwJD7to2JLd3XyXzHGJTLY+s3QrohI/5Olc3WLPWnopcfs9k2FmrXT3t2jrhRUFnCq7nv3CNFf8YOCUkBQIE3lMHRXd4vR8j+ky9LpiRBBJLy2ImFnfahz6pz2H/NG16OPaL; 4:AWOHZfG30zQfKD3VbIYo5NKyZYzL+o/kv0T8WzqBcV94o1tWWW6j5KhVy5X0vrA3wDRGOSx+2od5/JY+84v/LRwMPaTRr4UguVknt//5Md5V7GsnkguqG79IPpRuXYAsGASzeNLjRCzhq1EsoX9S1QwgzLh81rNdkIpsODOLZTKfioRqn7Pya2sFccpcPEefUMQvJJBPLSqhApxu3OUPYqO2YO79QB56lUQdXUGj7epgT48EHsUIzrJGyBvpL1/m X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN4PR07MB2129; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN4PR07MB2129; X-Forefront-PRVS: 04433051BF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(199003)(189002)(2950100002)(47776003)(33646002)(48376002)(8936002)(66066001)(68736007)(305945005)(76176999)(50986999)(69596002)(5009440100003)(54906003)(53936002)(105586002)(106356001)(50226002)(101416001)(25786009)(53416004)(6512007)(50466002)(16526017)(6506006)(81156014)(81166006)(8676002)(3846002)(6486002)(6116002)(16586007)(6666003)(5660300001)(4326008)(5003940100001)(107886003)(36756003)(316002)(97736004)(72206003)(7736002)(189998001)(478600001)(2906002)(86362001)(575784001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR07MB2129; H:kamlakant--T110-II.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 23:oS8Cu+H6AsCSnopoT9tYxHQ9E9Z9llXH5aU+DlcTIfc6ToZM+LPdx80E0nT5qWi0KlYlrDL+j1jYeBBaaJsW9EviJ0K1yPO4UHZVfLgfZ/QFJDwXsmVRLhcCeMW/Az6lHEKy3E0IUnFyUSHY4JSX2V35ysTxcTu0wU3amCUHPYDFk0BvFkz8+c9gRMIH0oAZ66vafwd1/JLtrzwzUlqCUWJ9oF7x8/71JTr/vZq0FyWAKh7nj9xRmZAYriv5XXNZW4/9WO4J9DJmef5nvZUbDVoorQ668Yr3xCbEi1pG7nJz0LKx/ZRvJUlxI+gENZkFxvZP35KKO0cvCUyaLn5jOCKjVZjOrw1WSQvdgqlOTJYi4xuIngMQG9mVyHjlc6WtHqlxxzYDyL7hNaU8bWrFW1tMkfX17Gp8ws9IjKMbqrwxogjXaW48qs9A/JFlXh1YdR+zcRZPXoeKgTPY7sBABxdA31vqWRQKWLoMrBwx2bfKpY+YwSVkbDBoHdRQqEwNVAM/PAnfttrfuqh1sKeZHWlP9pBbkq/yXI8uYSDExPmd/wGOnGIjOFNA39KpGIzKmPbZ11v6svDTP0nWAliyY1VBwc65dXJ33Ks/Tr6sboPD44cec4rqYF4kHVZ4KPFvaI3JV37htMBVwyhnFnf86zoy+P0UG9nEvz/XFONMAILboJzKkDZ3posTPNipYQ2y0dIqIf5WRoc59EzZNeU2K9hhKIKKBEz9h8yEA19Tcg1NILEK8UU+W4MuwnzI6n6NaN6K6N/zzAiLHeYZL8J2USWC41ArK/uayIxgBppoTBtzqatg4TPYUD/D4UpKuS7UNpFObskoR5RWADSB5SenrPTh0rUk+vnKKKw+3Kp/MzUVQSSB2eC7v2zy2MZzmQKHt5zS234pbvSiBeTj7EEL64njQObSHgKEHxLTncb7muQJHFxta9RI9hvBJyQO0C95U2AgWxldrDcchR5M5ldoe0/3m/1kVA7+ivmHz17xbl1hRI3M1k7L5Snvlbj1gwKNA4C79t0tLGpTcksjjjgwO+5R/SXdUF93Riz7/nSNgtbXTOoIZ15n7TvoZ85v03uuvyh2KqJUw4vzOI+ngnb676IEVGOaJ3JxjbyrUgJOVdLDgLGTtBAzPPxfC2lWfwYs9OU+ReT3HzOMJyuZM0O/um3v3Ey0rbQwuSRZJZxZ6wYjjIr88LrrMCC8dNR2gfAl X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 6:8e5U7zvRNXbIVgMT1NNRUU4Hyhe/Mh+VNXkajm3si2FWJVURkSzgkfB12iUiO89aAdFQPIFlwOmCqlIfbXbbscrjxyaSY3rh6Qlpcc1uvdQohm4RHkfIBe50V0WhEiBQIiIrEBAHsI+hElmhqfJwmHD+FbXZePS2IT4eJMLsYXHV0LTy+EFzjv9uxy8k3Bne0DizFxsnsEdUpLkCqXHFfO2fUPLUFPHiWcVyBe3G0TEASywvKuBrttbiqvJzYza98ZR7e6BJp2GPyhcWbad7ye3XJpUk9X4qaaMzeawJQf7Z7GN0gEMkKxIj5l3jJzjvYqZCumW2+xKG920SXUYqug==; 5:7JH3LUWJs8X60VVgysg0pIZygm1lnEIIRvDqLY8GLtMuTmBu4DsHuhpMVWXC07MTSQHC/BWhx/XDEYU5P9kV+ovednYeo3o/tnUvRNB29w1JxHp2sUIYbDtyQrChTHsaTNK0MjeWFj0WbgxUmy6GfA==; 24:TQl3lJC5/rWucaAqxrshZdBXtjQT6Ch77LzjrYoJV/+pRkFYFGGzpo1GIVXpIRuxoJPA4wxk/BkvriraCKD995YA4s+4CjZkyXN/mep9VOg=; 7:9JIR/1cDAEuDIPHTab1EgTsgmy/WlrtbwRcX5VROfvlh1nv9h9pnPKOYy/AX7/OC12x1nmoYk6AqBzaUN8yN8gZOQLxpUZ3dA1Wv5Gq2whA0ANXCnZO+jMVsTy5cL4MoZhGjzUKWiU8YZy4nolpXPqyMzeijqKrxFI2Zj1NQabrY3uYjHzxTpWxIdKGd1chRUGAecKM7lYyXw5T7nVoGCJDy7UmtSCOYYR6Y+notzB8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2017 14:52:28.7776 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2129 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org From: Jayachandran C Add the input frequency of 125MHz for the ThunderX2 I2C controller block. The ACPI ID used is "CAV9007". Signed-off-by: Jayachandran C Signed-off-by: Kamlakant Patel Acked-by: Mika Westerberg --- drivers/acpi/acpi_apd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c index 17a1eb1..93acc9b 100644 --- a/drivers/acpi/acpi_apd.c +++ b/drivers/acpi/acpi_apd.c @@ -106,6 +106,10 @@ static const struct apd_device_desc vulcan_spi_desc = { .setup = acpi_apd_setup, .fixed_clk_rate = 133000000, }; +static const struct apd_device_desc thunderx2_i2c_desc = { + .setup = acpi_apd_setup, + .fixed_clk_rate = 125000000, +}; #endif #else @@ -170,6 +174,7 @@ static const struct acpi_device_id acpi_apd_device_ids[] = { { "APMC0D0F", APD_ADDR(xgene_i2c_desc) }, { "BRCM900D", APD_ADDR(vulcan_spi_desc) }, { "CAV900D", APD_ADDR(vulcan_spi_desc) }, + { "CAV9007", APD_ADDR(thunderx2_i2c_desc) }, #endif { } }; From patchwork Wed Sep 27 14:52:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kamlakant Patel X-Patchwork-Id: 819205 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="emxR1Zhl"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3y2LQZ6qYxz9tXs for ; Thu, 28 Sep 2017 00:52:38 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751293AbdI0Owh (ORCPT ); Wed, 27 Sep 2017 10:52:37 -0400 Received: from mail-sn1nam01on0064.outbound.protection.outlook.com ([104.47.32.64]:21856 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751856AbdI0Owf (ORCPT ); Wed, 27 Sep 2017 10:52:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8eDkXi/BKtdGUvPcaNxdsOIejENPCda1Boz8xJrwBTo=; b=emxR1ZhlMTb3Hvd2MhvLp/Fy/EpP/8WK5BPPagtLAF/24GC40y6AJy+tOqc4CIhUDUDCk/NL79/KGJz/HCrJBg3DROqqlPuNI3HY64RpJ8AXg1NeVsTC1t8jxaHGWwWQotZpHAO4XllhOK/xUC5oSDOb+jpGeJbqoQhWeQrgEVw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Kamlakant.Patel@cavium.com; Received: from kamlakant--T110-II.caveonetworks.com (111.93.218.67) by BN4PR07MB2129.namprd07.prod.outlook.com (10.164.63.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Wed, 27 Sep 2017 14:52:31 +0000 From: Kamlakant Patel To: linux-i2c@vger.kernel.org, linux-acpi@vger.kernel.org Cc: Jayachandran C , Wolfram Sang , Mika Westerberg , Kamlakant Patel Subject: [PATCH 2/3] i2c: xlp9xx: Get clock frequency with clk API Date: Wed, 27 Sep 2017 20:22:22 +0530 Message-Id: <1506523943-8632-3-git-send-email-kamlakant.patel@cavium.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1506523943-8632-1-git-send-email-kamlakant.patel@cavium.com> References: <1506523943-8632-1-git-send-email-kamlakant.patel@cavium.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BMXPR01CA0043.INDPRD01.PROD.OUTLOOK.COM (10.174.214.29) To BN4PR07MB2129.namprd07.prod.outlook.com (10.164.63.11) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2fb33e8c-8371-42a2-94f3-08d505b76267 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BN4PR07MB2129; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 3:vlZCfrae/Mt3UY7Es8dTj2DS58LSx5vjb9n5aqA9grbUviMBGDCFhtGYIMVAbheMenUuJSDw7tt5dOjGzTFGGA5fkw4SHPNuq7lbnas5NHJPE2Vv+NBEl9XpI5XK+48bYYNpWjlb6m8jXxR9DYNqHw1skSPVEHMgMwT8X1Zb7GckluPk3PiH1y42SUUMih3zT0VSYKAtuO02jiuxSAHINf1YyPj/h0sWFpGYueFj9JoBsmKCC8/Wb1m6eNRpsyce; 25:1f8c90QaMPbxqdwfe3bsJbfkUBF36ns8uPIybCzM0eTBM0YyrdJkCEeotS28+Q5e9udRqqVc8MTe3psIfdvY3iQRK91LbDWwOfHOIh8dU7b54iW/ycYm/HUqkGQQMmqMZ63ZuVZ+qSV55hIupwNivhTEadCuhgmTrnBE5zjDQRs9gbQIXna0W+842fIHn6DpYZrM5nmgNz1pXPXwP8qYYHjn+oPtLXEXqzBoLBY/ZgNOryrL9eo3xrQgKuxGrOyDWDqeTf+dVETLDC8MESFwvqUQdSYuzxWU4EBdFhZWtg/N6s+H58Bx5EFIWJgCPvDJXGty3GYYuaDDY70VJcGROw==; 31:cKXthY5LQgTvjdMAnxzDmNzI4qlgcjf32WslhntV65RZXZ9JEpqaoBxVWKwnnFVH7v0FExGmP79KlFZIAsInkEBfpc0b+grEqc+fkgGBO2EPj7zcNhpYNShDVowIicvqZxIj65pekfFhHmbx/VegVLQhj6o9IumoggT6qZk/lzeJU22x2WPK10l9BO7vBWRM0d/PYX8jltMy5q4uvczLMD3mUY/htbTzcHmB5gekCMA= X-MS-TrafficTypeDiagnostic: BN4PR07MB2129: X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 20:vGAbYDrLjETDzQld+91vPhhyONY+qxCKB6vhKdj8pqaUl3hKLYzusc5uL99U0HUQO0R8ZQPYy9IkdSy8XBq1O577wdMqgUdpYgTNinUrp3v1zIXYCzHYow6iKY5nOi9rJf5de/sOMuKrHTFVyj48GLWxttJY6Ju1UclRKAdghkG1MdqQCKV9gZy+IxyyRhvlDn4SFAZsv6S6sPlR1reyEIhauFQbRA+Jt2caBntV9bNkOxcuSulxLO16GW5dL6tw//9AsUBO66cShLi0N4Y/mzmjk0wBfLo5aCb+zMvwrC4dhdbO8uXAgd8ZvSyU0cZNfHmFpCesYu4/TV0Zio/kDZ+82uYNM3bInXG9TULb48Sl0C+DpxWUeo46adYhv//8fQd6WlU/2r7lwzNl4DMZu8kEgvoncA6VB+hfGyZQgc5Bmm+pWWwDx1BfEarfvx6DnMaBELTlT60FRsPFnDsgAguHmNkDSfkwrlIlEMdpeY9G/MhtW94z1iA6oGjv+85M; 4:HBYsyFlAFz92MeuHTNcc6g5sszrroeqyeM9uwZRYttNVJ0zs0F48GRa6YkjVyWouuTsxVBqW/0dVRA1itwLwnSS5IH1/Z2aNFdCfjj1/ufStD04309BKi1KlFAwPiaKbLUMk9efKT+zFoMnyT81JtMsWlgA5U/AZxOtWEvPVWts2M4mQ5gaqffEHjzVSt8ZT9Wuy3EQOsUOoYGbcw7B/ObavF7pF54L5/xEHZ5rfL2X0rRlhg/X8m8vkgp+b1QF1 X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN4PR07MB2129; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN4PR07MB2129; X-Forefront-PRVS: 04433051BF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(199003)(189002)(2950100002)(47776003)(33646002)(48376002)(8936002)(66066001)(68736007)(305945005)(76176999)(50986999)(69596002)(5009440100003)(54906003)(53936002)(105586002)(106356001)(50226002)(101416001)(25786009)(53416004)(6512007)(50466002)(16526017)(6506006)(81156014)(81166006)(8676002)(3846002)(6486002)(6116002)(16586007)(6666003)(5660300001)(4326008)(5003940100001)(107886003)(36756003)(316002)(97736004)(72206003)(7736002)(189998001)(478600001)(2906002)(86362001)(575784001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR07MB2129; H:kamlakant--T110-II.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 23:3mJ+GsDJUeGZjOAqmgaIuBWJtzZwmF1/otHiZIlYtv3WISuXfLIRnWWWEVNckdqXfaAczp87nXVaI5FxTcesZNqY4fxQo/CrFKHvh/mcmnK7FWyjra5BJ5k9cOJexe5D69+1W2aoTrvIzVCEqg5aZTI2+hJkiHjv5nwzRdssIKQZU0JWN11FHoRewb5io2+ddNkEiJLlRq4UENp3d9fIAV/E4Rg+yrsIaJ8Ymc9zoJM51L52fcT3h13FtbFfPtcO89mGwltyxDLzpbFlt+tQv3Szev3lBoMja2Jf8pe4fCV0ehVYeKZ2CYqxZ/kwtv0u7Q9BvP3VQ7inMpmS//K77+Uf/Nq1guWyAk0GcpOfBfloSjP9peoVRy2Am4eaKJjVSVxZsEI9z+IVoDq11oJsgbIc/7+i9KDf0G/K7VwQzmO2ErnxUCisQeO2lal700lmmGxB1g9USkfDiZ9aamCCHTBPcR7k8fRZMn/QtiyKRmju+InPyli20XHJqyWuT16/AfUVt8nsyk7MIixGxe1YeW4oI1qSOwNHtF7Mh+OaBzuVdLyloq0HSOoMjBLgQTXO/khI8c4iJOUz/C2r5IQPiFdVuvqjygMiNf/NulWMmy0eXYklxQPx9kIeq89PtVURdlP7YwcpCX++Ap1HG18U6o34lcDQmeYYNVXxHBmZ2uNT3qH5soaGycagyHaVlmHSSfX3VEO0pJhlbaT6Tu75E90BdgANqUJnYHMJ+pX8X1mBePwjJc6xtJsL4qsqM6/3Z/qaYqKqW6V6EgxFhaxn9CNIrYB6aU+7YzCxTNDFAvP/rKUzRms9WpM0oSN3HoySwYv1qeK6ympOg0TLjYWg2b370N8QHrjRrmcYJN4e+itfhcwY+Z1XIfxrA+G/5KZw7jXIPa5IOtiSj7CsZKaX4/jWUY66ZqwRNP6ZLp/L+Misqh2gXfId3RNUhQc/YJXr0J2uKJWpw6BZj6EhFVwkU8oEpYSQ3IopWIdvE0R5XB1D+FvVsx7HgmfwwmIMJrmFlbrvjVwZ1nxoV4JC/98rCLFZPUKOxnH8gztP+bNPphWjlKdPY/8XTfsrfRibPKr3GdbijSTQ/aK7xbXZwt4R/ayLMji220yenABdI3sLlJy7SDuf3lv6DE1UNovpavSVgBs0GtJPnPrVt56F//P6unHteDBfxeA4B+jhbG/dihNHwtWiZjyro6EoVimvTuWb X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 6:GrLOlCjIeLJfnR3rs95E02j0Wt1g4hX/abZ1zL2mq5IZgEX492g+7n0VRSeKcy14PA5thyUJ3My2q2oxZiJk1M0Fs2b7B9Zj6LVBVFQl9A8eUVmUjH3J5gZfxYCzJxCf64fCfOLq/E5CwZUhdbNaOTTMk3jlqaFDV9cL1Qxih7xn3mqnKnC2zJpNwnLo+wuihf0z+qNcXTBfsNQpX5fTM0eRF75TMtPg8CJvTeCzmY0FuE6zL42vknjo6RfuqwDngmgPyuem6uPpE25RkpGSd5n23OSSdVaqawtKu0DxdooS0W0CHuALsCvYt/+KpgbCLXjEZYtbZk64ifZutpW8sA==; 5:9j7ezTd1z5awMVTlQmuA8aNVssPjKp2fZg8p8BKHOSxxBclN3fR3yFuFxsYaY3up5J435VDatd7J+tL3U4iltzb0/t5BXCbSBZNQHWzif2SYDOVstykj1KF9K1ntaQRxTh0/PJtDBtrlUbscyPRFRA==; 24:Z55aEhgginrLXUDpadSc4yevAtb2vafQnlXons/r5E6K8mUWeFIZ2eqwa4n5D419CQxlsdaDOlxInoWX+rtqmKXJSLUobX5lSA/8hUsEP/0=; 7:0ZeAZKg2K5+J1y7bs+yTtxcSBJZQVkpAgYUKZ1IjoEdZXlKIAQDJ+/8k91ONAlrlR7d0orb06qFXpvelYvrseYclrLOrjUMm6PEgoL7nrkreETyyTGuMF2VRJobPy6AiIkSDrDpC77I7OPH/t2w1tpbA/NecOkI526otW9Pp00zwi9zXGB85EipdkK8AnCwETOJb+jckmiPtiKEQjcGKR9lDfTHMub864ar2RmaaQZc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2017 14:52:31.2308 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2129 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org From: Jayachandran C Get the input clock frequency to the controller from the linux clk API, if it is available. This allows us to pass in the block input frequency either from ACPI (using APD) or from device tree. The old hardcoded frequency is used as default for backwards compatibility. Signed-off-by: Jayachandran C Signed-off-by: Kamlakant Patel Reviewed-by: Mika Westerberg --- drivers/i2c/busses/i2c-xlp9xx.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-xlp9xx.c b/drivers/i2c/busses/i2c-xlp9xx.c index 6b106e9..f0bef2d 100644 --- a/drivers/i2c/busses/i2c-xlp9xx.c +++ b/drivers/i2c/busses/i2c-xlp9xx.c @@ -7,6 +7,7 @@ */ #include +#include #include #include #include @@ -84,6 +85,7 @@ struct xlp9xx_i2c_dev { u32 __iomem *base; u32 msg_buf_remaining; u32 msg_len; + u32 ip_clk_hz; u32 clk_hz; u32 msg_err; u8 *msg_buf; @@ -213,7 +215,7 @@ static int xlp9xx_i2c_init(struct xlp9xx_i2c_dev *priv) * The controller uses 5 * SCL clock internally. * So prescale value should be divided by 5. */ - prescale = DIV_ROUND_UP(XLP9XX_I2C_IP_CLK_FREQ, priv->clk_hz); + prescale = DIV_ROUND_UP(priv->ip_clk_hz, priv->clk_hz); prescale = ((prescale - 8) / 5) - 1; xlp9xx_write_i2c_reg(priv, XLP9XX_I2C_CTRL, XLP9XX_I2C_CTRL_RST); xlp9xx_write_i2c_reg(priv, XLP9XX_I2C_CTRL, XLP9XX_I2C_CTRL_EN | @@ -342,9 +344,19 @@ static const struct i2c_algorithm xlp9xx_i2c_algo = { static int xlp9xx_i2c_get_frequency(struct platform_device *pdev, struct xlp9xx_i2c_dev *priv) { + struct clk *clk; u32 freq; int err; + clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(clk)) { + priv->ip_clk_hz = XLP9XX_I2C_IP_CLK_FREQ; + dev_dbg(&pdev->dev, "using default input frequency %u\n", + priv->ip_clk_hz); + } else { + priv->ip_clk_hz = clk_get_rate(clk); + } + err = device_property_read_u32(&pdev->dev, "clock-frequency", &freq); if (err) { freq = XLP9XX_I2C_DEFAULT_FREQ; From patchwork Wed Sep 27 14:52:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kamlakant Patel X-Patchwork-Id: 819206 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="RL1Rl3Sl"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3y2LQc2J6wz9tXs for ; Thu, 28 Sep 2017 00:52:40 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751929AbdI0Owi (ORCPT ); Wed, 27 Sep 2017 10:52:38 -0400 Received: from mail-sn1nam01on0064.outbound.protection.outlook.com ([104.47.32.64]:21856 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751907AbdI0Owg (ORCPT ); Wed, 27 Sep 2017 10:52:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=S0oM8xmhkfepSbsrK9crhxoZONv0q2YmgHWrKHkpx0o=; b=RL1Rl3Slb3wTBb3Q9PMVOBaLNYvAPZJzmL3SiKFKxQhbcE5/CbrdW7wu1smZQDIu+DJG4np6Kqp3rsx8F4cmF5RawT2SG9U/H9ygzUtrwv8Se1nXL3lf3WWyXMF6fhrFizBZnHad5dIJExItdS2+2IUQL9ZDHK3qwsanG/8ZBSE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Kamlakant.Patel@cavium.com; Received: from kamlakant--T110-II.caveonetworks.com (111.93.218.67) by BN4PR07MB2129.namprd07.prod.outlook.com (10.164.63.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Wed, 27 Sep 2017 14:52:33 +0000 From: Kamlakant Patel To: linux-i2c@vger.kernel.org, linux-acpi@vger.kernel.org Cc: Kamlakant Patel , Wolfram Sang , Mika Westerberg , Jayachandran C Subject: [PATCH 3/3] i2c: xlp9xx: Handle I2C_M_RECV_LEN in msg->flags Date: Wed, 27 Sep 2017 20:22:23 +0530 Message-Id: <1506523943-8632-4-git-send-email-kamlakant.patel@cavium.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1506523943-8632-1-git-send-email-kamlakant.patel@cavium.com> References: <1506523943-8632-1-git-send-email-kamlakant.patel@cavium.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BMXPR01CA0043.INDPRD01.PROD.OUTLOOK.COM (10.174.214.29) To BN4PR07MB2129.namprd07.prod.outlook.com (10.164.63.11) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4fcadff2-dc98-4e63-7499-08d505b763c8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BN4PR07MB2129; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 3:0LcsAsTpOiFiRBr2hmtn7BqiEB2vCov6EuHnCbwoY8gcXJUnDuQ2+v+4h8HcLgiqBHaGs9/B/vK6A8oEbnZJQJUt0oBCh7f5u4LRJheIpNR40TGvEjktZGdIk/TOOqPJZ6R12rEFQdqE8WC2JA1a2HY5f2b6ZPadWVLnnP/zbqZcujt5RFWvbqDJ5Z3RBYWVP/omuyABm6yzeQIsiLyFJKh+JEXBmZUd1DAJryJZbT50Aayf6JClO9CulQF0psCj; 25:tWSqQEhX97Ri8vPoXZ+rDp+dB1dqCst/IeD78ksKWR5CWCKl+4xh+DttlHMUuwos8d8vLLiPYdoUVsrDl+c/QhkxDqj5Qdquhp15Q5MHvwcwHubKPhgFZK0rlbUTgLbEHficJOI0QS5fbprlQ1V1zc7XK4y34N6iDzH9ofhLYjMEuA14IyClq1X5RPTkde+/DlIMiG6a8KGZXotCYudDaQoItw43LicwndsXW5LKBhj/zCH6boW1SGV1KKAuzS5Vt0ERv780v4HZtD3jG+JxqZq/kiPAYh+VcRQajGvPsEO7Rw26c3tkD7bsc+xJmSFYgttf0/mhSnTxZVy+jtWw/Q==; 31:ouicxIFWWE/bg47eb0UE+T+2hSjGq+upu3/GyCBxA2E98BtAgb5xDCYnoStWY4dItVzlTBz8z/CNR6ihb8+sZBDERHbNglseLCupIj4skQ7eCZlUGV0wYrAdvvz4mcOdSWwnnzAHr1VD/4YkpyvnY1iQQ7S3fTROB/ZhbUB5w7fYd2a1tRa5LAXVZBpH2YzpWsHbOLHdr/h6GXP4TPMwbf0VtKu+IEABqiyYaU17mxg= X-MS-TrafficTypeDiagnostic: BN4PR07MB2129: X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 20:TVOkI3oyHgTgTLwM2Kugx6sl1VJCxbCz84ev9iD9MCctL50SusVbTmh1MgUVaJDwqv0ZZgxOJURsH8bbqhAGguBqTzmqhBXAzQBcvv89QcwuntmmMpGmjwnpmPj4XhCjficGuxNtI0+v47FZhh/j3bRCBkMmfS0CWIHj7AwN6o8duDagWaxgZZzhi+7m1OC6RCqlmhdLhv5eXDMWum03PxEpN4RRw77PMqeRzfV+9TYb+w3WbTKnAC1Q7ATSeKLfrdoW9kjxak/1fwiKOrfrs3pjJAmqX/iSdHtuPq9Pmy5Wsa/vHOiT/+VBA79oDM940KBoGMUJj+XHl3WTtoiZRnGSSr0Mx6hA6Ns0B6L1YniKSfYFrjwk/J8S+tkg5ygsRTAZ6HkNREOdgkd+6aK6Kmx9oRafOlBDVq6dvzqWvGHSzZGwKN3s+EukfP5XUbEEAniT1CuO6UkX+btpb4vvhyGE+Ar6GpaoSvjEwIKcsUdSZc9SisVyCKgS/4V2mYW0; 4:iK4Sdvnw5qX5/Yh587BB8f6KhANCvULoLpCczLtWgokAEL4BrsokhUms0IOWIQszjIsmCoy6ji5HMFUkglkpUFGyBDXk7gviQPDc0xsN8oVksM74deXAv96idBiqk5ENxpOBfgF8JZnAYI9h3z++vLRTFDl8q7CczBueYgLIRILuGjHe6cazMm44ys2RdPDYSRV0teae8/uhmDEXL/tH9U4BM8qrWH9U3506E0Pxz2afhKPzMZuTnH6Ok1AaiU/C X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN4PR07MB2129; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN4PR07MB2129; X-Forefront-PRVS: 04433051BF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(199003)(189002)(2950100002)(47776003)(33646002)(48376002)(8936002)(66066001)(68736007)(305945005)(76176999)(50986999)(69596002)(5009440100003)(54906003)(53936002)(105586002)(106356001)(50226002)(101416001)(25786009)(53416004)(6512007)(50466002)(16526017)(6506006)(81156014)(81166006)(8676002)(3846002)(6486002)(6116002)(16586007)(6666003)(5660300001)(551934003)(4326008)(5003940100001)(107886003)(36756003)(316002)(97736004)(72206003)(7736002)(189998001)(478600001)(2906002)(86362001)(575784001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR07MB2129; H:kamlakant--T110-II.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 23:ah8pSEsl+MQ37Y/BmZS+sy3S/M98L+feKBzP3CERQqFRTOBGHjLrf89RbJujNnU1Qhg4ZoYVQoMsRVWChIMISFDca9XfaPBLxuNw/sG5A7dWnlUrTpDjIgZLpcV34f8aLCbbQSwmHLipmlLWKjn2AdDm+QvQq1+F6F5hT3UW2geOc5rsf6dWo1+pBQNNxvyrOqnCGGYqBlAcLbVarQ1mkSpefX2BMV3iHTukZlV/yxPVJKjdp746mLbghMf8eKcLH9eB+jzUWJ87zIbDWHZXLNnhXhxYd5j9BgZXcLrSltqAvp+vw+sPKyIDs3xhR6bh2yF/xOKRtl2cKye6xtUna/RCI4oewEUVBoLAW09Bzk1iyAxDXqJestNYdzgozrnwXsURoQjehp0ePJsTC92S1AwPfmRYoQEbVQHOJBx6eNSSA6hBtTXct/OYnSCo3ChcRwi1/iSe9T5jltoIPOyJNLmtaTTW7JQjNeTzllFaMPgDSgOQ59HDc6ZBC16f+MSgJjVqWmWJqXFhv/XLsXY5jObWRP4ypEE4hLTBtSsQlLT/Qwtq6eN2JeqWiIqT+rDd5N9awDtBeXgawmcb4Q9B3xMWdANEBhwYJIsejBRe4l3BJdq7y1w4bhVgAy9whBY7DqBtoz48U0Q5CRDxmZ0MYEglSNyrOelzE7dxJH7GzE+4UawbW3usQl0yjlh/hvYOWuUoqBHSbELqHv1P5Jhoa813cpslaTg+9Ovgcmx9gcb/hOchzAJDqFzHSffk+iIhsKbyEt8Hxyn5yZqVYV8oLAD6gQme6tlj/52pv2xU13q1lLsLCeSbE9x91UGcLgDTtN0PAlc3Qna6OMqiqiI9GGra00lPf2QoJFXgdhR5M8ZMqxDGJajKP/NnNtf3W/1Pj5E8zvKxuu8XT52HKlyRmKrZJI4aP/HLOFGPk29DL7S6zbV8G9F1cIJFl2/YNVe5Pmzkm24NtBEBztHcImnNhBzlRdflTWrjD9BqSY/zFrq1KLB5bPEjljj79gz2AD0VxgmPyxFGROGo246PBEbh1NKojMFSSDYpLi7ULjzOt32ISHfb5xLqXEBiNa20KPXM8ls8ac6rzq6nV723I1EE6yMG3uNzscW8jzV99CUNxAMv7pk99u0Rtq1efuoYXbtNCb/RrUU1fRfYHdS8iZ34bDBxCMo2ZpFqgT1fF6DOWeAmnl3/uWy6LqqUdFGq4I5B80pRTTj6M1FNOZFPozuZXA== X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2129; 6:+/4lr22yCToZZANf0SPbypR18Pr/k8L55MlEFlhxrqColSglyW+SOtPWSk2/tBzMrR30IH7ScAYFvUsNMOUMa8gFSkKbeUIUidzuo6vKGdx+LrbMeB969N5nKcO653pmPlUIrpMqDLP4HBVbIuLhFrPxUA7N497tKfH63HVj7PDu7wDRn3uWA0yXz/nSRh04L+1V6ayUcA8rAWYcehEtzIDsty+rWGsfnOonwUQbsSVef0Hr144CI1ExIevJyAIahHSknmtV5fqr9BFjW7vKcWLdpJCvL05osdTXpARPU++faONVZPRsiwTjtxHHLjkm3FVkm60FzbGm1fon3wpWxw==; 5:ZQ+5LgGxidcb2q0D6hfZFO4l4rEWgrAD3CvdHHqL2vLD6h6qaukT0nTGQkA7m1X6jz/cLyDkKCImH7jnuvMPU92h9sUsDrmBtzmMML7ubJYHTlJmRUOiiIAKkQ+63JFrHyCuh0M7Gqb2kmQhdOK0Tw==; 24:6wcuT/2KBeyS4zP54vbCFq4P4otqzsDhRGbzxuCgjgI5VS4v9MmxZV23ScwrS1ipyNE4Fgh7gStz5IC0NjfcaE+513ph6712Qrp+54h+njo=; 7:faoF423VbempWpoDK+H4+JIAcZxVNQ6AzVEYj1d9+g1pGN0K/bI6CNizwUSEs+bDWrSVjgwEewN3aJBswWQjxdl/sojMCnhY5HUJNLsjPWYZktCeBcBB5YsfKjBT2kmIenaXhVlWzWxebxCre1Qg/NihkpqJMAMInLzwDjY++t6bKEd6D2f0iDaQ9dzwwfdHmoL22exXWlzutrsg1RP6fmvrT+cNt7PxPWaphd2So98= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2017 14:52:33.5277 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2129 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org The driver needs to handle the flag I2C_M_RECV_LEN during receive to support SMBus emulation. Update receive logic to handle the case where the length is received as the first byte of a transaction. Also update the code to handle I2C_CLIENT_PEC, which is set when the client sends a packet error checking code byte. Signed-off-by: Jayachandran C Signed-off-by: Kamlakant Patel Reviewed-by: Mika Westerberg --- drivers/i2c/busses/i2c-xlp9xx.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-xlp9xx.c b/drivers/i2c/busses/i2c-xlp9xx.c index f0bef2d..91c0369 100644 --- a/drivers/i2c/busses/i2c-xlp9xx.c +++ b/drivers/i2c/busses/i2c-xlp9xx.c @@ -82,6 +82,8 @@ struct xlp9xx_i2c_dev { struct completion msg_complete; int irq; bool msg_read; + bool len_recv; + bool client_pec; u32 __iomem *base; u32 msg_buf_remaining; u32 msg_len; @@ -143,10 +145,25 @@ static void xlp9xx_i2c_fill_tx_fifo(struct xlp9xx_i2c_dev *priv) static void xlp9xx_i2c_drain_rx_fifo(struct xlp9xx_i2c_dev *priv) { u32 len, i; - u8 *buf = priv->msg_buf; + u8 rlen, *buf = priv->msg_buf; len = xlp9xx_read_i2c_reg(priv, XLP9XX_I2C_FIFOWCNT) & XLP9XX_I2C_FIFO_WCNT_MASK; + if (!len) + return; + if (priv->len_recv) { + /* read length byte */ + rlen = xlp9xx_read_i2c_reg(priv, XLP9XX_I2C_MRXFIFO); + *buf++ = rlen; + len--; + if (priv->client_pec) + ++rlen; + /* update remaining bytes and message length */ + priv->msg_buf_remaining = rlen; + priv->msg_len = rlen + 1; + priv->len_recv = false; + } + len = min(priv->msg_buf_remaining, len); for (i = 0; i < len; i++, buf++) *buf = xlp9xx_read_i2c_reg(priv, XLP9XX_I2C_MRXFIFO); @@ -230,7 +247,7 @@ static int xlp9xx_i2c_xfer_msg(struct xlp9xx_i2c_dev *priv, struct i2c_msg *msg, int last_msg) { unsigned long timeleft; - u32 intr_mask, cmd, val; + u32 intr_mask, cmd, val, len; priv->msg_buf = msg->buf; priv->msg_buf_remaining = priv->msg_len = msg->len; @@ -263,9 +280,13 @@ static int xlp9xx_i2c_xfer_msg(struct xlp9xx_i2c_dev *priv, struct i2c_msg *msg, else val &= ~XLP9XX_I2C_CTRL_ADDMODE; + priv->len_recv = (msg->flags & I2C_M_RECV_LEN); + len = priv->len_recv ? XLP9XX_I2C_FIFO_SIZE : msg->len; + priv->client_pec = (msg->flags & I2C_CLIENT_PEC); + /* set data length to be transferred */ val = (val & ~XLP9XX_I2C_CTRL_MCTLEN_MASK) | - (msg->len << XLP9XX_I2C_CTRL_MCTLEN_SHIFT); + (len << XLP9XX_I2C_CTRL_MCTLEN_SHIFT); xlp9xx_write_i2c_reg(priv, XLP9XX_I2C_CTRL, val); /* fill fifo during tx */ @@ -312,6 +333,9 @@ static int xlp9xx_i2c_xfer_msg(struct xlp9xx_i2c_dev *priv, struct i2c_msg *msg, return -ETIMEDOUT; } + /* update msg->len with actual received length */ + if (msg->flags & I2C_M_RECV_LEN) + msg->len = priv->msg_len; return 0; }