1. 11 Dec, 2012 1 commit
    • Mike Turquette's avatar
      clk: introduce optional disable_unused callback · 7c045a55
      Mike Turquette authored
      Some gate clocks have special needs which must be handled during the
      disable-unused clocks sequence.  These needs might be driven by software
      due to the fact that we're disabling a clock outside of the normal
      clk_disable path and a clk's enable_count will not be accurate.  On the
      other hand a specific hardware programming sequence might need to be
      followed for this corner case.
      
      This change is needed for the upcoming OMAP port to the common clock
      framework.  Specifically, it is undesirable to treat the disable-unused
      path identically to the normal clk_disable path since other software
      layers are involved.  In this case OMAP's clockdomain code throws WARNs
      and bails early due to the clock's enable_count being set to zero.  A
      custom callback mitigates this problem nicely.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Acked-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
      7c045a55
  2. 04 Dec, 2012 1 commit
  3. 26 Nov, 2012 2 commits
    • Martin Fuzzey's avatar
      clk: clock multiplexers may register out of order · 1f61e5f1
      Martin Fuzzey authored
      When a clock, C is initialised any orphan clocks listing C as
      a possible parent are reparented to it regardless of the
      parent requested by the orphan's get_parent() operation.
      
      This means that multiplexers registered before their parents
      are reparented to the first parent subsequently declared,
      regardless of the selection made by the hardware registers.
      
      For example:
      	static const char *sel[] = { "srcA", "srcB", "dummy", "srcC" };
      
      	child = clk_register_mux(NULL, "child",  sel, ARRAY_SIZE(sel), ...);
      	clk_register_fixed(NULL, "dummy", ...);
      	clk_register_fixed(NULL, "srcA", ...);
      	clk_register_fixed(NULL, "srcB", ...);
      	clk_register_fixed(NULL, "srcC", ...);
      
      Causes child's parent to always be "dummy".
      
      To fix this, when an orphanned clock has a get_parent() operation,
      only reparent to the clock indicated by get_parent().
      Signed-off-by: default avatarMartin Fuzzey <mfuzzey@parkeon.com>
      Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
      [mturquette@linaro.org: improve $SUBJECT]
      1f61e5f1
    • Ulf Hansson's avatar
      clk: ux500: Initial support for abx500 clock driver · 45228ef3
      Ulf Hansson authored
      The abx500 clock driver is a platform driver which will be initialized
      during arch init. The platform device shall be added from the ab-core
      driver as a mfd child device to maintain correct boot sequence.
      
      Depending on what ab version we use, different clock definitions will
      be added.
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
      45228ef3
  4. 21 Nov, 2012 11 commits
  5. 16 Nov, 2012 1 commit
  6. 15 Nov, 2012 4 commits
  7. 10 Nov, 2012 15 commits
  8. 29 Oct, 2012 5 commits