1. Dec 09, 2016
    • Boris Brezillon's avatar
      clk: bcm: Support rate change propagation on bcm2835 clocks · 155e8b3b
      Boris Brezillon authored
      
      
      Some peripheral clocks, like the VEC (Video EnCoder) clock need to be set
      to a precise rate (in our case 108MHz). With the current implementation,
      where peripheral clocks are not allowed to forward rate change requests
      to their parents, it is impossible to match this requirement unless the
      bootloader has configured things correctly, or a specific rate has been
      assigned through the DT (with the assigned-clk-rates property).
      
      Add a new field to struct bcm2835_clock_data to specify which parent
      clocks accept rate change propagation, and support set rate propagation
      in bcm2835_clock_determine_rate().
      
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Reviewed-by: default avatarEric Anholt <eric@anholt.net>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      155e8b3b
    • Boris Brezillon's avatar
      clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk · 68af4fa8
      Boris Brezillon authored
      
      
      bcm2835_pll_divider_off() is resetting the divider field in the A2W reg
      to zero when disabling the clock.
      
      Make sure we preserve this value by reading the previous a2w_reg value
      first and ORing the result with A2W_PLL_CHANNEL_DISABLE.
      
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Fixes: 41691b88
      
       ("clk: bcm2835: Add support for programming the audio domain clocks")
      Cc: <stable@vger.kernel.org>
      Reviewed-by: default avatarEric Anholt <eric@anholt.net>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      68af4fa8
    • Richard Watts's avatar
      clk: ti: omap36xx: Work around sprz319 advisory 2.1 · 035cd485
      Richard Watts authored
      
      
      The OMAP36xx DPLL5, driving EHCI USB, can be subject to a long-term
      frequency drift. The frequency drift magnitude depends on the VCO update
      rate, which is inversely proportional to the PLL divider. The kernel
      DPLL configuration code results in a high value for the divider, leading
      to a long term drift high enough to cause USB transmission errors. In
      the worst case the USB PHY's ULPI interface can stop responding,
      breaking USB operation completely. This manifests itself on the
      Beagleboard xM by the LAN9514 reporting 'Cannot enable port 2. Maybe the
      cable is bad?' in the kernel log.
      
      Errata sprz319 advisory 2.1 documents PLL values that minimize the
      drift. Use them automatically when DPLL5 is used for USB operation,
      which we detect based on the requested clock rate. The clock framework
      will still compute the PLL parameters and resulting rate as usual, but
      the PLL M and N values will then be overridden. This can result in the
      effective clock rate being slightly different than the rate cached by
      the clock framework, but won't cause any adverse effect to USB
      operation.
      
      Signed-off-by: default avatarRichard Watts <rrw@kynesim.co.uk>
      [Upported from v3.2 to v4.9]
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Tested-by: default avatarLadislav Michl <ladis@linux-mips.org>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      035cd485
  2. Dec 08, 2016
  3. Dec 07, 2016
  4. Nov 24, 2016
  5. Nov 22, 2016
  6. Nov 18, 2016
    • Marek Szyprowski's avatar
      clk: exynos5433: Mark some clocks as critical · 37bf4ab8
      Marek Szyprowski authored
      
      
      Some parent clocks of the Exynos5433 CMUs must be always enabled to access
      any register in the given CMU or devices connected to it. For the time
      being, until a proper solution based on runtime PM is applied, mark those
      clocks as critical (instead of ignore unused) to prevent disabling them.
      
      Reported-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
      Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
      Tested-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
      Acked-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
      Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
      37bf4ab8
    • Stephen Boyd's avatar
      Merge tag 'clk-renesas-for-v4.10-tag3' of... · 9baabf43
      Stephen Boyd authored
      Merge tag 'clk-renesas-for-v4.10-tag3' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-next
      
      Pull more clk driver updates from Geert Uytterhoeven:
      
        - CSI2 and VIN clocks for R-Car M3-W,
        - Clock drivers for new RZ/G1M and RZ/G1E SoCs,
        - Minor bug fix for R-Car H3.
      
      * tag 'clk-renesas-for-v4.10-tag3' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers:
        clk: renesas: cpg-mssr: Add R8A7745 support
        clk: renesas: cpg-mssr: Add R8A7743 support
        clk: renesas: cpg-mssr: Add common R-Car Gen2 support
        clk: renesas: r8a7795: Fix HDMI parent clock
        clk: renesas: r8a7796: Add VIN clocks
        clk: renesas: r8a7796: Add CSI2 clocks
      9baabf43
    • Stephen Boyd's avatar
      Merge tag 'clk-renesas-for-v4.10-tag2' of... · 54fd1b3b
      Stephen Boyd authored
      Merge tag 'clk-renesas-for-v4.10-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-next
      
      Pull Renesas clk driver updates from Geerty Uytterhoeven:
      
        - Add R-Car RST driver for obtaining mode pin state, and move the
          related functionality from platform code to DT,
        - Add r8a7743 and r8a7745 CPG Core Clock Definitions.
      
      The commits here are intermingled with arm-soc material because
      of the hard dependency we're breaking between mach code and
      driver code. We're replacing that with a driver dependency
      between the soc driver and the clk driver.
      
      * tag 'clk-renesas-for-v4.10-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers: (25 commits)
        clk: renesas: Add r8a7745 CPG Core Clock Definitions
        clk: renesas: Add r8a7743 CPG Core Clock Definitions
        clk: renesas: rcar-gen2: Remove obsolete rcar_gen2_clocks_init()
        clk: renesas: r8a7779: Remove obsolete r8a7779_clocks_init()
        clk: renesas: r8a7778: Remove obsolete r8a7778_clocks_init()
        ARM: shmobile: rcar-gen2: Stop passing mode pins state to clock driver
        ARM: shmobile: r8a7779: Stop passing mode pins state to clock driver
        ARM: shmobile: r8a7778: Stop passing mode pins state to clock driver
        clk: renesas: rcar-gen3-cpg: Remove obsolete rcar_gen3_read_mode_pins()
        clk: renesas: r8a7796: Obtain mode pin values from R-Car RST driver
        clk: renesas: r8a7795: Obtain mode pin values from R-Car RST driver
        clk: renesas: rcar-gen2: Obtain mode pin values using RST driver
        clk: renesas: r8a7779: Obtain mode pin values from R-Car RST driver
        clk: renesas: r8a7778: Obtain mode pin values using R-Car RST driver
        arm64: renesas: r8a7796 dtsi: Add device node for RST module
        arm64: renesas: r8a7795 dtsi: Add device node for RST module
        ARM: dts: r8a7794: Add device node for RST module
        ARM: dts: r8a7793: Add device node for RST module
        ARM: dts: r8a7792: Add device node for RST module
        ARM: dts: r8a7791: Add device node for RST module
        ...
      54fd1b3b
  7. Nov 17, 2016
  8. Nov 16, 2016
  9. Nov 15, 2016