1. 03 May, 2019 2 commits
    • Paul Walmsley's avatar
      clk: sifive: add a driver for the SiFive FU540 PRCI IP block · 30b8e27e
      Paul Walmsley authored
      Add driver code for the SiFive FU540 PRCI IP block.  This IP block
      handles reset and clock control for the SiFive FU540 device and
      implements SoC-level clock tree controls and dividers.
      
      Based on code written by Wesley Terpstra <wesley@sifive.com>:
      https://github.com/riscv/riscv-linux/commit/999529edf517ed75b56659d456d221b2ee56bb60
      
      
      
      Boot and PLL rate change were tested on a SiFive HiFive Unleashed
      board.
      
      This version includes several changes requested by Stephen Boyd
      <sboyd@kernel.org>.
      Signed-off-by: default avatarPaul Walmsley <paul.walmsley@sifive.com>
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Cc: Michael Turquette <mturquette@baylibre.com>
      Cc: Stephen Boyd <sboyd@kernel.org>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Cc: Wesley W. Terpstra <wesley@sifive.com>
      Cc: Palmer Dabbelt <palmer@sifive.com>
      Cc: Megan Wachs <megan@sifive.com>
      Cc: linux-riscv@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-clk@vger.kernel.org
      [sboyd@kernel.org: Fix some const and ARRAY_SIZE() issues, make makefile
      only descend if CLK_SIFIVE=y]
      Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      30b8e27e
    • Paul Walmsley's avatar
      clk: analogbits: add Wide-Range PLL library · 7b9487a9
      Paul Walmsley authored
      Add common library code for the Analog Bits Wide-Range PLL (WRPLL) IP
      block, as implemented in TSMC CLN28HPC.
      
      There is no bus interface or register target associated with this PLL.
      This library is intended to be used by drivers for IP blocks that
      expose registers connected to the PLL configuration and status
      signals.
      
      Based on code originally written by Wesley Terpstra
      <wesley@sifive.com>:
      https://github.com/riscv/riscv-linux/commit/999529edf517ed75b56659d456d221b2ee56bb60
      
      
      
      This version incorporates several changes requested by Stephen
      Boyd <sboyd@kernel.org>.
      Signed-off-by: default avatarPaul Walmsley <paul.walmsley@sifive.com>
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Cc: Wesley Terpstra <wesley@sifive.com>
      Cc: Palmer Dabbelt <palmer@sifive.com>
      Cc: Michael Turquette <mturquette@baylibre.com>
      Cc: Stephen Boyd <sboyd@kernel.org>
      Cc: Megan Wachs <megan@sifive.com>
      Cc: linux-clk@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      [sboyd@kernel.org: Fix some const issues]
      Si...
      7b9487a9
  2. 23 Apr, 2019 1 commit
    • Charles Keepax's avatar
      clk: lochnagar: Add support for the Cirrus Logic Lochnagar · 76c54783
      Charles Keepax authored
      
      Lochnagar is an evaluation and development board for Cirrus
      Logic Smart CODEC and Amp devices. It allows the connection of
      most Cirrus Logic devices on mini-cards, as well as allowing
      connection of various application processor systems to provide a
      full evaluation platform. This driver supports the board
      controller chip on the Lochnagar board.
      
      The Lochnagar can take several input clocks from the host system,
      provides several of its own clock sources, and provides extensive
      routing options for those clocks to be supplied to the attached
      CODEC/Amp device.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
      Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      76c54783
  3. 21 Mar, 2019 1 commit
    • Maxime Ripard's avatar
      clk: sunxi: Add Kconfig options · 49c726d5
      Maxime Ripard authored
      
      We used to have a clock framework that isn't really used these days, except
      for a few clocks and/or SoCs. Most of the time, the new framework and
      drivers (sunxi-ng) will provide everything needed for the customer devices
      to operate properly.
      
      Since we're not needing it that much, it might make sense to disable those
      drivers, for example when we want to reduce the kernel size. Let's add
      options in Kconfig that can be disabled if needed, but are still on by
      default to keep the same features in the standard case.
      Acked-by: default avatarStephen Boyd <sboyd@kernel.org>
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
      49c726d5
  4. 09 Jan, 2019 2 commits
  5. 14 Dec, 2018 2 commits
  6. 10 Dec, 2018 1 commit
  7. 16 Oct, 2018 1 commit
  8. 09 Oct, 2018 1 commit
  9. 06 Jul, 2018 1 commit
    • Daniel Mack's avatar
      clk: Add driver for MAX9485 · 33f51046
      Daniel Mack authored
      
      This patch adds a driver for MAX9485, a programmable audio clock generator.
      
      The device requires a 27.000 MHz clock input. It can provide a gated
      buffered output of its input clock and two gated outputs of a PLL that can
      generate one out of 16 discrete frequencies. There is only one PLL however,
      so the two gated outputs will always have the same frequency but they can
      be switched individually.
      
      The driver for this device exposes 4 clocks in total:
      
      - MAX9485_MCLKOUT:      A gated, buffered output of the input clock
      - MAX9485_CLKOUT:       A PLL that can be configured to 16 different
      			discrete frequencies
      - MAX9485_CLKOUT[1,2]:  Two gated outputs for MAX9485_CLKOUT
      
      Some PLL output frequencies can be achieved with different register
      settings. The driver will select the one with lowest jitter in such cases.
      Signed-off-by: default avatarDaniel Mack <daniel@zonque.org>
      [sboyd@kernel.org: Use local variable for val in max9485_clkout_recalc_rate()
      and shorten line of max9485_of_clk_get()]
      Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      33f51046
  10. 15 May, 2018 1 commit
  11. 06 Apr, 2018 1 commit
  12. 23 Mar, 2018 1 commit
  13. 19 Mar, 2018 2 commits
  14. 11 Mar, 2018 1 commit
  15. 28 Feb, 2018 1 commit
    • Sudeep Holla's avatar
      clk: add support for clocks provided by SCMI · 6d6a1d82
      Sudeep Holla authored
      
      On some ARM based systems, a separate Cortex-M based System Control
      Processor(SCP) provides the overall power, clock, reset and system
      control. System Control and Management Interface(SCMI) Message Protocol
      is defined for the communication between the Application Cores(AP)
      and the SCP.
      
      This patch adds support for the clocks provided by SCP using SCMI
      protocol.
      
      Cc: linux-clk@vger.kernel.org
      Cc: Michael Turquette <mturquette@baylibre.com>
      Acked-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      6d6a1d82
  16. 27 Jan, 2018 1 commit
  17. 21 Dec, 2017 1 commit
  18. 31 Aug, 2017 2 commits
  19. 17 Jul, 2017 1 commit
  20. 11 Jul, 2017 1 commit
  21. 21 Jun, 2017 1 commit
  22. 14 Jun, 2017 1 commit
    • Tero Kristo's avatar
      clk: keystone: Add sci-clk driver support · b745c079
      Tero Kristo authored
      
      In K2G, the clock handling is done through firmware executing on a
      separate core. Linux kernel needs to communicate to the firmware
      through TI system control interface to access any power management
      related resources, including clocks.
      
      The keystone sci-clk driver does this, by communicating to the
      firmware through the TI SCI driver. The driver adds support for
      registering clocks through DT, and basic required clock operations
      like prepare/get_rate, etc.
      Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
      [sboyd@codeaurora.org: Make ti_sci_init_clocks() static]
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      b745c079
  23. 22 Apr, 2017 1 commit
  24. 21 Jan, 2017 1 commit
  25. 10 Jan, 2017 1 commit
  26. 02 Nov, 2016 1 commit
  27. 16 Sep, 2016 1 commit
  28. 19 Aug, 2016 1 commit
  29. 15 Aug, 2016 2 commits
  30. 12 Jul, 2016 1 commit
  31. 09 Jul, 2016 1 commit
  32. 06 Jul, 2016 1 commit
  33. 23 Jun, 2016 1 commit
  34. 01 Jun, 2016 1 commit