From patchwork Thu Dec 15 03:58:33 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9475449 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B1DF5607EE for ; Thu, 15 Dec 2016 03:58:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 92823286E1 for ; Thu, 15 Dec 2016 03:58:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 835642869C; Thu, 15 Dec 2016 03:58:46 +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=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BDC822869C for ; Thu, 15 Dec 2016 03:58:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754266AbcLOD6o (ORCPT ); Wed, 14 Dec 2016 22:58:44 -0500 Received: from relmlor4.renesas.com ([210.160.252.174]:33758 "EHLO relmlie3.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752884AbcLOD6m (ORCPT ); Wed, 14 Dec 2016 22:58:42 -0500 Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie3.idc.renesas.com with ESMTP; 15 Dec 2016 12:58:37 +0900 Received: from relmlac3.idc.renesas.com (relmlac3.idc.renesas.com [10.200.69.23]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id 174DE5EB7B; Thu, 15 Dec 2016 12:58:37 +0900 (JST) Received: by relmlac3.idc.renesas.com (Postfix, from userid 0) id EBAA118070; Thu, 15 Dec 2016 12:58:36 +0900 (JST) Received: from relmlac3.idc.renesas.com (localhost [127.0.0.1]) by relmlac3.idc.renesas.com (Postfix) with ESMTP id E57311806F; Thu, 15 Dec 2016 12:58:36 +0900 (JST) Received: from relmlii1.idc.renesas.com [10.200.68.65] by relmlac3.idc.renesas.com with ESMTP id NAR05333; Thu, 15 Dec 2016 12:58:36 +0900 X-IronPort-AV: E=Sophos;i="5.33,350,1477926000"; d="scan'208";a="228023205" Received: from mail-pu1apc01lp0018.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.18]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 15 Dec 2016 12:58:35 +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; bh=/pvjQee/tJOOjM4tc7KqM6aEMwnqNlUntsX0Y/0//pA=; b=hBKibt65dUculQgb8h7yJ71gUcfI0sqVMsV6PKkPEh1QGUnTxW7WwO5b9c7FaHhx0UuDqoiJiRE2dg99VqLaXbiFwiH8HzBDf6Ywn8ExG3HenX/9PyqjXv7zsFmAsXQsPL3bRi//98aDACiw+tzjrhopG1PiBjRmM2UoYYnp1VA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by SG2PR0601MB1453.apcprd06.prod.outlook.com (10.169.106.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.771.8; Thu, 15 Dec 2016 03:58:33 +0000 Message-ID: <87a8bxoned.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto To: Chris Brandt CC: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Simon Horman , "linux-renesas-soc@vger.kernel.org" , "linux-clk@vger.kernel.org" Subject: Re: [PATCH] clk: renesas: mstp: Support 8-bit registers for r7s72100 In-Reply-To: References: <20161215021134.14902-1-chris.brandt@renesas.com> <87bmwdoreh.wl%kuninori.morimoto.gx@renesas.com> User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Thu, 15 Dec 2016 03:58:33 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: KAWPR01CA0035.jpnprd01.prod.outlook.com (10.165.48.145) To SG2PR0601MB1453.apcprd06.prod.outlook.com (10.169.106.19) X-MS-Office365-Filtering-Correlation-Id: aebad378-6d71-42c5-cc37-08d4249ea3fb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:SG2PR0601MB1453; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1453; 3:MzOAqtnqtLLBM33gI4H1oODsrFzSxcBnmH0J15uvXAYYdwQP532PCyynIj+AArKKEWmHTwbIb5QLAFs2pNfbZLs1zojvlw5FMvL5UdZVO0xnJvEmf2m7h0sGuk1qDWKlFMWWmrORzTHv6phv8Jiwc00ZuGhttkbRALR9JMMsw4gchc0vXl0aENAjvVhIvvwDuG/Nvkns0iJNiOxzvylfI4frWbitP8lm0o79gE+mUrm6F0xxf9P5l3PL6hRCcA1a6dG3vMKNJQqKMv+Unl1fmA==; 25:nTW2LsZJdzXGB4ohBM51+DIOPRXOj5EyC/NpKzUcsTbYm6DZ64KSgiKgLbV2sBDpw3xL67yPNMn25GCpFRQGW7EltIoiNdWUV64VtDpNz0Wgg/CTE7fqDoKjVr19CSbI2wjJBdRhD8GYPG9IWIzX1ybPCUH1Z+34ABCCNUJR0Nm9K5QQx4u4buWZ8xtU1g63JrhMM86Ut3SST1zgJiYu0SJxZ1g4p3/8v56dipNfbpozz01sGF5RAagcNAolYAxy1hwFNYvRisfWLW5KqwXfe8IGye9apOvUr/wJC5rvQ6dIotNwl26131wtqLhimLznpvk6RxwkLSjCjcBo22akB1ry4JF1ljkmYmypfK5Yl4xpcK6QJ+olT+dlQWsIY3rEb7PbNzeFCev1T0YPRcSnPEplJahl0TMEZTErgcssr5+PMltXNsGGiR5p+Xn75WcrgqQ+CZ4mAuZ2Rhpl4oRBQA== X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1453; 31:f6z1BI6rkD0/ieEZZVpRKH4s2IyJYDEDqo/s95iVnj9o3A76wY7uD89GInpowhGFpLfJTGPp7KA23T3Vd/wV1JmgvVxG2oGv8zdfZkd++6WGaVq3IFlhe9tFzncKNdGqtaMTRNzn12avi8jl7tX/B5O919+hVLWHqju0YgORzBFZi3qDAFrKSFrKsYO+jA9SeJ1tJe7BkfrSxSyltktGGbhgOO895NEhj6iAir/fsU05Qhp7uNc++DYeETsopxO1; 20:HgV32sDz4XvM6/j/4MDoFYAQ87RSz939nG/De4V66CKJdpVVYSg+O/onJzHSNkVLSQhMY8J5nNk/DWBa1S+eaabMUwfSMkC5OA9btWdLM7O2Z9zPN13GQG4CTLCpTqUmyIEzJg8pkKZZfsbkOjHrQPJp3zOW0UXbiooZC5S9rvIeR8nC/U03R0Bc/k5FVpgWBg9beyHRdSkGxKpfEwsHhxQUr3yX86Ln0AWsOz9GOmLp17mJQPRd2RWp0IRf2ot8HHMydudsAgOowshq//XsihDhxhePZFFrfwmCwzuR400Nwq69UT4NCwLMBr61DF6PgzewpCE0iI8dTIgM5EAbTBz0YJZ9rvSqFefksvVeCBFJk4LAkvv0GojXbOfQISJTiGadcL2Tk0bV4m/kHzZxO/Kq07Loubw0rcGFjXyIaMDD5u5mf8nzwT5RVXHu47n0VFQObwArSIKrrAQiwaAJBWridsPbsIC+Swv0miMo7gI3npyY80/pWtsbYzvTvBac X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123562025)(20161123555025)(20161123558021)(20161123564025)(6072148); SRVR:SG2PR0601MB1453; BCL:0; PCL:0; RULEID:; SRVR:SG2PR0601MB1453; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1453; 4:Gezi0Y7Yv1bpfBwjJNFQrLu/bCSZd+GWaXM0gse6eVM7QWx9cT14ivwn7aCOJihROKGA8+/gltKWcfWW1xFZH7h5fBNhB2mDiVOMjwG5E5sHN8zhN1e60AD3QEwaSLcTc2DY+JMb0MU3BwFkHNuVJtY+oRFpQ+2K/NxFMzBm9O2pu1ndOh7iILkWhTRKAFlBuSkA0sgrXvj1i1xiZgQEe22TFFpW/YZAtwYZ7o7m2w1kDxrl5x8YmVy+Gs5dI0UN3wqkNt4lUXO4VI277GYfP0mwzcLwVCcnz5+EcjQJKpNPfHbq8ZEWOCCeqwjHtI4zqwm2pYKXcp0QqumyyZsaXv1VSR8AlhRtzHu+XZEYtbGfxxxCCnPO5H1r4mb9UQ3RIBa4MktZZQ/ZJX4qPbWJvBgzjG7G3qss2m8YZuKSdRT5CPyJ4NmCYS3wnSxNfnSFPp7CuV6vrn6bQXmTFcwBAAiXjYM5Nmo9pzPhSwDuFLn9lELK9KnJ35DlL6Fu+dfTPOERbu/5hG9fOOLto8S3+XiPpFm7EJQukywwqVsSx8FQnfYYIxO1DRnan+GG54Dm/+g3jujXJLRvxwOcaGjZKvq5Zzen8Dzl/vmOB8xN/yLzzd7oy6WypBhrDNHKP/Sd X-Forefront-PRVS: 0157DEB61B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(39860400002)(39410400002)(39450400003)(39850400002)(39840400002)(189002)(199003)(5890100001)(229853002)(6486002)(7736002)(38730400001)(97736004)(36756003)(33646002)(8676002)(2950100002)(6636002)(83506001)(81156014)(81166006)(50466002)(2906002)(101416001)(47776003)(42186005)(5660300001)(110136003)(76176999)(6116002)(3846002)(86362001)(69596002)(54356999)(66066001)(6862003)(189998001)(4001350100001)(305945005)(68736007)(92566002)(106356001)(4326007)(23726003)(53416004)(46406003)(50986999)(105586002)(25786008)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:SG2PR0601MB1453; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SG2PR0601MB1453; 23:3+jTJM+lBvjovSozc1Ivp2jlCDkHPDU484u3HCj?= =?us-ascii?Q?NQicLy1nW6aAzdpqSzL4CfwQAq02EYvAJKrP+plCmDEmB0KzOpX2CGPxpqdO?= =?us-ascii?Q?aQCeIuVzsGwvDq87cRgt/BGt1eYrl0PcXJxa9fKMK/OwxofXHox1Q+lsFE61?= =?us-ascii?Q?DjoeyCkIDAQjtnbKUEXUHIKt6MYteH3K2zrKf/N7hGlMTr/YNhAWx7AkCb5m?= =?us-ascii?Q?9Sp7flS9GT0EaGKwXR28yjxhnFxtRXGshtkpDWifKsbpGh8iEAHGCsOnpQaW?= =?us-ascii?Q?xOJUIc0LBDPoYScpcDpoIl9zLa8SKFCgymak/B5qF9VVXAQKn74wQd9dLfzh?= =?us-ascii?Q?Yy0THndiWi08jVW9lijknTgoovEjOJ86WzaJ1H5jnohbdliR2FjiCnmhymve?= =?us-ascii?Q?wfKpvVc1ZV74fKxu9AB6fTLViJXV6GLk7r4bKPhwyOKelqepqLYYCU0/0l/C?= =?us-ascii?Q?CC7YSgmjtktYw563MELd71J+t7oeQ+8U2JmmnUJWRsj9zZ6Gm3SSQigo9rpG?= =?us-ascii?Q?hkZUN3VMP/1dI9zhA/aAy7tphey2lkepiMIgGURgjO1PmLCV+SpiZLYn07oG?= =?us-ascii?Q?PN2hJW/MiZHrVAV3QOwjqJ79GhNodYrX3pNkKCzpfi4aNRUZtVXriqtCoYgO?= =?us-ascii?Q?Vq/BvNCk/Dr1VatymeKKllvJ4SY+G3ZFiFP4fcQcwj8CTXw92e99le969qIm?= =?us-ascii?Q?VlYDesss6q0I8mcaCYSsD5ECeRgEs2GOOYmfIcPbzh+wHoK7CxOvFlqzWlDu?= =?us-ascii?Q?tc9+6+/QBtcJ7ikpjwVN504y+AOxL/DCzLeGtHhChOnLxfAQ/fCKjcLOvyV0?= =?us-ascii?Q?MBJqV46yeR2HuM8tHZaAuhZofBHT/rRYtqwA+sIYCZ/f9tO/vXGpr7oDM1Hp?= =?us-ascii?Q?NiCGslPYTezIORXJjGwsYXsqQL5MVq2VWJEtFQ+LgSXdlVcpAQbges+6M8JK?= =?us-ascii?Q?EBgwusNj3ZGEnVe4AUBg21laceFOJKcfjNMj9No67yR++pofeEEUIrBW0Ugn?= =?us-ascii?Q?1CeNWMU4OMOmfPEfPkC5UP/6UiozSSiK8epuPjcGlw8JHJWb+2aSQgsqNrT0?= =?us-ascii?Q?khUFcacJNHujD2lOvfq2hZsZiOOoRKRDF30J8Nz8mp/6xyO7m+Fgf1lA2Nnx?= =?us-ascii?Q?oYrJLOv9s+J55kk9b2ArjiLkylEgtwF6b3NmdKC1M4KU3GpLnPfJ8Qo2gWD7?= =?us-ascii?Q?9xDymEJYEtLgl/GrLlV2znYqzPdaibYbJPsfzzku196pBMSHon2KLkdtPje/?= =?us-ascii?Q?JucQMN3SVoQdEMq7/KbhwuG6Cn/1AdG/79VC57K3Sd8jJzvTMjpQIn/0uK4G?= =?us-ascii?Q?AAYORtMGrDLEgm2JJl1b2dZw=3D?= X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1453; 6:nIgfxhrzfFK71p88JJTRiBJgXn0C+e/zDopbEvd/fRjEHhTJF6sHusp26xSGFH2LFa5wNonOFeoFTmBDxfrFyOJ1cHIxoOlgnREfXJhMq2X9zmIe+3Uug3P+zN5b6QcUXUY/Vf8wIwUGd4BtWd1iL4VZrny0nwYtgcX3UKi6DJtAFKLVO/xhhFLFBKWbcoVYcKVMkLpvskAbGLMwMDB8S3a+XC4xEPzr6sR+jJ8V0QiYaN7QiY/1A7+UhZ7wfDp5wApl34hi7dawVHAs3/Jm1/flg5M1lh8RJb/nJ/yJGRZ8jN62bkBmbhkySBtjv2KvkNIxxeKdkwH+cA3m822GeQTNhS6oTZJgGROgKTmSLW9NWU4YBqX0cVd4CjmBhIfhBkkihHvtp/e521xxNFOL7etiIe92o2YbuFGJxfcT73VJmIbN+ZVg/+ushQA6OiHj5QTVln4dbhmSgCNJTTkWfw==; 5:aBxC4GFU9yd3m7ANdU4jH5OBSAuV20GrQGqXEVxIZ+MRqcoEI7MQyUi1w9MhKjKhVovcilqARgTNckzUqTMO1Aki7jcHKaF+ucQJlKw54crYM5VI05kb9jZFN5eN0EfjIRl5HyAFThDwGa4auLI4Xg==; 24:Cj/lUcOxcKC+T0WBlhjgJXj19R7Ndad7OP9t7XLx0K3f8vxNLLtpPkb++ujv7pUp5xuriCvVaHO/gs2E4UxFJXDjKSP8Y0uaH5bKCNgG39I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1453; 7:vRs01+/Of2OlPmIoRGGodzhdmHwvpNwQ9yO+ESwYwCEE8XstI2nrhsRbxG60ahpaarFJUhmcY1kpeySyz5HrriCvhNfaiMpDV27Q92Onkd1qJDhqWA3dw3DzSr9QpqXBLGfDNcahTSjzjLvpcDhM1cEs45VLqDyR+Nuwx/BiP3mUWNjNMubIe9XtRV6r3Mi+5Keogbm6TmkrJBh/k0qE7XHP39uB5xvkt/neLb7eM7LHO2/Vq4UyM8j88FongV2BXyaAF2/8GzAcQQHU4U08cU6ve8LueRMKU3dOeOunq3OmuwVUF8IaxbKsUEtuZYjdfCEryZqN6HXvL02j34+ANs/xe81pmlK4Jtj3vRGKdP8z6zhuPJ8DNa5P2z0Df7noQ2MXrwEAy1tWDloXI1Lb1dGRsHdqVrPd4IwrYwGPVqDQndOvy8y9XLxFfmJf/tQBjYiYjBdwOZSIqTlLR8nEOA==; 20:Gz8hOM7iYp8sD4rufuA1rF0zalTzVMJg8cRkQcCSBR6AeFyIsKq9XKNa8Yfc6dEpGl/UbNQHOffZ1u6jrmK83sR+bdq0JnuaG3fPXhmYty5hrX8QnncClw+1z+6ITTA8uTcXY0lfnO7CKPWMBJ8aPMotcK3YSTjNOps+lDa7lqg= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2016 03:58:33.3597 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR0601MB1453 Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi Chris > > I don't think using global variable is a good idea. > > For example, how about add reg_width_8bit into mstp_clock_group, and > > cpg_mstp_read/write requests it, or something like that ? > > If I make a separate CLK_OF_DECLARE like this: > > static void __init cpg_mstp_clocks_init8(struct device_node *np) { > reg_width_8bit = true; > cpg_mstp_clocks_init(np); > } > CLK_OF_DECLARE(cpg_mstp_clks8, "renesas,r7s72100-mstp-clocks", > cpg_mstp_clocks_init8); > > The only way I can pass the 8-bit/32-bit choice into cpg_mstp_clocks_init() > is using a global variable. How about this ? # I didn't test this, compile test only ------------------ diff --git a/drivers/clk/renesas/clk-mstp.c b/drivers/clk/renesas/clk-mstp.c index 9375777..488ff56 100644 --- a/drivers/clk/renesas/clk-mstp.c +++ b/drivers/clk/renesas/clk-mstp.c @@ -43,6 +43,7 @@ struct mstp_clock_group { void __iomem *smstpcr; void __iomem *mstpsr; spinlock_t lock; + bool reg_width_8bit; }; /** @@ -58,6 +59,14 @@ struct mstp_clock { }; #define to_mstp_clock(_hw) container_of(_hw, struct mstp_clock, hw) +#define cpg_mstp_read(group, reg) \ + (group)->reg_width_8bit ? \ + readb((group)->reg) : \ + clk_readl((group)->reg) +#define cpg_mstp_write(group, val, reg) \ + (group)->reg_width_8bit ? \ + writeb(val, (group)->reg) : \ + clk_writel(val, (group)->reg) static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable) { @@ -70,12 +79,12 @@ static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable) spin_lock_irqsave(&group->lock, flags); - value = clk_readl(group->smstpcr); + value = cpg_mstp_read(group, smstpcr); if (enable) value &= ~bitmask; else value |= bitmask; - clk_writel(value, group->smstpcr); + cpg_mstp_write(group, value, smstpcr); spin_unlock_irqrestore(&group->lock, flags); @@ -83,7 +92,7 @@ static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable) return 0; for (i = 1000; i > 0; --i) { - if (!(clk_readl(group->mstpsr) & bitmask)) + if (!(cpg_mstp_read(group, mstpsr) & bitmask)) break; cpu_relax(); } @@ -114,9 +123,9 @@ static int cpg_mstp_clock_is_enabled(struct clk_hw *hw) u32 value; if (group->mstpsr) - value = clk_readl(group->mstpsr); + value = cpg_mstp_read(group, mstpsr); else - value = clk_readl(group->smstpcr); + value = cpg_mstp_read(group, smstpcr); return !(value & BIT(clock->bit_index)); } @@ -159,7 +168,8 @@ static int cpg_mstp_clock_is_enabled(struct clk_hw *hw) return clk; } -static void __init cpg_mstp_clocks_init(struct device_node *np) +static struct mstp_clock_group* __init +__cpg_mstp_clocks_init(struct device_node *np) { struct mstp_clock_group *group; const char *idxname; @@ -172,7 +182,7 @@ static void __init cpg_mstp_clocks_init(struct device_node *np) kfree(group); kfree(clks); pr_err("%s: failed to allocate group\n", __func__); - return; + return NULL; } spin_lock_init(&group->lock); @@ -185,7 +195,7 @@ static void __init cpg_mstp_clocks_init(struct device_node *np) pr_err("%s: failed to remap SMSTPCR\n", __func__); kfree(group); kfree(clks); - return; + return NULL; } for (i = 0; i < MSTP_MAX_CLOCKS; ++i) @@ -240,9 +250,26 @@ static void __init cpg_mstp_clocks_init(struct device_node *np) } of_clk_add_provider(np, of_clk_src_onecell_get, &group->data); + + return group; +} + +static void __init cpg_mstp_clocks_init(struct device_node *np) +{ + __cpg_mstp_clocks_init(np); } CLK_OF_DECLARE(cpg_mstp_clks, "renesas,cpg-mstp-clocks", cpg_mstp_clocks_init); +static void __init cpg_mstp_clocks_init8(struct device_node *np) +{ + struct mstp_clock_group *group = __cpg_mstp_clocks_init(np); + + if (group) + group->reg_width_8bit = true; +} +CLK_OF_DECLARE(cpg_mstp_clks8, "renesas,r7s72100-mstp-clocks", + cpg_mstp_clocks_init8); + int cpg_mstp_attach_dev(struct generic_pm_domain *unused, struct device *dev) { struct device_node *np = dev->of_node;