From patchwork Tue Dec 27 10:04:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 708901 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3tnsLZ1h9cz9s5g for ; Tue, 27 Dec 2016 21:20:06 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="fRLETxxE"; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id AFD99A766D; Tue, 27 Dec 2016 11:20:04 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id R-Ltffi6cK_E; Tue, 27 Dec 2016 11:20:04 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 32FCCA7652; Tue, 27 Dec 2016 11:20:04 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7E764A7652 for ; Tue, 27 Dec 2016 11:20:00 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LC9DqMjNpXw7 for ; Tue, 27 Dec 2016 11:20:00 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0061.outbound.protection.outlook.com [104.47.2.61]) by theia.denx.de (Postfix) with ESMTPS id 2C143A75CC for ; Tue, 27 Dec 2016 11:19:56 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=q78p4UgljLsWWwMmsmLPf9j24oLfWeXHKU2dLshLV8U=; b=fRLETxxEQEUZEpWJZ3vvas0jVHeGr9Y/U2O/S6bYnBhQ4ap7F5p44rqyJebgbjX8t3YVXgvEv6K1e4w8cwx1OxamF/32qyCMAWMu4LrkiilwnDL7Wm0zVCAi8OTiEWtLNaYZPPTvHp7DtVPb0DUu6+NoYZklV5Xbr7D259KdfVM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; Received: from linux-7smt.suse (192.158.241.86) by AM4PR0401MB1793.eurprd04.prod.outlook.com (10.165.244.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Tue, 27 Dec 2016 10:05:47 +0000 From: Peng Fan To: Date: Tue, 27 Dec 2016 18:04:13 +0800 Message-ID: <1482833066-29291-8-git-send-email-peng.fan@nxp.com> X-Mailer: git-send-email 2.6.2 In-Reply-To: <1482833066-29291-1-git-send-email-peng.fan@nxp.com> References: <1482833066-29291-1-git-send-email-peng.fan@nxp.com> MIME-Version: 1.0 X-Originating-IP: [192.158.241.86] X-ClientProxiedBy: KL1PR03CA0003.apcprd03.prod.outlook.com (10.165.63.13) To AM4PR0401MB1793.eurprd04.prod.outlook.com (10.165.244.151) X-MS-Office365-Filtering-Correlation-Id: a89c9573-1ac9-4d91-4f38-08d42e3feed6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:AM4PR0401MB1793; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB1793; 3:RcQewC9n+M9tgcYNzYQ1NxoxpQxrYMLlh7N6ZiIBKSSCpl/UWBYcog/LtYirDY/f5SnQJO0GenKFC2LH7HKQdPyaAOQdUeEQXXt3gje7wbTqKry2a2nfAMHmDdqbYkZbIBmAVK9V0hEpI0riYO0uwux7leW1vHJT3fYFi6hGxCG6vgLMsc62MVQsjYRCjUtQaxJ+3vTivXJmMpRaI+2r9U2yWso7T5VmfKgXpGjOD12VgGY/dkpljTJBJp2V2AACNaeRki6Mq7fkAJzOVu+WZg== X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB1793; 25:O/ioIXJihEX7T5Tycf/nybuwPKg1n798hlCqxoKMynCfzUohWy/zpzxVIhL1S6LM4HeyxiwPi/ZuS0b3n+42r7HwqX+C8QOxY2lGr25I30fHWPY1HExI0ySK+x/DvUNALo5hu44E1EA8/UWoZpxOE7hv9xbGCR8t4g1T4wUUg01FmJk5dMRhu5ZyB3HJZGDI0feVcSb9/6GeqV4JbtNFjvIT5xIPgNucpFTHpNTghbgHt60XdPCCctuCMQ0d2zvX1LQrxVlW7CZmJVPc6U9uNzIIaviKjzuB1NFcphkkGt4UI04DECcsouvgzIOYNjl5IvFPJwOJhnQdOJJSnxoqrxJbCFJHBDYV5tQB6hhmKeRLCCOF6156fv2CEJRma4+7IsI7KB5XP9//Yh7mIeM8bQQgGlQRazI6x/UxUpnDv3Dn6Ik3MQfDfOiC++gxa5m0rKEBauUOmHHAgSVA8fE8//pf1h6bWy4pBh9jmma1mogAvEXwHsc1oulkzn8oLWgychWIfmQ385+Dzg8fr7QEVx9dtAz0Q6A6NTkSWzUdsLlIOw59aoT+K4eawgmmQ62Az8otMivHhq6X6cK87BbrzVeW0jTA3vQDt/KUPkK+ejZjG+iJwkS8Jj+7lpuGwHEdZV4xah6GLbyqKEWBGuLFVzaUI8QRIxEEDcxa/XcA5G6bsW5o4e5Qe+ABwg0tlZFD5twSx3AKanvCm/B4bnNrnTG3JgyqWSLwTZGdX9j7eUyV6DmYgI+1uPRTRrjHpEy5 X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB1793; 31:kdq0w2xxQmTCcX9qc7ZO++WVDbtNCkCiFnSZUOiRmqP1sRl7OSB/C0K2426Odaswyz5L02A0lDi3CwGdI499HWSyA8aE0q8RFpqRcGRjn3JgmlFRgrBya6tsZ6xwGNeUL6l56DRrm2da3RkAOUiGSslvlQOdQmNIxBqlhfBS8bQ6Rrczdz2nw44oER8Zr0o2vbTtPX/EqHaUFyU908JfqGYRkNxEZ9s7+sSziP2R0H3iNFBHALGMYPpOYmKVVG+d; 20:sR0O2EAMrOjyAh502hp0IfxnG09gadqBtL1xD5zAmBip8qDqmzlhzM7ntCk/r2ZffGXTZBxfNoPQ81gTZpZcVV9hERGpUWiq5hHhh3Qg4yUt5WmvNHhS8wYoyXIFdFoNVMdeBbMel//57moWaeuoWpFF8SQd3+eShI97vc4jzaRQTBajsScBVvhzHvRERpkdzP7HVGICcXMusoiFzH+OQc3SflN5ItJ7iWBBxzPCTegIHQKrd/CTIQpHmovtp8Lzu1bGbhQlWjmp7s5bBoyLThAThvPny2wFW7LFlRh4o3ff8t6l7a8TFrSfCYlj29ik9k2J6M2JxnLKHF1haMRLtM/8HM1Z2/SqrE8KNZN7lwNSQRiUg+iHxItXRaV6jBOs90lfvbItDmU6WpcjMBx9DhsRd7dYtu07DOjpLe1rq+Nfspl2AISlk6d+F2zjVyKF7rKCKkm6jndylal5vCZFB6W2VcQLC40sOc/HwNEs7QWgbb9q/WMliMh54tHispKj X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148)(6047074); SRVR:AM4PR0401MB1793; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0401MB1793; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB1793; 4:pJ9UxUSMgwcEnFPua1cUJoEkoXhZXZK2Er3ox0ntpovbff1UyjGVjEQpEhM1+dt0SqHjmNSzfLGH4Atgv+0fNQBaGCTltjgOzmMM/1yc2yZu6/wJURHVlmPqqpC4a6hJtcNawVVJWIpAVSDhXYmsv8eETOKWgE/66raHNC+Tf3SzuM8aMak1BnfvDOnWqVKKDqevk9teSGxBq4rPtVRrVi0X3/WBkSNjA6bXTgp6f5fY/Ce7LthfvYnnUo70JQu3lm41me7oU+phTshzhnQJX7Qi9mRskO5U4SFydhDKL7RJkMr9b6aoSQvtVRzPzuyekSugwczEqrj7ikAWFG5U/Gz8QtX0uaP0lCg7GkgojNNz8Nbn3h3SP1RW4U4WBSA7JilKUroZTidwD4Ruyb6uWaYz4E7BJ3Xn7GjVGuTYy443bmUeeVr8WIHmKEH77g0BceYtVnnVP+kihy8KVa3EVmHFdDyfubcrVzIIPWaMe7rU782PeojxSmgpqxN38Kp6nwLsU1OnaWJzxRL24nqLDPeACdIzPYdJXtd9/k56qVs1sg9IXWAB2XsiIipXqTQoP5WUmkTUQX3XNOd4jo8og7i6p7LZ+i3cP6qob8phnVKVT2RUK9FeBIQ0CmcU/19oSt1NC8dR5jFuM8f5mITWNg== X-Forefront-PRVS: 0169092318 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39860400002)(39850400002)(39840400002)(39450400003)(39410400002)(199003)(189002)(33646002)(50226002)(47776003)(7736002)(8676002)(81156014)(81166006)(25786008)(110136003)(5003940100001)(6486002)(69596002)(86362001)(68736007)(5660300001)(6512006)(305945005)(6506006)(50986999)(76176999)(21086003)(92566002)(38730400001)(189998001)(105586002)(2351001)(66066001)(4326007)(6666003)(101416001)(2906002)(3846002)(6116002)(97736004)(42186005)(50466002)(6916009)(2950100002)(36756003)(48376002)(106356001)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0401MB1793; H:linux-7smt.suse; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR0401MB1793; 23:aYkQVp1ahTEal/KIjNnyyC/Cx21TwC1xSLtRxFp?= =?us-ascii?Q?jKZHL4nOjp08SGwpH8rfxXLdNtGIv5Jr7nkoDeNL3HkgIdlsPAlTnCvh+D9c?= =?us-ascii?Q?q+Q6wU5kujMVTqfEaIIeAn/1lU0mQgGazOjWk2xx6S+wCs4sjqLCT03cWgUh?= =?us-ascii?Q?Ch8hk23lf5vCqbcFxT1KMbHlm1qN9a3fpzilNebCvFWXdtfg7sOIXBfwuT8w?= =?us-ascii?Q?mdYrkxUBPEIjLcGckCbSbtycWE6tM4r2focG4aDxq/fF/oiQDRlYsXHpbR0O?= =?us-ascii?Q?hfPV+XAByGRZkrUHuXbOn6H5W8Cc09WkWl2QMdOKbF4HppkZhcGoqA2e1d6r?= =?us-ascii?Q?VVvPr6/GvLvkRlBz8HOKeaVOXEM69yE+RjVda/H4f918Pbr3KuYHTiIoZ+ld?= =?us-ascii?Q?GDMMSxvQttUOkvbrPUFEqNwUsLiH8joYBJMQC6e1Oo/Iwb1BoVwYND9a36P4?= =?us-ascii?Q?K5//8Rmg0DN9BtrUXAdSV5X4JMJbyBPxx4vzn0GQyl98jLybPq1lbRFqotYJ?= =?us-ascii?Q?2IyzmpQyb9aHxLdn2Dsq0guUp9Cu/JKdC76751fALtUKLm9skEig3yYOw6X1?= =?us-ascii?Q?2CKeOm1aF4T9KX4tAZfs3Lo48UCbgkiNnYAwjVPO3Woz9Xi7CXf16FOb/epT?= =?us-ascii?Q?E/fRwEIr81lsfKTdqsqVX0QGXwjgHD3pmOVmnztLyofBxS+fgsumGn1v14W0?= =?us-ascii?Q?lerf0NvBrC5Uf9gb16qQHIVVe7586TVTdJ9LhNsUJVHHW1Am6eksQ2mEF7yc?= =?us-ascii?Q?g0zXNTRIhTq4GPjGj2vLAuAHI2yWZSlPOA8AzYr00yPfbUYSEvwV5gl1d973?= =?us-ascii?Q?e6AypdHpG2UUw+Fnun3Qd0h56l1M0hF4zCzjxvc6y9vtyrx3/KuBD4tZGXYP?= =?us-ascii?Q?AvnCVDWX8SMhEpONndrobitn4eiVrlyPq80pZttxomy3gZEesJWhPvMJWSUR?= =?us-ascii?Q?mHxCORhVW0EAmUMZwu4HvdAv0scz8L18QR7FDQgt2BgoU6Jf+Z4DsMGQVS/H?= =?us-ascii?Q?yX1bTb5B0WlBj7EwvN7wa8lzHIZ17jKUeNN0fPxM2Pfcq7H/1AwZ+w0zmKYs?= =?us-ascii?Q?CTbuvttF55ZihZh5GsXKzCtnTl3GpVPcZUJNVgMoO546TuTc+LHGk+2AyYJH?= =?us-ascii?Q?jmImSVqpEdzDwVmv9y7ixgvof3AOF6NuoI33RcllLhTL4Z+LvK2onaPV07Wm?= =?us-ascii?Q?ghy5rI7svFW+TuoZlICW4TJq5YcbWCwCX/6GhCtIrIDkxmVZyR5mOnlUxxft?= =?us-ascii?Q?fzzyZZE80g6r0a9TjPt9XgU4X0F8vDPd2YL1DYBwl?= X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB1793; 6:JNmJMZ4rJsBuR+rBDgfcas8DP4ovQz122HyWycjip3kJMX2AF+1wDxsyNdCGi8Q7FfY0Ycj3/TvLFBVtDrxRb4obPgx86DIGM6C2+aiG4YWkOhb0l3dXIr+7jymVbYlOaYFIMItSXNL/2/v5KVjOJ1T6lAiD6NEvlHu/R9FHx/TXZeqRS6hHJd3Q9YUEjpx4Vu/hAY1c1fSjwzK0UdMA/DlhshwKX+WfGeE1uRh18LYzcD8PDmYiqj+DAU+Zd+uMCsznYNe6cR3Efpi4270fjrX8IqjozARaIPoDpncDVuWPCK2zRavkhleeMM+WDZE4XlnGb1Iewn8hOsZBNOqD/rG8abT/2Z/+zZa8f5ZXItotkpcC7JK12Wh6inllvUvkG+/qyQTfXPx2JXopxuSccQv/UW3KjDDURY+arz8L+1JoxoKHJvyQf1/hmymxmgZOrkQeJfah25VEWx9QQol2Ig==; 5:QRjMNb8L/y/VaMuUGA3tQbRUPcnaozamazE2Gv1XfKdv6StS2nAW67cBw4N4uosIdsn+ed+Komgwi8F4XssFwUn0083Cn2QxxMBOF7v7WVnsoFoqLrfpQpsxhSelaTxIEDAr2xR3iWvZOkU9tdI/Kg==; 24:JvnyyoKUOl7FrQo4QRYWE5bsmryUaZ4rQysK/R3SAWS5Czd24DqageiAZ2kTtqY8V/uB4CwNMN6u/EbsqazbbshxiAwFAqXxU5ibxlYDAto= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB1793; 7:Mf5ftl9MIMb3Uegg7cN6yONQW2wIem1y2JLoThlc3C17ObTuHdnIeksl/tQDbXW4fW1bHfyCE+mOv5ZH4P67mSzfjFxoa3zrLExp208JS9NnPBcnFzyZmwJXlMjrHq0QQVqx8/OnP47l2b/fDoTmRFMtFpj2ppfE52vGxHUwq7ANYlh9p6AZLznN9EAPKuI7HJPkzlr0YEp3SpBG8xTlffu97VN3d12z5woi+AJ4sEJ2VfoYLTi8iPznklplyzoLaPrdsPcXnqUpMnwSg9HmGRxCoND/pLJwhkgYDJaP1ORE0VlEIHniYdevIZw6ZKxV1KFZYBQpZjdr3On78/86iNDPUvJraCA8nH6aK9YBrEKDNJsL74DTVQKwc8Dt98u3EkP3W9WRpSgNfGw+FIt+WYGJWgPxYXS+0WQ/RXnAmLNA7TqpitgtZVILZHVsTDzh2qY/+wkpKIvBEUksMiFakw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2016 10:05:47.1376 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB1793 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH V2 07/20] imx: mx7ulp: Implement the clock functions for i2c driver X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Ye Li Implement the i2c clock enable and get function for mx7ulp. These functions are required by imx_lpi2c driver. Signed-off-by: Peng Fan Signed-off-by: Ye Li Cc: Stefano Babic --- V2: None arch/arm/cpu/armv7/mx7ulp/clock.c | 40 ++++++++++++++++++++++++++++++++ arch/arm/include/asm/arch-mx7ulp/clock.h | 4 ++++ 2 files changed, 44 insertions(+) diff --git a/arch/arm/cpu/armv7/mx7ulp/clock.c b/arch/arm/cpu/armv7/mx7ulp/clock.c index 0c34d88..30db67d 100644 --- a/arch/arm/cpu/armv7/mx7ulp/clock.c +++ b/arch/arm/cpu/armv7/mx7ulp/clock.c @@ -73,6 +73,46 @@ u32 get_lpuart_clk(void) return pcc_clock_get_rate(lpuart_pcc_clks[index - 4]); } +#ifdef CONFIG_SYS_LPI2C_IMX +int enable_i2c_clk(unsigned char enable, unsigned i2c_num) +{ + /* Set parent to FIRC DIV2 clock */ + const enum pcc_clk lpi2c_pcc_clks[] = { + PER_CLK_LPI2C4, + PER_CLK_LPI2C5, + PER_CLK_LPI2C6, + PER_CLK_LPI2C7, + }; + + if (i2c_num < 4 || i2c_num > 7) + return -EINVAL; + + if (enable) { + pcc_clock_enable(lpi2c_pcc_clks[i2c_num - 4], false); + pcc_clock_sel(lpi2c_pcc_clks[i2c_num - 4], SCG_FIRC_DIV2_CLK); + pcc_clock_enable(lpi2c_pcc_clks[i2c_num - 4], true); + } else { + pcc_clock_enable(lpi2c_pcc_clks[i2c_num - 4], false); + } + return 0; +} + +u32 imx_get_i2cclk(unsigned i2c_num) +{ + const enum pcc_clk lpi2c_pcc_clks[] = { + PER_CLK_LPI2C4, + PER_CLK_LPI2C5, + PER_CLK_LPI2C6, + PER_CLK_LPI2C7, + }; + + if (i2c_num < 4 || i2c_num > 7) + return 0; + + return pcc_clock_get_rate(lpi2c_pcc_clks[i2c_num - 4]); +} +#endif + unsigned int mxc_get_clock(enum mxc_clock clk) { switch (clk) { diff --git a/arch/arm/include/asm/arch-mx7ulp/clock.h b/arch/arm/include/asm/arch-mx7ulp/clock.h index f21052e..ebf32c6 100644 --- a/arch/arm/include/asm/arch-mx7ulp/clock.h +++ b/arch/arm/include/asm/arch-mx7ulp/clock.h @@ -27,6 +27,10 @@ enum mxc_clock { u32 mxc_get_clock(enum mxc_clock clk); u32 get_lpuart_clk(void); +#ifdef CONFIG_SYS_LPI2C_IMX +int enable_i2c_clk(unsigned char enable, unsigned i2c_num); +u32 imx_get_i2cclk(unsigned i2c_num); +#endif #ifdef CONFIG_MXC_OCOTP void enable_ocotp_clk(unsigned char enable); #endif