Re: [PATCH v6 00/16] ARM: at91: move to common clk framework
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
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
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
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
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