From patchwork Wed Feb 22 08:21:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 731060 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 3vSvXZ1gfwz9s74 for ; Wed, 22 Feb 2017 22:00:14 +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="EZ97WvRN"; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 0C3694B1FE; Wed, 22 Feb 2017 12:00:07 +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 BNHMg-CuiUJ8; Wed, 22 Feb 2017 12:00:06 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 8AE054B55F; Wed, 22 Feb 2017 12:00:04 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D152D4B578 for ; Wed, 22 Feb 2017 11:59:16 +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 X1vP5v5m4XRh for ; Wed, 22 Feb 2017 11:59:15 +0100 (CET) X-Greylist: delayed 7323 seconds by postgrey-1.34 at theia; Wed, 22 Feb 2017 11:59:00 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 EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40067.outbound.protection.outlook.com [40.107.4.67]) by theia.denx.de (Postfix) with ESMTPS id AFB394B1FE for ; Wed, 22 Feb 2017 11:58:57 +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=nhSJHSIH0Us24cSHEYSRFdc52WhEN7Wj8FilFF/aYAc=; b=EZ97WvRN9y+1Mu9xpFJNZJxaznkVKZiArMJQ3aXdkHvsJ8oZ/BROQhVE6PI+giERULlLk3XM4kvaihcoXSbYGAL+izNZPVHR3SOcZxfI8ICSQdrFrOcLzCeZF96KO6HJHRR00CwjndxfOIW7PFRlAq30mGwj4jcMjObP6WIgiiQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; Received: from linux-7smt.suse (199.59.230.102) by VI1PR0401MB1805.eurprd04.prod.outlook.com (10.165.234.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Wed, 22 Feb 2017 08:25:21 +0000 From: Peng Fan To: Date: Wed, 22 Feb 2017 16:21:44 +0800 Message-ID: <1487751717-8559-7-git-send-email-peng.fan@nxp.com> X-Mailer: git-send-email 2.6.2 In-Reply-To: <1487751717-8559-1-git-send-email-peng.fan@nxp.com> References: <1487751717-8559-1-git-send-email-peng.fan@nxp.com> MIME-Version: 1.0 X-Originating-IP: [199.59.230.102] X-ClientProxiedBy: PS1PR0301CA0004.apcprd03.prod.outlook.com (10.167.44.14) To VI1PR0401MB1805.eurprd04.prod.outlook.com (10.165.234.155) X-MS-Office365-Filtering-Correlation-Id: 5684f50e-56dd-4ae2-cf06-08d45afc5a6a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:VI1PR0401MB1805; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0401MB1805; 3:orX48OuVpnhIZiKQgPutuoKpUJUmnhetxDWR1BfYLea8z2BIOr8s7YpeO+RRwq+McevKcilYzK+2L58Qpebxk0584sBlAn6/sbPBJZWNMdEPgWkW25xbaLV088LnSkkRqi0kdzkv3WR9ob1o31K0BJKRESqoudzOMgSC7c+5ZLw7jx9uELyZ4fgHS4wCzYySKM1RyVPrPKcwHyQRy0gSDfZlz7d2PAa3xmne7N/mmrqQj0EWyBO0b7wloBcTGsXHD+N0FGsPaeh29S9/L9CH0UewF5V8QR9iVP8TtGMFneE=; 25:MKKSWfRhGu0+Rl6u/IUNrhTdDFf27iOBZ2gPdKNxho6+PuCAldtHLyWBA1KGob3gPItixqs0ABxsLyW+UwexPThy47g3kvz1DvyA0wEBXT8V5PD4AUHNO0OAfq5cTdhSx55DI2LzjWmf7Lbn2eBgHrlSLV5W8bXoxYC+tErFYKeFt2YUIRFZztMeEw6WnsuTOzJgveMf/KLXoH3yJV8gHaZXLa524wdwfB56KgjtAZ7TQRXnVwslQLFxFE/36Eetfa2Dzl/vNPKn3s0Zuo7jzS53rK2h1/0+if06nW4wuvhyxgGUnXlckxn+OOpzE2iwnR9rGyD0rIrjtMqeAdBDxHdrM1VtuO88RVzpDrLJhIcP+To2QDiVD5HOFBCZEz8Y+asNp+gsW7apqQifiN3yRgdDh20rhoujB5DTWUb1kHx4+zV32Jbo+hTnXSVvxEAEP0FwN3k25f4bSlh6icfuqg== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0401MB1805; 31:lsEkq6YjbTBsWTKomKGApu1UoWjjwiTxh1Gxnpq6oxm98wzJAAu8I/IiaLY39KS8kAedTmTRzajCCd2FpQf6OS87vAARLxrERPQVs6f2pzvnGroTLzikiEGB5sg+dDh25LAACBigQNicKdGCRQcimDDVUYfiQfr1aN05wGOyk9zv/ZgqUzWfjeVvW913eKipmR/9zJ8bcvZ2isx5tekGd2yqZeDLvZQENE8J1cgKx94=; 20:1zsH6Bqh6yklrj7UO5O+NE8SodIUxIU+7za/DKvDW9j2ldv/IQpcqGEpbUCwoA3QFY6hW4rrOKgCkyilGoLqgXuUFXWxxmDi+Sv8umnwfeZrSqQ84q6ZxeJCxVSzQYJVUPOdV0S8CTUDs3U7xV2NMlJS0bQtwP7z6Kqc9pNDaDQTlZ7415IUNi8iwXj8O+6IL/qC5oRcXz8z1WDnFLhmBn/IR/UQbIUfHawy0XmvRGtwN9Bl2bRF59WSxNq3Oq5KCRz0ngZ80Me/j/IHnydmGTB3VDkRtNhz3XYkmFGuQwxwRxcNrJkD64o1XJV+RPWsmKjhahM6WUO0lvekEfhm4aoUkcNo3b56hIa3KNozlReHmqG2urAHqB9s09OyP4q5BPbZpveY2hGzC1Qc4KhDpo4uyU0WLwmOim13qIghMHLFzcWP1ryFawPEuxnP9IoEJlLLuBOkT3CeELicmnnxSDaAYPC86fiS07WNWpuEhHB7s60BD2lwC2yIGwRiZgH5 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)(20161123560025)(20161123558025)(20161123564025)(20161123562025)(20161123555025)(6072148); SRVR:VI1PR0401MB1805; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0401MB1805; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0401MB1805; 4:SHHHFTyX10/1yM1SNLaNPU0cLzjTb76YC8cfJXZurjwLa1389a5bwTgnvJ1pTbQeQeRXyv1TXygelAlzl99wMj9PeX1+DJJ9ILrWMAMSQNroWawQIsBI3+9rOA5PR2d8ZGJBZ8vmaUseAhhmgepWVtKpfb+J6IUJffJsX3/VAEwXeaxW4o9p8yje+zqtS58bStByx96ycT5Mth9fg6xufgrzl6zPr3fuseJEyE2EljxUXjpCKOv8hZ5Z+K6/6GhyS5GgNVJIdZ4tBzA5BC+YXgQhIcVh/j0vIBRupwTNCmLa9xZmP9acGMwAoLgVYLwi2gYKAnqKhnsmFQc+L1csUUTpNMuFw/2dnfTXoEVdFR99gn/+rhYVgFA6GkzaPXq9P7fiOV47OqPsg30AcN4Zxayo86AgwEd21cGr+/MtuE9C7eDQfHBCnepP7KxTJOmgo5W2xVwSnSp+F2FwlwybqSt+qVzqMiQmjJrogvU0GiYikPt/mjxvtWnqK9dIGmvGCPDUAGaSe5OrVh8JsxJ001+nZSDPyGO9dw3IUzAmvbMA6F0PyIcIDCPS9sf+16RqMEpi5oSuYVp4GShjFUfH0dHFJilJ9S78gNYfNE42zGgEizv/B5B/AjtNU7tP3HWewLcpxZj63cEJpj3HrTbndpzdltvyM8L6zcV4+jJD4BQ= X-Forefront-PRVS: 022649CC2C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39410400002)(39860400002)(39450400003)(39850400002)(39840400002)(189002)(199003)(6506006)(6486002)(25786008)(36756003)(53936002)(5003940100001)(4326007)(110136004)(33646002)(6666003)(21086003)(7736002)(38730400002)(6916009)(2950100002)(5660300001)(50466002)(92566002)(50226002)(48376002)(86362001)(6116002)(2906002)(6512007)(68736007)(106356001)(8676002)(105586002)(81166006)(3846002)(81156014)(2351001)(305945005)(54906002)(97736004)(42186005)(76176999)(189998001)(50986999)(47776003)(101416001)(69596002)(66066001)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0401MB1805; H:linux-7smt.suse; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A: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; VI1PR0401MB1805; 23:XsGjEm9uanJ74iHuY5g0Oslb9YVipwtvX8vKKId?= =?us-ascii?Q?ePLJmAM2o6dllDCBV8CzE8m6qlt78zGmllTW/65XHXIXMk1QIFFQg5BmHo16?= =?us-ascii?Q?CG0R4htEMHFnWxau4DSrf4FhaWfdcNkTt3X5BLMtCz2/rc0bGp6NXA6aYQnx?= =?us-ascii?Q?XsAOHfXCWVHmpYsKZDoeX+rn4ZTgHJXL1fqCyrktVvb4oQGe9DySUYNpCJxz?= =?us-ascii?Q?Up4uLbjPQW3kMSQ3Bl+4+yjtOFoz6sYTqLb5u0RSPSQpcXexqru5qSwhQRml?= =?us-ascii?Q?Zg5+vhcoasaC3MBS7tybZpx64kJs6FDRffvIxUjXPZYK3NDHbIZJWjiisyHp?= =?us-ascii?Q?s7HWZsimbN3skE0JXvBHgVhrzwCzFI3oO89iZaAaIFX26kVeiZA8kawgTqzB?= =?us-ascii?Q?5b7E8kqEJVgZC7wu3wS+C7VFFI6Cwrzf4IEebTV8EkXRFfYpO71VyZ/Sc9m7?= =?us-ascii?Q?eKgnN30r130GxnBl3P8pkwl92QAFaHLwKVozI1g2A/yplmbEADZDPCwrLWWI?= =?us-ascii?Q?ytZEQ1Q89QIJE4fiMvX0gA/eD4xC9o7CMC68LJtJLcFHL2Q8lEZIBM2KX2T6?= =?us-ascii?Q?hjcQfjrz2XUKXOZ7jsDu/8swEMePIOmOIfc+U0CY/aqJ/ZsAvVXeJcMc0vKI?= =?us-ascii?Q?i05H68slEaWTUn3887Jr5pfi7Oan5kDoVlRAOUGPYPdRxP8/2CQPoKp7hds2?= =?us-ascii?Q?nMVv+iwNlP8Ghitvg/IZJ/yDR2qY7wNFqH8cub6rxaYfCvT1zaJPQKRVpZch?= =?us-ascii?Q?Mu4qlP/zZ0n425Ots54/DamHjiPLMa9VRszCSZPtpsGV5nvZgN4hRuvYalLQ?= =?us-ascii?Q?iXGcB+Pi9jxxZHVUkgOy1EQdp7/r8FywSyig7P0MN5wJilT6ZGxssrvFS2Bs?= =?us-ascii?Q?q/nIk3CUTTDBrc+KXvkEjtFQtsCM8BYfSivPNE7Pq2o/i0tZ2pbUIM1m87uk?= =?us-ascii?Q?kugmzOgSTTrEiif4FqqrdGvuSKOm5nJqP1jcZANdJbveZGw8aLehnHAu7TFk?= =?us-ascii?Q?Q+1mT5560Cpqa8Hk76NEtj47SV399oZqWgYCdL8p/PQpgUqwcj/q9WqTcnhR?= =?us-ascii?Q?RGUNVA8yQIW4ff8fveh/UMEify0Ab2SH8irmeDyLQTpCk9G6LJwOjsYYVLA1?= =?us-ascii?Q?JZPO7Imp5dq26/2hJaKx8qH+JNFb8+bCjp905hFBNQv82R7oxP7oTHcVGEBI?= =?us-ascii?Q?YdQR10gf1H3lU4g97UXVwNZYLRAqtqY0yqnOzdVjVLtneOGtNFU7rMXOjyLC?= =?us-ascii?Q?q4mrKgNuXK8toEfbu4oA3GgBLbWpZQpq8b/g3HnobjVUzlaDW4qHvWmokmAF?= =?us-ascii?Q?6PnK10tFURvgUdd6eKxi1k3A=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0401MB1805; 6:hDAcgGAJ1NFZfO1u+0iwOa7deHUQzXrLCcEwQEsjxj/rG33v6opEqfLXKnZJ815DUS3ed6Z9qTtMU26B8XO9CB0p6fGTbMypzpjdoUwcfOtiAvN2cWx/oddhK58otkRy1j1Bqc5cvVtTi/YqhCC1O6VMz694U3H+1ZQ4Zyr/rUo9ubdt8a1Jtmk7P8OxpVyWn4e273xqsAKPPi5T/HP3WBECa5RfD5S4L51Wu7IciC1qoyl2SQuFifNVcU8As//+7/HKJ/gSodxM24pAVFNAgIcOiTL1iuh1k8HGwTHLHlx/ii6IdGE5mIwk3hwtFwpNImVziga1HfjPgEtpHSGNrnoZshXMNrlUYhCD2WNS6z5AwnFp1l5uu+YsimKpPOW5n5B1bksXuuDpTxA0xk2mrbXCwY1fJ7Q/WB9nwbF6cBg=; 5:+CRA75s8UEKHco3j4NKHEj320c8dzGWEFSiXcFexyuEZNCUtZgLZXBpZTSozDa/uCVfJtbQinZqNgzwXGPeb9VFkZm2XjCIjF/EujvodV0rkVLypHgmzYl5TJru2MkwZs41jRuF55NfscaNF5faSqw==; 24:9iGcajd78sRk5VtW8x26kd9n4FSFgIFBHSdKyJduLvuQYARfLp2AeY/AmeIZXyxzoj+B5yb9Djrk9gOK2q4r5AvHD07bR+gHMbgITA4neMQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0401MB1805; 7:NhOzOYfSvC6UhrqwdexXkAKE3DQQ4UqOq4DPwoteFCRwcTFgx+MKpwkRB7QfueEj8CsI8ZGLubcZ2BGTbtI8UbECdQrYqkSUyI9Tk+j1QUn6rfGhubA7PbWW2CI4627Eve52qTEfLW4h3XZP3gwV42oDUE0ILl03eTJrzDJi4+ce62xkSJxI3c3Rf0GIVAGmt7IgcTILDig0R1fy85eq28CUtE03j0fNOVHvHduP4XaKuyqfluAUA9Qc+DVQYYLrMGUlBmgSLVvM8RpbS6qHf9R0kTRDwjGJbcLB2vZ4KdqoQ4n9cKaFiKPb7MVZ6ue0xs3QMD044JTAq8CabcKDFw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Feb 2017 08:25:21.0409 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB1805 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH V3 06/19] 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 Reviewed-by: Stefano Babic --- V3: add reviewed by tag 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 e6225bb..1c072b8 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