Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752124AbdGAAfP (ORCPT ); Fri, 30 Jun 2017 20:35:15 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:42400 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751680AbdGAAfO (ORCPT ); Fri, 30 Jun 2017 20:35:14 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 43403607CE Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=sboyd@codeaurora.org Date: Fri, 30 Jun 2017 17:35:11 -0700 From: Stephen Boyd To: "A.s. Dong" Cc: Dong Aisheng , "linux-clk@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "mturquette@baylibre.com" , "shawnguo@kernel.org" , Anson Huang , Jacky Bai Subject: Re: [PATCH 9/9] clk: imx: add imx7ulp clk driver Message-ID: <20170701003511.GR22780@codeaurora.org> References: <1494856763-6543-1-git-send-email-aisheng.dong@nxp.com> <1494856763-6543-10-git-send-email-aisheng.dong@nxp.com> <20170620020119.GQ4493@codeaurora.org> <20170620094256.GF6805@b29396-OptiPlex-7040> <20170620204152.GS4493@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2710 Lines: 73 On 06/21, A.s. Dong wrote: > > -----Original Message----- > > From: Stephen Boyd [mailto:sboyd@codeaurora.org] > > Sent: Wednesday, June 21, 2017 4:42 AM > > To: Dong Aisheng > > Cc: A.s. Dong; linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; > > linux-arm-kernel@lists.infradead.org; mturquette@baylibre.com; > > shawnguo@kernel.org; Anson Huang; Jacky Bai > > Subject: Re: [PATCH 9/9] clk: imx: add imx7ulp clk driver > > > > On 06/20, Dong Aisheng wrote: > > > On Mon, Jun 19, 2017 at 07:01:19PM -0700, Stephen Boyd wrote: > > > > > > > > Any reason why it can't be a platform driver? If not, please add > > > > some comment explaining why. > > > > > > > > > > Timer is using it at early stage. GIC seems not although standard > > > binding claim possible clock requirement. > > > Others still not sure. > > > > > > What your suggestion? > > > Convert timer to platform driver and make clock as platform driver as > > well? > > > > > > > The timer can't be a platform driver because it would be too late. The > > clock driver could register whatever clks are required for the timer/GIC > > in a CLK_OF_DECLARE_DRIVER hook, and then leave the rest to a platform > > driver. This way we get some of the device driver framework in this code. > > > > Okay, I could try it. Thanks. > > One thing is that TPM clock has a lot parents and parents having parents, > as well as PIT timer. So I may need enable more than half clocks in > CLK_OF_DECLARE_DRIVER hook. That's fine. > > BTW, What's benefit to convert into two parts of probe? > I'm not quite if I already get it all, can you help clarify it? > The benefit is that we still get a platform driver and we can associate a device pointer with the clock controller eventually. Here's a reply I sent yesterday on the same topic: Reasons (in no particular order): 1. We get a dev pointer to use with clk_hw_register() 2. We can handle probe defer if some resource is not available 3. Using device model gets us a hook into power management frameworks like runtime PM and system PM for things like suspend and hibernate 4. It encourages a single DT node clk controller style binding instead of a single node per clk style binding 5. We can use non-DT specific functions like devm_ioremap_resource() to map registers and acquire other resources, leading to more portable and generic code 6. We may be able to make the device driver a module, which will make distros happy if we don't have to compile in all these clk drivers to the resulting vmlinux (this one doesn't apply here) -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project