devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 00/16] ARM: at91: move to common clk framework
@ 2013-11-28 12:36 Boris BREZILLON
       [not found] ` <1385642184-6467-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
                   ` (12 more replies)
  0 siblings, 13 replies; 21+ messages in thread
From: Boris BREZILLON @ 2013-11-28 12:36 UTC (permalink / raw)
  To: Nicolas Ferre, Russell King, Mike Turquette, Felipe Balbi,
	Jason Cooper
  Cc: Boris BREZILLON, devicetree, linux-doc, linux-kernel,
	linux-arm-kernel, linux-usb

Hello,

This patch series is the 5th version of the at91 clk implementations
using the Common Clk Framework.

Most of the clock provided by the PMC (Power Management Controller) are
implemented :
- main clock (main oscillator)
- pll clocks
- master clock
- programmable clocks
- utmi clock
- peripheral clocks
- system clocks

Actually some clk drivers are missing (slow clk, main clk and processor
clk), and some drivers only implement a subset of the hardware capabilities
(master clk rate change is missing).
But this series implements all the already available clks, and I will hopefully
add missing features in a near future.

This implementation is only compatible with device tree definition.
The goal is to define the whole clock tree using the device tree.

Just a note to let you know these bindings are currently unstable and might
change in the future.


Best Regards,
Boris

Changes since v5:
 - remove peripheral divisors macros from dt binding include file
 - remove file path from comment blocks
 - replace pll and utmi disable function by unprepare function to
   avoid issue when disabling and reenabling a clk
 - fix programmable clk interrupt retrieval
 - fix OF_CLK_DECLARE names (xxx_clk_main -> xxx_clk_pmc)
 - add missing comma in at91rm9200 main clk dt declaration
 - fix num_parents check in smd clk driver

Changes since v4:
 - rework dt bindings:
   * replace "atmel,clk-id" property by the standard "reg" property
   * reference system, peripheral and programmable clks using the direct
     clk node instead of the parent node plus a clk id
 - provide a new helper function (of_at91_get_clk_range) to retrieve a clk
   range from the device tree

Changes since v3:
 - simplify master clk implementation (drop set_rate/parent support)
 - fix bug in set_rate function of pll driver
 - fix coding style issues
 - define macros and constants where needed
 - remove peripheral id macro references
 - remove sam9g35 specific handling (sam9g35 = sam9x5)
 - rework main clk prepare function to handle automatic rate calculation

Changes since v2:
 - fix several bugs in clk implementations
 - drop non-dt boards support
 - split the series to ease review and tests:
   * 1 patch series for new clk implementations (this series)
   * 1 patch series to move each at91 SoC to common clk framework (coming soon)
 - modify dt-bindings (add atmel,clk- prefix to atmel specific properties)
 - add clk macros for dt-bindings
 - add pmc framework (helper function to access pmc registers)
 - add interrupt support to enable passive wait in clk_prepare functions

Changes since v1:
 - fix bugs in pll, programmable and system clock implementations
   (wrong bit position).
 - add usb clock configuration support (ohci and udc drivers +
   clk_lookup for non dt boards)
 - rework of the system clock interfaces (no need to define a parent clock,
   system clock is a gate with no rate info)
 - change system, peripheral and programmable clk dt bindings (1 master node
   and multiple child nodes each defining a system/peripheral or prog clock)
 - fix bugs in sama5 dt definition

Boris BREZILLON (16):
  ARM: at91: move at91_pmc.h to include/linux/clk/at91_pmc.h
  ARM: at91: add Kconfig options for common clk support
  clk: at91: add PMC base support
  clk: at91: add PMC macro file for dt definitions
  clk: at91: add PMC main clock
  clk: at91: add PMC pll clocks
  clk: at91: add PMC master clock
  clk: at91: add PMC system clocks
  clk: at91: add PMC peripheral clocks
  clk: at91: add PMC programmable clocks
  clk: at91: add PMC utmi clock
  clk: at91: add PMC usb clock
  clk: at91: add PMC smd clock
  dt: binding: add at91 clks dt bindings documentation
  ARM: at91: move pit timer to common clk framework
  ARM: at91: add new compatible strings for pmc driver

 .../devicetree/bindings/clock/at91-clock.txt       |  339 +++++++++++++
 arch/arm/mach-at91/Kconfig                         |   44 ++
 arch/arm/mach-at91/Kconfig.non_dt                  |    6 +
 arch/arm/mach-at91/Makefile                        |    2 +-
 arch/arm/mach-at91/at91rm9200.c                    |    2 +-
 arch/arm/mach-at91/at91sam9260.c                   |    2 +-
 arch/arm/mach-at91/at91sam9261.c                   |    2 +-
 arch/arm/mach-at91/at91sam9263.c                   |    2 +-
 arch/arm/mach-at91/at91sam926x_time.c              |   14 +-
 arch/arm/mach-at91/at91sam9g45.c                   |    2 +-
 arch/arm/mach-at91/at91sam9n12.c                   |    2 +-
 arch/arm/mach-at91/at91sam9rl.c                    |    2 +-
 arch/arm/mach-at91/at91sam9x5.c                    |    2 +-
 arch/arm/mach-at91/clock.c                         |    7 +-
 arch/arm/mach-at91/generic.h                       |    3 +-
 arch/arm/mach-at91/pm.c                            |    2 +-
 arch/arm/mach-at91/pm_slowclock.S                  |    2 +-
 arch/arm/mach-at91/sama5d3.c                       |    2 +-
 arch/arm/mach-at91/setup.c                         |    8 +-
 drivers/clk/Makefile                               |    1 +
 drivers/clk/at91/Makefile                          |   12 +
 drivers/clk/at91/clk-main.c                        |  187 +++++++
 drivers/clk/at91/clk-master.c                      |  270 ++++++++++
 drivers/clk/at91/clk-peripheral.c                  |  410 +++++++++++++++
 drivers/clk/at91/clk-pll.c                         |  531 ++++++++++++++++++++
 drivers/clk/at91/clk-plldiv.c                      |  135 +++++
 drivers/clk/at91/clk-programmable.c                |  366 ++++++++++++++
 drivers/clk/at91/clk-smd.c                         |  171 +++++++
 drivers/clk/at91/clk-system.c                      |  135 +++++
 drivers/clk/at91/clk-usb.c                         |  398 +++++++++++++++
 drivers/clk/at91/clk-utmi.c                        |  159 ++++++
 drivers/clk/at91/pmc.c                             |  397 +++++++++++++++
 drivers/clk/at91/pmc.h                             |  116 +++++
 drivers/usb/gadget/atmel_usba_udc.c                |    2 +-
 include/dt-bindings/clk/at91.h                     |   22 +
 .../include/mach => include/linux/clk}/at91_pmc.h  |    4 +-
 36 files changed, 3741 insertions(+), 20 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/at91-clock.txt
 create mode 100644 drivers/clk/at91/Makefile
 create mode 100644 drivers/clk/at91/clk-main.c
 create mode 100644 drivers/clk/at91/clk-master.c
 create mode 100644 drivers/clk/at91/clk-peripheral.c
 create mode 100644 drivers/clk/at91/clk-pll.c
 create mode 100644 drivers/clk/at91/clk-plldiv.c
 create mode 100644 drivers/clk/at91/clk-programmable.c
 create mode 100644 drivers/clk/at91/clk-smd.c
 create mode 100644 drivers/clk/at91/clk-system.c
 create mode 100644 drivers/clk/at91/clk-usb.c
 create mode 100644 drivers/clk/at91/clk-utmi.c
 create mode 100644 drivers/clk/at91/pmc.c
 create mode 100644 drivers/clk/at91/pmc.h
 create mode 100644 include/dt-bindings/clk/at91.h
 rename {arch/arm/mach-at91/include/mach => include/linux/clk}/at91_pmc.h (98%)

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-12-02 13:10 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-28 12:36 [PATCH v6 00/16] ARM: at91: move to common clk framework Boris BREZILLON
     [not found] ` <1385642184-6467-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-11-28 12:38   ` [PATCH v6 01/16] ARM: at91: move at91_pmc.h to include/linux/clk/at91_pmc.h Boris BREZILLON
2013-11-28 13:37   ` [PATCH v6 10/16] clk: at91: add PMC programmable clocks Boris BREZILLON
2013-11-28 13:45   ` [PATCH v6 12/16] clk: at91: add PMC usb clock Boris BREZILLON
2013-11-28 13:53   ` [PATCH v6 14/16] dt: binding: add at91 clks dt bindings documentation Boris BREZILLON
2013-11-30 23:05   ` [PATCH v6 00/16] ARM: at91: move to common clk framework Mike Turquette
2013-12-02 11:43     ` boris brezillon
     [not found]       ` <529C7245.5010409-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-12-02 13:03         ` boris brezillon
2013-12-02 13:10     ` Nicolas Ferre
2013-11-28 12:39 ` [PATCH v6 02/16] ARM: at91: add Kconfig options for common clk support Boris BREZILLON
2013-11-28 12:40 ` [PATCH v6 03/16] clk: at91: add PMC base support Boris BREZILLON
2013-11-28 12:40 ` [PATCH v6 04/16] clk: at91: add PMC macro file for dt definitions Boris BREZILLON
2013-11-28 12:42 ` [PATCH v6 05/16] clk: at91: add PMC main clock Boris BREZILLON
2013-11-28 12:43 ` [PATCH v6 06/16] clk: at91: add PMC pll clocks Boris BREZILLON
2013-11-28 12:43 ` [PATCH v6 07/16] clk: at91: add PMC master clock Boris BREZILLON
2013-11-28 12:45 ` [PATCH v6 08/16] clk: at91: add PMC system clocks Boris BREZILLON
2013-11-28 12:46 ` [PATCH v6 09/16] clk: at91: add PMC peripheral clocks Boris BREZILLON
2013-11-28 13:39 ` [PATCH v6 11/16] clk: at91: add PMC utmi clock Boris BREZILLON
2013-11-28 13:46 ` [PATCH v6 13/16] clk: at91: add PMC smd clock Boris BREZILLON
2013-11-28 13:55 ` [PATCH v6 15/16] ARM: at91: move pit timer to common clk framework Boris BREZILLON
2013-11-28 13:55 ` [PATCH v6 16/16] ARM: at91: add new compatible strings for pmc driver Boris BREZILLON

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).