From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758080AbcBTHFA (ORCPT ); Sat, 20 Feb 2016 02:05:00 -0500 Received: from exsmtp03.microchip.com ([198.175.253.49]:34672 "EHLO email.microchip.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757997AbcBTHE5 (ORCPT ); Sat, 20 Feb 2016 02:04:57 -0500 Subject: Re: [PATCH v7 2/3] clk: clk-pic32: Add PIC32 clock driver To: Michael Turquette , Joshua Henderson , References: <1455899179-14097-1-git-send-email-joshua.henderson@microchip.com> <1455899179-14097-3-git-send-email-joshua.henderson@microchip.com> <20160219201615.2278.2909@quark.deferred.io> CC: , , Stephen Boyd , From: Purna Chandra Mandal Message-ID: <56C80FC3.8050205@microchip.com> Date: Sat, 20 Feb 2016 12:33:31 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20160219201615.2278.2909@quark.deferred.io> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/20/2016 01:46 AM, Michael Turquette wrote: > Quoting Joshua Henderson (2016-02-19 08:25:35) >> +const struct clk_ops pic32_roclk_ops = { >> + .enable = roclk_enable, >> + .disable = roclk_disable, >> + .is_enabled = roclk_is_enabled, >> + .get_parent = roclk_get_parent, >> + .set_parent = roclk_set_parent, >> + .determine_rate = roclk_determine_rate, >> + .recalc_rate = roclk_recalc_rate, >> + .round_rate = roclk_round_rate, >> + .set_rate_and_parent = roclk_set_rate_and_parent, >> + .set_rate = roclk_set_rate, >> + .init = roclk_init, >> +}; > You can remove .round_rate and only use .determine_rate. Ack. Will remove .round_rate. > ... >> +CLK_OF_DECLARE(pic32mzda_clk, "microchip,pic32mzda-clk", pic32mzda_clock_init); > Can you make this a platform_driver instead of using CLK_OF_DECLARE? I > asked this in v6 but there was no response. Mike, I tried to use platform_driver approach, but didn't work for me. On MIPS/PIC32 first call of clk_get() happens from "start_kernel -> time_init()-> plat_time_init()" which is very early in boot sequence even before execution of early_initcall(). In short, by platform_driver way I'was not able to register clock(s) before the first clock user becomes ready. Whereas with CLK_OF_DECLARE() I can explicitly call of_clk_init() in plat_time_init() just before calling clk_get(). Please suggest me if you have any reference to avoid my case. > Regards, > Mike > >> -- >> 1.7.9.5 >>