1. 02 12月, 2015 1 次提交
    • S
      ARM: imx: clk-vf610: fix SAI clock tree · 3b60a26f
      Stefan Agner 提交于
      The Synchronous Audio Interface (SAI) instances are clocked by
      independent clocks: The bus clock and the audio clock (as shown in
      Figure 51-1 in the Vybrid Reference Manual). The clock gates in
      CCGR0/CCGR1 for SAI0 through SAI3 are bus clock gates, as access
      tests to the registers with/without gating those clocks have shown.
      The audio clock is gated by the SAIx_EN gates in CCM_CSCDR1,
      followed by a clock divider (SAIx_DIV). Currently, the parent of
      the bus clock gates has been assigned to SAIx_DIV, which is not
      involved in the bus clock path for the SAI instances (see chapter
      9.10.12, SAI clocking in the Vybrid Reference Manual).
      
      Fix this by define the parent clock of VF610_CLK_SAIx to be the bus
      clock.
      
      If the driver needs the audio clock (when used in master mode), a
      fixed device tree is required which assign the audio clock properly
      to VF610_CLK_SAIx_DIV.
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      Acked-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NShawn Guo <shawnguo@kernel.org>
      3b60a26f
  2. 23 9月, 2015 1 次提交
  3. 03 6月, 2015 3 次提交
  4. 13 1月, 2015 2 次提交
  5. 05 1月, 2015 1 次提交
  6. 23 11月, 2014 1 次提交
    • S
      ARM: imx: clk-vf610: get input clocks from assigned clocks · a41820d6
      Stefan Agner 提交于
      With the clock assignment device tree changes, the clocks get
      initialized properly but the search for those clocks fails with
      errors:
      
      [    0.000000] i.MX clk 4: register failed with -17
      [    0.000000] i.MX clk 5: register failed with -17
      
      This is because the module can't find those clocks anymore, and
      tries to initialize fixed clocks with the same name.
      
      Get the clock modules input clocks from the assigned clocks by
      default by using of_clk_get_by_name(). If this function returns
      not a valid clock, fall back to the old behaviour and search the
      input clock from the device tree's /clocks/$name node.
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      a41820d6
  7. 04 11月, 2014 1 次提交
    • S
      ARM: imx: clk-vf610: define PLL's clock tree · c72c5532
      Stefan Agner 提交于
      So far, the required PLL's (PLL1/PLL2/PLL5) have been initialized
      by boot loader and the kernel code defined fixed rates according
      to those default configurations. Beginning with the USB PLL7 the
      code started to initialize the PLL's itself (using imx_clk_pllv3).
      
      However, since commit dc4805c2
      (ARM: imx: remove ENABLE and BYPASS bits from clk-pllv3 driver)
      imx_clk_pllv3 no longer takes care of the ENABLE and BYPASS bits,
      hence the USB PLL were not configured correctly anymore.
      
      This patch not only fixes those USB PLL's, but also makes use of
      the imx_clk_pllv3 for all PLL's and alignes the code with the PLL
      support of the i.MX6 series.
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      c72c5532
  8. 16 9月, 2014 2 次提交
  9. 18 7月, 2014 2 次提交
  10. 05 3月, 2014 1 次提交
    • L
      ARM: imx: clk-vf610: Suppress duplicate const sparse warning · b78f1e80
      Liu Ying 提交于
      There should be no duplicate const specifiers for those static
      constant character string arrays defined for clock mux options.
      Also, the arrays are only taken as the 5th argument for the
      imx_clk_mux() function, which is in the type of 'const char
      **parents'.  So, let's remove the 2nd const specifier right
      after 'char'.
      
      This patch fixes these sparse warnings:
      arch/arm/mach-imx/clk-vf610.c:66:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:67:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:68:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:69:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:70:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:71:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:72:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:73:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:74:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:75:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:76:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:77:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:78:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:79:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:80:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:81:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:83:25: warning: duplicate const
      arch/arm/mach-imx/clk-vf610.c:84:25: warning: duplicate const
      Signed-off-by: NLiu Ying <Ying.Liu@freescale.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      b78f1e80
  11. 09 12月, 2013 1 次提交
  12. 15 7月, 2013 1 次提交
    • S
      ARM: imx: fix vf610 enet module clock selection · 4f71612e
      Shawn Guo 提交于
      The fec/enet driver calculates MDC rate with the formula below.
      
        ref_freq / ((MII_SPEED + 1) x 2)
      
      The ref_freq here is the fec internal module clock, which is missing
      from clk-vf610 clock driver right now.  And clk-vf610 driver mistakenly
      supplies RMII clock (50 MHz) as the source to fec.  This results in the
      situation that fec driver gets ref_freq as 50 MHz, while physically it
      runs at 66 MHz (fec module clock physically sources from ipg which runs
      at 66 MHz).  That's why software expects MDC runs at 2.5 MHz, while the
      measurement tells it runs at 3.3 MHz.  And this causes the PHY KSZ8041
      keeps swithing between Full and Half mode as below.
      
        libphy: 400d0000.etherne:00 - Link is Up - 100/Full
        libphy: 400d0000.etherne:00 - Link is Up - 100/Half
        libphy: 400d0000.etherne:00 - Link is Up - 100/Full
        libphy: 400d0000.etherne:00 - Link is Up - 100/Half
        libphy: 400d0000.etherne:00 - Link is Up - 100/Full
        libphy: 400d0000.etherne:00 - Link is Up - 100/Half
      
      Add the missing module clock for ENET0 and ENET1, and correct the clock
      supplying in device tree to fix above issue.
      
      Thanks to Alison Wang <b18965@freescale.com> for debugging the issue.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      4f71612e
  13. 17 6月, 2013 1 次提交