1. 23 5月, 2014 1 次提交
  2. 12 5月, 2014 1 次提交
  3. 26 3月, 2014 1 次提交
  4. 19 3月, 2014 2 次提交
  5. 25 2月, 2014 1 次提交
    • A
      clk: bcm281xx: add initial clock framework support · 1f27f152
      Alex Elder 提交于
      Add code for device tree support of clocks in the BCM281xx family of
      SoCs.  Machines in this family use peripheral clocks implemented by
      "Kona" clock control units (CCUs).  (Other Broadcom SoC families use
      Kona style CCUs as well, but support for them is not yet upstream.)
      
      A BCM281xx SoC has multiple CCUs, each of which manages a set of
      clocks on the SoC.  A Kona peripheral clock is composite clock that
      may include a gate, a parent clock multiplexor, and zero, one
      or two dividers.  There is a variety of gate types, and many gates
      implement hardware-managed gating (often called "auto-gating").
      Most dividers divide their input clock signal by an integer value
      (one or more).  There are also "fractional" dividers which allow
      division by non-integer values.  To accomodate such dividers,
      clock rates and dividers are generally maintained by the code in
      "scaled" form, which allows integer and fractional dividers to
      be handled in a uniform way.
      
      If present, the gate for a Kona peripheral clock must be enabled
      when a change is made to its multiplexor or one of its dividers.
      Additionally, dividers and multiplexors have trigger registers which
      must be used whenever the divider value or selected parent clock is
      changed.  The same trigger is often used for a divider and
      multiplexor, and a BCM281xx peripheral clock occasionally has two
      triggers.
      
      The gate, dividers, and parent clock selector are treated in this
      code as "components" of a peripheral clock.  Their functionality is
      implemented directly--e.g. the common clock framework gate
      implementation is not used for a Kona peripheral clock gate.  (This
      has being considered though, and the intention is to evolve this
      code to leverage common code as much as possible.)
      
      The source code is divided into three general portions:
      
          drivers/clk/bcm/clk-kona.h
          drivers/clk/bcm/clk-kona.c
              These implement the basic Kona clock functionality,
              including the clk_ops methods and various routines to
              manipulate registers and interpret their values.  This
              includes some functions used to set clocks to a desired
              initial state (though this feature is only partially
              implemented here).
      
          drivers/clk/bcm/clk-kona-setup.c
              This contains generic run-time initialization code for
              data structures representing Kona CCUs and clocks.  This
              encapsulates the clock structure initialization that can't
              be done statically.  Note that there is a great deal of
              validity-checking code here, making explicit certain
              assumptions in the code.   This is mostly useful for adding
              new clock definitions and could possibly be disabled for
              production use.
      
          drivers/clk/bcm/clk-bcm281xx.c
              This file defines the specific CCUs used by BCM281XX family
              SoCs, as well as the specific clocks implemented by each.
              It declares a device tree clock match entry for each CCU
              defined.
      
          include/dt-bindings/clock/bcm281xx.h
              This file defines the selector (index) values used to
              identify a particular clock provided by a CCU.  It consists
              entirely of C preprocessor constants, to be used by both the
              C source and device tree source files.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Reviewed-by: NTim Kryger <tim.kryger@linaro.org>
      Reviewed-by: NMatt Porter <mporter@linaro.org>
      Acked-by: NMike Turquette <mturquette@linaro.org>
      Signed-off-by: NMatt Porter <mporter@linaro.org>
      1f27f152
  6. 28 1月, 2014 1 次提交
  7. 18 1月, 2014 1 次提交
  8. 17 1月, 2014 2 次提交
  9. 15 12月, 2013 1 次提交
  10. 13 12月, 2013 1 次提交
  11. 04 12月, 2013 1 次提交
  12. 02 12月, 2013 1 次提交
    • B
      clk: at91: add PMC base support · 0ad6125b
      Boris BREZILLON 提交于
      This patch adds at91 PMC (Power Management Controller) base support.
      
      All at91 clocks managed by the PMC unit will use this framework.
      
      This framework provides the following fonctionalities:
      - define a new struct at91_pmc to hide PMC internals (lock, PMC memory
        mapping, irq domain, ...)
      - read/write helper functions (pmc_read/write) to access PMC registers
      - lock/unlock helper functions (pmc_lock/unlock) to lock/unlock access to
        pmc registers
      - a new irq domain and its associated irq chip to request PMC specific
        interrupts (useful for clk prepare callbacks)
      
      The PMC unit is declared as a dt clk provider (CLK_OF_DECLARE), and every
      clk using this framework will declare a table of of_at91_clk_init_cb_t
      and add it to the pmc_clk_ids table.
      
      When the pmc dt clock setup function is called (by of_clk_init function),
      it triggers the registration of every supported child clk (those matching
      the definitions in pmc_clk_ids).
      
      This patch copies at91_pmc_base (memory mapping) and at91sam9_idle
      (function) from arch/arm/mach-at91/clock.c (which is not compiled if
      COMMON_CLK_AT91 is enabled).
      Signed-off-by: NBoris BREZILLON <b.brezillon@overkiz.com>
      Acked-by: NMike Turquette <mturquette@linaro.org>
      Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      0ad6125b
  13. 05 11月, 2013 1 次提交
  14. 08 10月, 2013 2 次提交
  15. 09 8月, 2013 1 次提交
  16. 21 6月, 2013 1 次提交
    • H
      clk: add support for Rockchip gate clocks · 646572c7
      Heiko Stübner 提交于
      This adds basic support for gate-clocks on Rockchip SoCs.
      There are 16 gates in each register and use the HIWORD_MASK
      mechanism for changing gate settings.
      
      The gate registers form a continuos block which makes the dt node
      structure a matter of taste, as either all 160 gates can be put into
      one gate clock spanning all registers or they can be divided into
      the 10 individual gates containing 16 clocks each.
      The code supports both approaches.
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      646572c7
  17. 20 6月, 2013 1 次提交
  18. 01 6月, 2013 1 次提交
  19. 29 5月, 2013 1 次提交
  20. 27 5月, 2013 1 次提交
  21. 13 4月, 2013 1 次提交
  22. 27 3月, 2013 2 次提交
    • E
      clk: arm: sunxi: Add a new clock driver for sunxi SOCs · e874a669
      Emilio López 提交于
      This commit implements the base CPU clocks for sunxi devices. It has
      been tested using a slightly modified cpufreq driver from the
      linux-sunxi 3.0 tree.
      
      Additionally, document the new bindings introduced by this patch.
      
      Idling:
          / # cat /sys/kernel/debug/clk/clk_summary
             clock                        enable_cnt  prepare_cnt  rate
          ---------------------------------------------------------------------
           osc32k                         0           0            32768
           osc24M_fixed                   0           0            24000000
              osc24M                      0           0            24000000
                 apb1_mux                 0           0            24000000
                    apb1                  0           0            24000000
                 pll1                     0           0            60000000
                    cpu                   0           0            60000000
                       axi                0           0            60000000
                          ahb             0           0            60000000
                             apb0         0           0            30000000
           dummy                          0           0            0
      
      After "yes >/dev/null &":
          / # cat /sys/kernel/debug/clk/clk_summary
             clock                        enable_cnt  prepare_cnt  rate
          ---------------------------------------------------------------------
           osc32k                         0           0            32768
           osc24M_fixed                   0           0            24000000
              osc24M                      0           0            24000000
                 apb1_mux                 0           0            24000000
                    apb1                  0           0            24000000
                 pll1                     0           0            1008000000
                    cpu                   0           0            1008000000
                       axi                0           0            336000000
                          ahb             0           0            168000000
                             apb0         0           0            84000000
           dummy                          0           0            0
      Signed-off-by: NEmilio López <emilio@elopez.com.ar>
      Acked-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      e874a669
    • P
      clk: Add composite clock type · ece70094
      Prashant Gaikwad 提交于
      Not all clocks are required to be decomposed into basic clock
      types but at the same time want to use the functionality
      provided by these basic clock types instead of duplicating.
      
      For example, Tegra SoC has ~100 clocks which can be decomposed
      into Mux -> Div -> Gate clock types making the clock count to
      ~300. Also, parent change operation can not be performed on gate
      clock which forces to use mux clock in driver if want to change
      the parent.
      
      Instead aggregate the basic clock types functionality into one
      clock and just use this clock for all operations. This clock
      type re-uses the functionality of basic clock types and not
      limited to basic clock types but any hardware-specific
      implementation.
      Signed-off-by: NPrashant Gaikwad <pgaikwad@nvidia.com>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      ece70094
  23. 25 3月, 2013 1 次提交
  24. 20 3月, 2013 1 次提交
  25. 15 2月, 2013 1 次提交
    • A
      clk: sunxi: remove stale Makefile entry · fde8bc59
      Arnd Bergmann 提交于
      Patch 85a18198 "clk: sunxi: Use common of_clk_init() function"
      removed the clk-sunxi.c file but left the Makefile entry, which
      causes a build error in multi_v7_defconfig:
      
      make[4]: *** No rule to make target `drivers/clk/clk-sunxi.o', needed by `drivers/clk/built-in.o'.
      
      The obvious fix is to remove the extraneous line from the
      Makefile.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Prashant Gaikwad <pgaikwad@nvidia.com>
      Cc: Maxime Ripard <maxime.ripard@anandra.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      fde8bc59
  26. 29 1月, 2013 1 次提交
    • P
      clk: tegra: add Tegra specific clocks · 8f8f484b
      Prashant Gaikwad 提交于
      Add Tegra specific clocks, pll, pll_out, peripheral, frac_divider, super.
      Signed-off-by: NPrashant Gaikwad <pgaikwad@nvidia.com>
      [swarren: alloc sizeof(*foo) not sizeof(struct foo), add comments re:
      storing pointers to stack variables, make a timeout loop more idiomatic,
      use _clk_pll_disable() not clk_disable_pll() from _program_pll() to
      avoid redundant lock operations, unified tegra_clk_periph() and
      tegra_clk_periph_nodiv(), unified tegra_clk_pll{,e}, rename all clock
      registration functions so they don't have the same name as the clock
      structs, return -EINVAL from clk_plle_enable when matching table rate
      not found, pass ops to _tegra_clk_register_pll rather than a bool.]
      Acked-by: NMike Turquette <mturquette@linaro.org>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      8f8f484b
  27. 24 1月, 2013 1 次提交
  28. 19 1月, 2013 1 次提交
  29. 20 11月, 2012 1 次提交
  30. 17 11月, 2012 1 次提交
  31. 14 11月, 2012 1 次提交
  32. 30 10月, 2012 1 次提交
  33. 21 9月, 2012 1 次提交
  34. 20 9月, 2012 1 次提交
  35. 16 9月, 2012 1 次提交
  36. 07 9月, 2012 1 次提交