On Thu, Sep 12, 2013 at 8:31 PM, Emilio López <emilio@xxxxxxxxxxxxx> wrote: > Hi Olof, > > El 12/09/13 21:57, Olof Johansson escribió: > >> On Thu, Sep 12, 2013 at 5:30 PM, Emilio López <emilio@xxxxxxxxxxxxx> >> wrote: >>> >>> This driver's only job is to claim and ensure the necessary clock >>> for memory operation on a DT-powered machine remains enabled. >>> >>> Signed-off-by: Emilio López <emilio@xxxxxxxxxxxxx> >>> --- >>> >>> I believe this new patch should resolve all the concerns raised; as >>> always, all feedback is welcome :) >> >> >> I think you're going about this the wrong way. >> >> If you have a problem with a clock not staying on, shouldn't you just >> marking it appropriately in the clock table instead, making sure it's >> initialized with at least one reference to it? > > > If by "the clock table" you mean the tree as handled by the common clock > framework, there is no such flag available as of today; see Mike's reply for > more information. > > Personally I feel that if the general case can solve our problems (in this > case, having a consumer who prepares and enables the clock), we should avoid > adding special cases to the framework. > > >> I believe that is how >> some of the other platforms handle this, and it's a lot cleaner than >> adding a fake binding and a fake driver just to grab a single clock. > > > The binding doesn't have to be fake; it is actually describing the memory > controller hardware: > > mc: mc@0123000 { > compatible = "simple-memory-controller"; > reg = <0x0123000 0x400>; > clocks = <&pll5 1>; > }; > > If one day we get docs and/or have any special features we may need from the > controller, we can use something like > > mc: mc@0123000 { > compatible = "vendor,awesome-mc", "simple-memory-controller"; > reg = <0x0123000 0x400>; > clocks = <&pll5 1>; > }; Better, but this is still wrong. DT describes the hardware. There is no such h/w as a simple-memory-controller. The fact that you have a simple-memory-ctrlr kernel driver is a kernel feature/artifact/limitation. Describe the h/w with a meaningful compatible string and put that string in the simple memory controller driver match table. If someday we have a real driver for said memory controller, then it is only a kernel change to use a different driver. Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html