Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752860AbbBSKLN (ORCPT ); Thu, 19 Feb 2015 05:11:13 -0500 Received: from mail-we0-f174.google.com ([74.125.82.174]:38052 "EHLO mail-we0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752554AbbBSKLK (ORCPT ); Thu, 19 Feb 2015 05:11:10 -0500 Date: Thu, 19 Feb 2015 10:11:06 +0000 From: Lee Jones To: Geert Uytterhoeven Cc: Rob Herring , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Mike Turquette , Stephen Boyd , kernel@stlinux.com, "devicetree@vger.kernel.org" Subject: Re: [PATCH v2 4/4] clk: dt: Introduce always-on clock domain documentation Message-ID: <20150219101106.GD12212@x1> References: <1424276101-30137-1-git-send-email-lee.jones@linaro.org> <1424276101-30137-5-git-send-email-lee.jones@linaro.org> <20150218171230.GA30676@x1> <20150218215435.GA32415@x1> <20150219094200.GB12212@x1> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit 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: 2085 Lines: 46 On Thu, 19 Feb 2015, Geert Uytterhoeven wrote: > Hi Lee, > > On Thu, Feb 19, 2015 at 10:42 AM, Lee Jones wrote: > >> What kind of clocks are these? What do they control? > >> Memory controllers? Bus controllers? > >> > >> They must control some device(s), so there should be one or more device > >> nodes in DT that reference these clocks. > >> As soon as that information is in DT, support can be added to Linux to > >> make sure the "critical" clocks stay enabled, either through a real driver, > >> or through platform code. > > > > Some do, some don't. For instance, we have one clock which controls > > SPI and I2C that must not be turned off. We discovered this then when > > a suspend was attempted and the board refused to resume. This clock > > also runs one of the critical interconnects that runs from the a9. It > > would be wrong to remove the clk_disable() attempt from the SPI/I2C > > drivers because the same IP on another board might be controlled by a > > different clock which is able to be gated. > > > > There are also clocks which control other interconnects that are not > > connected to any device drivers. If we fail to take references for > > them before clk_disable_unused() is called, again the board hangs. We > > even lose JTAG support. > > Interconnects are buses. Can't you represent those buses in the DT > hierarchy, and give them clocks properties? So instead of this nice succinct, simple, cover all bases (interconnects was just an example, there are bound to be others), generic framework, you are suggesting to write drivers for devices which other than "don't turn my clocks off", Linux can't actually see or control? -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/