{"id":819205,"url":"http://patchwork.ozlabs.org/api/patches/819205/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/patch/1506523943-8632-3-git-send-email-kamlakant.patel@cavium.com/","project":{"id":35,"url":"http://patchwork.ozlabs.org/api/projects/35/?format=json","name":"Linux I2C development","link_name":"linux-i2c","list_id":"linux-i2c.vger.kernel.org","list_email":"linux-i2c@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1506523943-8632-3-git-send-email-kamlakant.patel@cavium.com>","list_archive_url":null,"date":"2017-09-27T14:52:22","name":"[2/3] i2c: xlp9xx: Get clock frequency with clk API","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"a54c832421b4ea70af4696066617aa79ff86820a","submitter":{"id":72456,"url":"http://patchwork.ozlabs.org/api/people/72456/?format=json","name":"Kamlakant Patel","email":"kamlakant.patel@cavium.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-i2c/patch/1506523943-8632-3-git-send-email-kamlakant.patel@cavium.com/mbox/","series":[{"id":5383,"url":"http://patchwork.ozlabs.org/api/series/5383/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/list/?series=5383","date":"2017-09-27T14:52:20","name":"i2c-xlp9xx: update i2c driver to handle I2C_M_RECV_LEN flag","version":1,"mbox":"http://patchwork.ozlabs.org/series/5383/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/819205/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/819205/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linux-i2c-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-i2c-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com\n\theader.i=@CAVIUMNETWORKS.onmicrosoft.com header.b=\"emxR1Zhl\"; \n\tdkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=Kamlakant.Patel@cavium.com; "],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2LQZ6qYxz9tXs\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 28 Sep 2017 00:52:38 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751293AbdI0Owh (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tWed, 27 Sep 2017 10:52:37 -0400","from mail-sn1nam01on0064.outbound.protection.outlook.com\n\t([104.47.32.64]:21856\n\t\"EHLO NAM01-SN1-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S1751856AbdI0Owf (ORCPT <rfc822;linux-i2c@vger.kernel.org>);\n\tWed, 27 Sep 2017 10:52:35 -0400","from kamlakant--T110-II.caveonetworks.com (111.93.218.67) by\n\tBN4PR07MB2129.namprd07.prod.outlook.com (10.164.63.11) with Microsoft\n\tSMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.77.7; Wed, 27 Sep 2017 14:52:31 +0000"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=8eDkXi/BKtdGUvPcaNxdsOIejENPCda1Boz8xJrwBTo=;\n\tb=emxR1ZhlMTb3Hvd2MhvLp/Fy/EpP/8WK5BPPagtLAF/24GC40y6AJy+tOqc4CIhUDUDCk/NL79/KGJz/HCrJBg3DROqqlPuNI3HY64RpJ8AXg1NeVsTC1t8jxaHGWwWQotZpHAO4XllhOK/xUC5oSDOb+jpGeJbqoQhWeQrgEVw=","From":"Kamlakant Patel <kamlakant.patel@cavium.com>","To":"linux-i2c@vger.kernel.org, linux-acpi@vger.kernel.org","Cc":"Jayachandran C <jnair@caviumnetworks.com>,\n\tWolfram Sang <wsa@the-dreams.de>,\n\tMika Westerberg <mika.westerberg@linux.intel.com>,\n\tKamlakant Patel <kamlakant.patel@cavium.com>","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","Content-Type":"text/plain","X-Originating-IP":"[111.93.218.67]","X-ClientProxiedBy":"BMXPR01CA0043.INDPRD01.PROD.OUTLOOK.COM (10.174.214.29) To\n\tBN4PR07MB2129.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;\n\tRULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);\n\tSRVR:BN4PR07MB2129; ","X-Microsoft-Exchange-Diagnostics":["1; BN4PR07MB2129;\n\t3:vlZCfrae/Mt3UY7Es8dTj2DS58LSx5vjb9n5aqA9grbUviMBGDCFhtGYIMVAbheMenUuJSDw7tt5dOjGzTFGGA5fkw4SHPNuq7lbnas5NHJPE2Vv+NBEl9XpI5XK+48bYYNpWjlb6m8jXxR9DYNqHw1skSPVEHMgMwT8X1Zb7GckluPk3PiH1y42SUUMih3zT0VSYKAtuO02jiuxSAHINf1YyPj/h0sWFpGYueFj9JoBsmKCC8/Wb1m6eNRpsyce;\n\t25:1f8c90QaMPbxqdwfe3bsJbfkUBF36ns8uPIybCzM0eTBM0YyrdJkCEeotS28+Q5e9udRqqVc8MTe3psIfdvY3iQRK91LbDWwOfHOIh8dU7b54iW/ycYm/HUqkGQQMmqMZ63ZuVZ+qSV55hIupwNivhTEadCuhgmTrnBE5zjDQRs9gbQIXna0W+842fIHn6DpYZrM5nmgNz1pXPXwP8qYYHjn+oPtLXEXqzBoLBY/ZgNOryrL9eo3xrQgKuxGrOyDWDqeTf+dVETLDC8MESFwvqUQdSYuzxWU4EBdFhZWtg/N6s+H58Bx5EFIWJgCPvDJXGty3GYYuaDDY70VJcGROw==;\n\t31:cKXthY5LQgTvjdMAnxzDmNzI4qlgcjf32WslhntV65RZXZ9JEpqaoBxVWKwnnFVH7v0FExGmP79KlFZIAsInkEBfpc0b+grEqc+fkgGBO2EPj7zcNhpYNShDVowIicvqZxIj65pekfFhHmbx/VegVLQhj6o9IumoggT6qZk/lzeJU22x2WPK10l9BO7vBWRM0d/PYX8jltMy5q4uvczLMD3mUY/htbTzcHmB5gekCMA=","1; BN4PR07MB2129;\n\t20:vGAbYDrLjETDzQld+91vPhhyONY+qxCKB6vhKdj8pqaUl3hKLYzusc5uL99U0HUQO0R8ZQPYy9IkdSy8XBq1O577wdMqgUdpYgTNinUrp3v1zIXYCzHYow6iKY5nOi9rJf5de/sOMuKrHTFVyj48GLWxttJY6Ju1UclRKAdghkG1MdqQCKV9gZy+IxyyRhvlDn4SFAZsv6S6sPlR1reyEIhauFQbRA+Jt2caBntV9bNkOxcuSulxLO16GW5dL6tw//9AsUBO66cShLi0N4Y/mzmjk0wBfLo5aCb+zMvwrC4dhdbO8uXAgd8ZvSyU0cZNfHmFpCesYu4/TV0Zio/kDZ+82uYNM3bInXG9TULb48Sl0C+DpxWUeo46adYhv//8fQd6WlU/2r7lwzNl4DMZu8kEgvoncA6VB+hfGyZQgc5Bmm+pWWwDx1BfEarfvx6DnMaBELTlT60FRsPFnDsgAguHmNkDSfkwrlIlEMdpeY9G/MhtW94z1iA6oGjv+85M;\n\t4:HBYsyFlAFz92MeuHTNcc6g5sszrroeqyeM9uwZRYttNVJ0zs0F48GRa6YkjVyWouuTsxVBqW/0dVRA1itwLwnSS5IH1/Z2aNFdCfjj1/ufStD04309BKi1KlFAwPiaKbLUMk9efKT+zFoMnyT81JtMsWlgA5U/AZxOtWEvPVWts2M4mQ5gaqffEHjzVSt8ZT9Wuy3EQOsUOoYGbcw7B/ObavF7pF54L5/xEHZ5rfL2X0rRlhg/X8m8vkgp+b1QF1","1; BN4PR07MB2129;\n\t23: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","1; BN4PR07MB2129;\n\t6:GrLOlCjIeLJfnR3rs95E02j0Wt1g4hX/abZ1zL2mq5IZgEX492g+7n0VRSeKcy14PA5thyUJ3My2q2oxZiJk1M0Fs2b7B9Zj6LVBVFQl9A8eUVmUjH3J5gZfxYCzJxCf64fCfOLq/E5CwZUhdbNaOTTMk3jlqaFDV9cL1Qxih7xn3mqnKnC2zJpNwnLo+wuihf0z+qNcXTBfsNQpX5fTM0eRF75TMtPg8CJvTeCzmY0FuE6zL42vknjo6RfuqwDngmgPyuem6uPpE25RkpGSd5n23OSSdVaqawtKu0DxdooS0W0CHuALsCvYt/+KpgbCLXjEZYtbZk64ifZutpW8sA==;\n\t5:9j7ezTd1z5awMVTlQmuA8aNVssPjKp2fZg8p8BKHOSxxBclN3fR3yFuFxsYaY3up5J435VDatd7J+tL3U4iltzb0/t5BXCbSBZNQHWzif2SYDOVstykj1KF9K1ntaQRxTh0/PJtDBtrlUbscyPRFRA==;\n\t24:Z55aEhgginrLXUDpadSc4yevAtb2vafQnlXons/r5E6K8mUWeFIZ2eqwa4n5D419CQxlsdaDOlxInoWX+rtqmKXJSLUobX5lSA/8hUsEP/0=;\n\t7:0ZeAZKg2K5+J1y7bs+yTtxcSBJZQVkpAgYUKZ1IjoEdZXlKIAQDJ+/8k91ONAlrlR7d0orb06qFXpvelYvrseYclrLOrjUMm6PEgoL7nrkreETyyTGuMF2VRJobPy6AiIkSDrDpC77I7OPH/t2w1tpbA/NecOkI526otW9Pp00zwi9zXGB85EipdkK8AnCwETOJb+jckmiPtiKEQjcGKR9lDfTHMub864ar2RmaaQZc="],"X-MS-TrafficTypeDiagnostic":"BN4PR07MB2129:","X-Exchange-Antispam-Report-Test":"UriScan:;","X-Microsoft-Antispam-PRVS":"<BN4PR07MB2129999EF4771579E877424A88780@BN4PR07MB2129.namprd07.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(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);\n\tSRVR:BN4PR07MB2129; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:BN4PR07MB2129; ","X-Forefront-PRVS":"04433051BF","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(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);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR07MB2129;\n\tH:kamlakant--T110-II.caveonetworks.com; FPR:; SPF:None;\n\tPTR:InfoNoRecords; A:1; MX:1; LANG:en; ","Received-SPF":"None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-OriginatorOrg":"cavium.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"27 Sep 2017 14:52:31.2308\n\t(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":"<linux-i2c.vger.kernel.org>","X-Mailing-List":"linux-i2c@vger.kernel.org"},"content":"From: Jayachandran C <jnair@caviumnetworks.com>\n\nGet the input clock frequency to the controller from the linux clk\nAPI, if it is available. This allows us to pass in the block input\nfrequency either from ACPI (using APD) or from device tree.\n\nThe old hardcoded frequency is used as default for backwards compatibility.\n\nSigned-off-by: Jayachandran C <jnair@caviumnetworks.com>\nSigned-off-by: Kamlakant Patel <kamlakant.patel@cavium.com>\n---\n drivers/i2c/busses/i2c-xlp9xx.c | 14 +++++++++++++-\n 1 file changed, 13 insertions(+), 1 deletion(-)","diff":"diff --git a/drivers/i2c/busses/i2c-xlp9xx.c b/drivers/i2c/busses/i2c-xlp9xx.c\nindex 6b106e9..f0bef2d 100644\n--- a/drivers/i2c/busses/i2c-xlp9xx.c\n+++ b/drivers/i2c/busses/i2c-xlp9xx.c\n@@ -7,6 +7,7 @@\n  */\n \n #include <linux/acpi.h>\n+#include <linux/clk.h>\n #include <linux/completion.h>\n #include <linux/i2c.h>\n #include <linux/init.h>\n@@ -84,6 +85,7 @@ struct xlp9xx_i2c_dev {\n \tu32 __iomem *base;\n \tu32 msg_buf_remaining;\n \tu32 msg_len;\n+\tu32 ip_clk_hz;\n \tu32 clk_hz;\n \tu32 msg_err;\n \tu8 *msg_buf;\n@@ -213,7 +215,7 @@ static int xlp9xx_i2c_init(struct xlp9xx_i2c_dev *priv)\n \t * The controller uses 5 * SCL clock internally.\n \t * So prescale value should be divided by 5.\n \t */\n-\tprescale = DIV_ROUND_UP(XLP9XX_I2C_IP_CLK_FREQ, priv->clk_hz);\n+\tprescale = DIV_ROUND_UP(priv->ip_clk_hz, priv->clk_hz);\n \tprescale = ((prescale - 8) / 5) - 1;\n \txlp9xx_write_i2c_reg(priv, XLP9XX_I2C_CTRL, XLP9XX_I2C_CTRL_RST);\n \txlp9xx_write_i2c_reg(priv, XLP9XX_I2C_CTRL, XLP9XX_I2C_CTRL_EN |\n@@ -342,9 +344,19 @@ static const struct i2c_algorithm xlp9xx_i2c_algo = {\n static int xlp9xx_i2c_get_frequency(struct platform_device *pdev,\n \t\t\t\t    struct xlp9xx_i2c_dev *priv)\n {\n+\tstruct clk *clk;\n \tu32 freq;\n \tint err;\n \n+\tclk = devm_clk_get(&pdev->dev, NULL);\n+\tif (IS_ERR(clk)) {\n+\t\tpriv->ip_clk_hz = XLP9XX_I2C_IP_CLK_FREQ;\n+\t\tdev_dbg(&pdev->dev, \"using default input frequency %u\\n\",\n+\t\t\tpriv->ip_clk_hz);\n+\t} else {\n+\t\tpriv->ip_clk_hz = clk_get_rate(clk);\n+\t}\n+\n \terr = device_property_read_u32(&pdev->dev, \"clock-frequency\", &freq);\n \tif (err) {\n \t\tfreq = XLP9XX_I2C_DEFAULT_FREQ;\n","prefixes":["2/3"]}