Re: [PATCH v6 00/16] ARM: at91: move to common clk framework

2013-12-02 Thread boris brezillon

Hi Mike,

Le 01/12/2013 00:05, Mike Turquette a écrit :

Quoting Boris BREZILLON (2013-11-28 04:36:24)

Hello,

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

Oops, I just replied to v5 of this series. Thanks for the fixes. Which
tree do you want this to go through?


I'm not sure: the ARM: at91: move to common clk framework series
depends on this one.

Nicolas, what do you think ?
Do you want to take it into your tree ?


Regards,
Mike


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 +-
  

Re: [PATCH v6 00/16] ARM: at91: move to common clk framework

2013-12-02 Thread Nicolas Ferre

On 01/12/2013 00:05, Mike Turquette :

Quoting Boris BREZILLON (2013-11-28 04:36:24)

Hello,

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


Oops, I just replied to v5 of this series. Thanks for the fixes. Which
tree do you want this to go through?


Mike, Boris,

I will take the series in the at91 git tree that will go through arm-soc.

This way, I can synchronize with the other series cooked by Boris which 
actually implements the CCF for sama5d3 SoCs.


Mike, I keep you in the CC list of my upcoming pull-request to Olof, 
Kevin and Arnd.


Thanks, bye,



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 +-
  

Re: [PATCH v6 00/16] ARM: at91: move to common clk framework

2013-12-02 Thread boris brezillon

On 02/12/2013 12:43, boris brezillon wrote:

Hi Mike,

Le 01/12/2013 00:05, Mike Turquette a écrit :

Quoting Boris BREZILLON (2013-11-28 04:36:24)

Hello,

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

Oops, I just replied to v5 of this series. Thanks for the fixes. Which
tree do you want this to go through?


I'm not sure: the ARM: at91: move to common clk framework series

Oops. I meant ARM: at91: use new at91 clks for samad3 SoCs.


depends on this one.

Nicolas, what do you think ?
Do you want to take it into your tree ?


Regards,
Mike


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 +-
  

Re: [PATCH v6 00/16] ARM: at91: move to common clk framework

2013-11-30 Thread Mike Turquette
Quoting Boris BREZILLON (2013-11-28 04:36:24)
 Hello,
 
 This patch series is the 5th version of the at91 clk implementations
 using the Common Clk Framework.

Oops, I just replied to v5 of this series. Thanks for the fixes. Which
tree do you want this to go through?

Regards,
Mike

 
 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   

[PATCH v6 00/16] ARM: at91: move to common clk framework

2013-11-28 Thread Boris BREZILLON
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