aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-10-23clk: Remove clk_{register,unregister}_multiplier()Stephen Boyd2-58/+0
These APIs aren't used, so remove them. This can be reverted if we get a user at some point. Reviewed-by: Maxime Ripard <[email protected]> Suggested-by: Michael Turquette <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21Merge branch 'clk-iproc' into clk-nextStephen Boyd12-159/+840
* clk-iproc: clk: iproc: define Broadcom NS2 iProc clock binding clk: iproc: define Broadcom NSP iProc clock binding clk: ns2: add clock support for Broadcom Northstar 2 SoC clk: iproc: Separate status and control variables clk: iproc: Split off dig_filter clk: iproc: Add PLL base write function clk: nsp: add clock support for Broadcom Northstar Plus SoC clk: iproc: Add PWRCTRL support clk: cygnus: Convert all macros to all caps ARM: cygnus: fix link failures when CONFIG_COMMON_CLK_IPROC is disabled
2015-10-21clk: iproc: define Broadcom NS2 iProc clock bindingJon Mason1-0/+48
Document the device tree bindings for Broadcom Northstar 2 architecture based clock controller Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: iproc: define Broadcom NSP iProc clock bindingJon Mason1-0/+30
Document the device tree bindings for Broadcom Northstar Plus architecture based clock controller Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: ns2: add clock support for Broadcom Northstar 2 SoCJon Mason4-1/+362
The Broadcom Northstar 2 SoC is architected under the iProc architecture. It has the following PLLs: GENPLL SCR, GENPLL SW, LCPLL DDR, LCPLL Ports, all derived from an onboard crystal. Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: iproc: Separate status and control variablesJon Mason2-40/+62
Some PLLs have separate registers for Status and Control. The means the pll_base needs to be split into 2 new variables, so that those PLLs can specify device tree registers for those independently. Also, add a new driver flag to identify this presence of the split, and let the driver know that additional registers need to be used. Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: iproc: Split off dig_filterJon Mason4-17/+38
The PLL loop filter/gain can be located in a separate register on some SoCs. Split these off into a separate variable, so that an offset can be added if necessary. Also, make the necessary modifications to the Cygnus and NSP drivers for this change. Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: iproc: Add PLL base write functionJon Mason1-47/+33
All writes to the PLL base address must be flushed if the IPROC_CLK_NEEDS_READ_BACK flag is set. If we add a function to make the necessary write and reads, we can make sure that any future code which makes PLL base writes will do the correct thing. Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: nsp: add clock support for Broadcom Northstar Plus SoCJon Mason3-0/+188
The Broadcom Northstar Plus SoC is architected under the iProc architecture. It has the following PLLs: ARMPLL, GENPLL, LCPLL0, all derived from an onboard crystal. Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: iproc: Add PWRCTRL supportJon Mason2-17/+44
Some iProc SoC clocks use a different way to control clock power, via the PWRDWN bit in the PLL control register. Since the PLL control register is used to access the PWRDWN bit, there is no need for the pwr_base when this is being used. A new flag, IPROC_CLK_EMBED_PWRCTRL, has been added to identify this usage. We can use the AON interface to write the values to enable/disable PWRDOWN. Signed-off-by: Jon Mason <[email protected]> [[email protected]: Remove useless parentheses] Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: cygnus: Convert all macros to all capsJon Mason1-73/+73
The macros that are being used to initialize the values of the clk structures should be all caps. Find and replace all of them with their relevant counterparts. Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21ARM: cygnus: fix link failures when CONFIG_COMMON_CLK_IPROC is disabledArnd Bergmann2-4/+2
When CONFIG_CYGNUS is set but CONFIG_COMMON_CLK_IPROC is disabled, the following link failures are caused: drivers/built-in.o: In function `cygnus_armpll_init': :(.init.text+0x1d290): undefined reference to `iproc_armpll_setup' drivers/built-in.o: In function `cygnus_genpll_clk_init': :(.init.text+0x1d2c4): undefined reference to `iproc_pll_clk_setup' drivers/built-in.o: In function `cygnus_lcpll0_clk_init': :(.init.text+0x1d304): undefined reference to `iproc_pll_clk_setup' drivers/built-in.o: In function `cygnus_mipipll_clk_init': :(.init.text+0x1d344): undefined reference to `iproc_pll_clk_setup' drivers/built-in.o: In function `cygnus_asiu_init': :(.init.text+0x1d370): undefined reference to `iproc_asiu_setup' It is fixed it by always selecting COMMON_CLK_IPROC from ARCH_BCM_IPROC, and making COMMON_CLK_IPROC a silent option (thus preventing it from being erroneously disabled by a user). Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Jon Mason <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21Merge tag 'sunxi-clocks-for-4.4' of ↵Stephen Boyd9-0/+623
https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into clk-next Pull Allwinner clock additions for 4.4 from Maxime Ripard: - Support for the Audio PLL and child clocks - Support for the A33 AHB gates - New clk-multiplier generic driver * tag 'sunxi-clocks-for-4.4' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: clk: sunxi: mod1 clock support clk: sunxi: codec clock support clk: sunxi: pll2: Add A13 support clk: sunxi: Add a driver for the PLL2 clk: Add a basic multiplier clock clk: sunxi: Add A33 gates support
2015-10-21clk: imx31: add missing of_node_putJulia Lawall1-1/+3
for_each_compatible_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. The semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ local idexpression n; expression e; @@ for_each_compatible_node(n,...) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n // </smpl> Signed-off-by: Julia Lawall <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: imx27: add missing of_node_putJulia Lawall1-1/+3
for_each_compatible_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. The semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ local idexpression n; expression e; @@ for_each_compatible_node(n,...) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n // </smpl> Signed-off-by: Julia Lawall <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: si5351: add missing of_node_putJulia Lawall1-7/+10
for_each_child_of_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | + of_node_put(child); ? return ...; ) ... } // </smpl> The resulting puts were manually moved to the end of the function for conciseness. Signed-off-by: Julia Lawall <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: add missing of_node_putJulia Lawall1-1/+4
for_each_matching_node_and_match performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression e1,e2,e; local idexpression np; @@ for_each_matching_node_and_match(np, e1, e2) { ... when != of_node_put(np) when != e = np ( return np; | + of_node_put(np); ? return ...; ) ... } // </smpl> Besides the problem identified by the semantic patch, this patch adds an of_node_get in front of saving np in a field of parent, to account for the fact that this value will be put on going on to the next element in the iteration, and then adds of_node_puts in the two loops where the parent pointer can be freed. Signed-off-by: Julia Lawall <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-21clk: sunxi: mod1 clock supportEmilio López2-0/+82
The module 1 type of clocks consist of a gate and a mux and are used on the audio blocks to mux and gate the PLL2 outputs for AC97, IIS or SPDIF. This commit adds support for them on the sunxi clock driver. Signed-off-by: Emilio López <[email protected]> Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Chen-Yu Tsai <[email protected]>
2015-10-21clk: sunxi: codec clock supportEmilio López2-0/+45
The codec clock on sun4i, sun5i and sun7i is a simple gate with PLL2 as parent. Add a driver for such a clock. Signed-off-by: Emilio López <[email protected]> Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Chen-Yu Tsai <[email protected]>
2015-10-21clk: sunxi: pll2: Add A13 supportMaxime Ripard1-5/+33
The A13, unlike the A10 and A20, doesn't use a pass-through exception for the 0 value in the pre and post dividers, but increments all the values written in the register by one. Add an exception for both these cases to handle them nicely. Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Chen-Yu Tsai <[email protected]>
2015-10-21clk: sunxi: Add a driver for the PLL2Maxime Ripard3-0/+242
The PLL2 on the A10 and later SoCs is the clock used for all the audio related operations. This clock has a somewhat complex output tree, with three outputs (2X, 4X and 8X) with a fixed divider from the base clock, and an output (1X) with a post divider. However, we can simplify things since the 1X divider can be fixed, and we end up by having a base clock not exposed to any device (or at least directly, since the 4X output doesn't have any divider), and 4 fixed divider clocks that will be exposed. This clock seems to have been introduced, at least in this form, in the revision B of the A10, but we don't have any information on the clock used on the revision A. Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Chen-Yu Tsai <[email protected]>
2015-10-21clk: Add a basic multiplier clockMaxime Ripard3-0/+224
Some clocks are using a multiplier component, however, unlike their mux, gate or divider counterpart, these factors don't have a basic clock implementation. This leads to code duplication across platforms that want to use that kind of clocks, and the impossibility to use the composite clocks with such a clock without defining your own rate operations. Create such a driver in order to remove these issues, and hopefully factor the implementations, reducing code size across platforms and consolidating the various implementations. Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Chen-Yu Tsai <[email protected]>
2015-10-21clk: iproc: Fix PLL output frequency calculationSimran Rai1-8/+5
This patch affects the clocks that use fractional ndivider in their PLL output frequency calculation. Instead of 2^20 divide factor, the clock's ndiv integer shift was used. Fixed the bug by replacing ndiv integer shift with 2^20 factor. Signed-off-by: Simran Rai <[email protected]> Signed-off-by: Ray Jui <[email protected]> Reviewed-by: Scott Branden <[email protected]> Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support") Cc: <[email protected]> # v4.1+ Signed-off-by: Michael Turquette <[email protected]>
2015-10-21clk: berlin: bg2: remove CLK_IGNORE_UNUSED flag for sdio clkJisheng Zhang1-2/+2
The clocks' properties have been already properly set, so there's no need to set this flag for sdio0 and sdio1 clk any more. Signed-off-by: Jisheng Zhang <[email protected]> Signed-off-by: Michael Turquette <[email protected]>
2015-10-21clk: berlin: bg2q: remove CLK_IGNORE_UNUSED flag for sdio clkJisheng Zhang1-1/+1
Since we have added the necessary two clks' properties in dts, we can remove the "sdio" clk's CLK_IGNORE_UNUSED flag now. Signed-off-by: Jisheng Zhang <[email protected]> Signed-off-by: Michael Turquette <[email protected]>
2015-10-21Merge branch 'clk-shmobile-for-v4.4' of ↵Michael Turquette3-0/+147
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-next
2015-10-20clk: shmobile: Add r8a7795 CPG Core Clock DefinitionsGeert Uytterhoeven1-0/+63
Add all R-Car H3 Clock Pulse Generator Core Clock Outputs, as listed in Table 8.2a ("List of Clocks [R-Car H3]") of the R-Car Gen3 datasheet (rev. 0.5E). Note that internal CPG clocks (S0, S1, S2, S3, SDSRC, SSPSRC, and RPCSRC) are not included, as they're used as internal clock sources only. Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Michael Turquette <[email protected]> Reviewed-by: Magnus Damm <[email protected]>
2015-10-20clk: shmobile: Add new Renesas CPG/MSSR DT bindingsGeert Uytterhoeven2-0/+84
On Renesas ARM SoCs (SH/R-Mobile, R-Car, RZ), the CPG (Clock Pulse Generator) and MSSR (Module Standby and Software Reset) blocks are intimately connected, and share the same register block. Hence it makes sense to describe these two blocks using a single device node in DT, instead of using a hierarchical structure with multiple nodes, using a mix of generic and SoC-specific bindings. These new DT bindings are intended to replace the existing DT bindings for CPG core clocks ("renesas,*-cpg-clocks", "renesas,cpg-div6-clock") and module clocks ("renesas,*-mstp-clocks"), at least for new SoCs. This will make it easier to add module reset support later, which is currently not implemented, and difficult to achieve using the existing bindings due to the intertwined register layout. Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Michael Turquette <[email protected]> Reviewed-by: Magnus Damm <[email protected]>
2015-10-20Merge tag 'tegra-for-4.4-clk' of ↵Michael Turquette7-113/+163
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into clk-next clk: tegra: Changes for v4.4-rc1 This contains a patch that allows the DFLL to use clock rates higher than 2^31-1 Hz by using the ->determine_rate() operation instead of the ->round_rate() operation. Other than that there's a couple of cleanups in preparation for Tegra210 support.
2015-10-20clk: tegra: Modify tegra_audio_clk_init to accept more pllsRhyland Klein5-11/+56
tegra_audio_clk_init was written expecting a single PLL to be passed in directly. Change this to accept an array which will allow for supporting multiple plls and specifying specific data about them, like their parent, which may change over time. Reviewed-by: Benson Leung <[email protected]> Signed-off-by: Rhyland Klein <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
2015-10-20clk: tegra: Update struct tegra_clk_pll_params kerneldocThierry Reding1-3/+15
Benson Leung pointed out that the kerneldoc for this structure has become stale. Update the field descriptions to match the structure content. Reported-by: Benson Leung <[email protected]> Acked-by: Rhyland Klein <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Reviewed-by: Benson Leung <[email protected]> Signed-off-by: Rhyland Klein <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
2015-10-20clk: tegra: Fix comments for structure definitionsRhyland Klein1-37/+37
Some fields moved from the tegra_clk_pll struct to the tegra_pll_params struct. Update the struct comments to reflect where the fields really are. Signed-off-by: Rhyland Klein <[email protected]> Acked-By: Peter De Schrijver <[email protected]> Reviewed-by: Benson Leung <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
2015-10-20clk: tegra: dfll: Monitor code is DEBUG_FS onlyThierry Reding1-50/+49
The monitor code is used with DEBUG_FS only, so move it into the corresponding #ifdef block to avoid potential compiler warnings. Signed-off-by: Thierry Reding <[email protected]>
2015-10-19clk: keystone: fix a trivial typoGeliang Tang1-1/+1
s/regsiter/register/ Signed-off-by: Geliang Tang <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: mvebu: Use of_clk_get_parent_name()Stephen Boyd1-3/+1
This reverts commit e79b202c632f24f49f2eb9459b88b5fd9e332263. Now that we use of_clk_get() inside of_clk_get_parent_name() we can safely use it here. Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: qcom: mmcc-8960: Add DSI related clocksArchit Taneja1-0/+404
Add rcg and branch clk structs for DSI1 and DSI2 blocks found in MSM8960 and APQ8064. Each DSI instance has 4 pairs of rcg and branch clocks. Populate arrays mmcc_msm8960_clks and mmcc_apq8064_clks with these clocks. Signed-off-by: Archit Taneja <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: qcom: clk-rcg: Add customized clk_ops for DSI RCGsArchit Taneja2-0/+233
DSI specific RCG clocks required customized clk_ops. There are a total of 4 RCGs per DSI block: DSI, BYTE, ESC and PIXEL. There are a total of 2 clocks coming from the DSI PLL, which serve as inputs to these RCGs. The BYTE and ESC RCGs are fed by one of the post dividers of DSI1 or DSI2 PLLs, and the DSI and PIXEL RCGs are fed by another divider of the PLL. In each of the 2 groups above, only one of the clocks sets its parent. These are BYTE RCG and DSI RCG for each of the groups respectively, as shown in the diagram below. The DSI and BYTE RCGs serve as bypass clocks. We create a new set of ops clk_rcg_bypass2_ops, which are like the regular bypass ops, but don't take in a freq table, since the DSI driver using these clocks is parent-able. The PIXEL RCG needs to derive the required pixel clock using dsixpll. It parses a m/n frac table to retrieve the correct clock. The ESC RCG doesn't have a frac M/N block, it can just apply a pre- divider. Its ops simply check if the required clock rate can be achieved by the pre-divider. +-------------------+ | |---dsixpllbyte---o---> To byte RCG | | | (sets parent rate) | | | | | | | DSI 1/2 PLL | | | | o---> To esc RCG | | (doesn't set parent rate) | | | |----dsixpll-----o---> To dsi RCG +-------------------+ | (sets parent rate) ( x = 1, 2 ) | | o---> To pixel rcg (doesn't set parent rate) Signed-off-by: Archit Taneja <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: xgene: Remove unused setup.h includeStephen Boyd1-1/+0
This include doesn't look to be used, and compiling this file on arm64 still works, so remove it. Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: Allow drivers to build if COMPILE_TEST is enabledJavier Martinez Canillas3-7/+7
These drivers only have runtime but no build time dependencies so can be built for testing purposes if the Kconfig COMPILE_TEST option is enabled. This is useful to have more build coverage and make sure that drivers are not affected by changes that could cause build regressions. Signed-off-by: Javier Martinez Canillas <[email protected]> Acked-by: Scott Branden <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: Make clk input parameter of __clk_get_name() constGeert Uytterhoeven2-2/+2
When calling __clk_get_name() on a const clock: warning: passing argument 1 of '__clk_get_name' discards 'const' qualifier from pointer target type include/linux/clk-provider.h:613:13: note: expected 'struct clk *' but argument is of type 'const struct clk *' __clk_get_name() does not modify the passed clock, hence make it const. Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: shmobile: mstp: Drop bogus closing parenthesis in error messageGeert Uytterhoeven1-1/+1
Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: shmobile: r8a7778: Make r8a7778_rates[] and r8a7778_divs[] static constGeert Uytterhoeven1-4/+4
r8a7778_rates[] and r8a7778_divs[] are only used in clk-r8a7778.c, and never modified. Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16clk: Use %u to format unsigned int in of_clk_src_onecell_get()Geert Uytterhoeven1-1/+1
Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-16Merge tag 'imx-clk-4.4' of ↵Stephen Boyd18-36/+219
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into clk-next Pull i.MX updates from Shawn Guo: "The i.MX clock updates for 4.4: - A couple of fixes on i.MX31 and i.MX35 clock initialization functions which makes mxc_timer_init() currently be called twice for DT boot. - Increase i.MX6UL AXI bus clock rate to 264MHz which is the optimal design target. - Add a few missing clocks, ADC clock for i.MX7D, OCOTP clock for Vybrid, and SPDIF_GCLK for i.MX6. - A series from Lucas to fix early debug UART clock setup. This is currently a one-off fix for i.MX platform, and can be extended to become a generic solution later." * tag 'imx-clk-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: clk: imx6: Add SPDIF_GCLK clock in clock tree clk: imx7d: add ADC root clock clk: imx31: Do not call mxc_timer_init twice when booting with DT clk: imx7d: retain early UART clocks during kernel init clk: imx6: retain early UART clocks during kernel init clk: imx5: retain early UART clocks during kernel init clk: imx35: retain early UART clocks during kernel init clk: imx31: retain early UART clocks during kernel init clk: imx27: retain early UART clocks during kernel init clk: imx25: retain early UART clocks during kernel init clk: imx: add common logic to detect early UART usage clk: imx35: Do not call mxc_timer_init twice when booting with DT clk: clk-vf610: Add clock for Vybrid OCOTP controller clk: imx: increase AXI clock rate to 264MHz for i.MX6UL
2015-10-15clk: Make of_clk_get_parent_name() robust with #clock-cells = 1Stephen Boyd1-2/+20
If a clock provider has #clock-cells = 1 and we call of_clk_get_parent_name() on it we may end up returning the name of the provider node if the provider doesn't have a clock-output-names property. This doesn't make sense, especially when you consider that calling of_clk_get_parent_name() on such a node with different indices will return the same name each time. Let's try getting the clock from the framework via of_clk_get() instead, and only fallback to the node name if we have a provider with #clock-cells = 0. This way, we can't hand out the same name for different clocks when we don't actually know their names. Cc: Thomas Petazzoni <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-15Merge branch 'clk-fixes' into clk-nextStephen Boyd1-1/+3
* clk-fixes: Partially revert "clk: mvebu: Convert to clk_hw based provider APIs"
2015-10-14clk: max77802: Update MODULE_AUTHOR() email addressJavier Martinez Canillas1-1/+1
The email address listed in MODULE_AUTHOR() no longer exist so to prevent people to send emails to the old address, replace it with my current one. Signed-off-by: Javier Martinez Canillas <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-14Partially revert "clk: mvebu: Convert to clk_hw based provider APIs"Stephen Boyd1-1/+3
This partially reverts commit eca61c9ff2588e1df373e61078e1874976315839. Thomas reports that it causes regressions on Armada XP devices. This is because of_clk_get_parent_name() relies on the property 'clock-output-names' to resolve the name of a clock's parent, without trying to get the clock from the framework and call __clk_get_name(). Given that Armada XP devices don't have the 'clock-output-names' property, of_clk_get_parent_name() returns the name of the node which doesn't match the actual parent clock's name at all, causing CPU clocks to never link up with their parents. Reported-by: Thomas Petazzoni <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-12clk: tegra: delete unneeded of_node_putJulia Lawall1-3/+1
for_each_child_of_node performs an of_node_put on each iteration, so putting an of_node_put before a continue results in a double put. The semantic match that finds this problem is as follows (http://coccinelle.lip6.fr): // <smpl> @@ expression root,e; local idexpression child; iterator name for_each_child_of_node; @@ for_each_child_of_node(root, child) { ... when != of_node_get(child) * of_node_put(child); ... * continue; } // </smpl> Signed-off-by: Julia Lawall <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
2015-10-12Merge branch 'clk-bcm2835' into clk-nextStephen Boyd6-56/+1668
* clk-bcm2835: clk: bcm2835: Add support for programming the audio domain clocks clk: bcm2835: Add binding docs for the new platform clock driver. clk: bcm2835: Move under bcm/ with other Broadcom SoC clk drivers.