09 Aug, 2019

1 commit


26 Jul, 2019

1 commit


04 Jul, 2019

1 commit


24 May, 2019

2 commits

  • Update imx8 clock driver to support LPCG and full clocks tree for some
    modules aligned with kernel. And add the imx8qm clock tree.

    We divide the clock to serveral types: slice, fixed, lpcg, gpr, mux.
    Generally slice and fixed clocks are the sources. lpcg, gpr and mux are
    the downstream of those sources and are used for gating, muxing or dividing
    functions.

    Notice: since the clock depends on the power domain of its resource, must power
    on the resource firstly, then we can get clock. Otherwise, we can't access lpcg.
    Thus, the clock dump only dumps the slice clock.

    Signed-off-by: Ye Li

    Ye Li
     
  • The SCFW get clock rate API only return u32, but we use a ulong to
    get the value. The ulong variable is not initialized, so on stack
    it higher 32 bits may not zero, and return invalid rate.

    Signed-off-by: Ye Li

    Ye Li
     

02 Apr, 2019

1 commit


26 Mar, 2019

3 commits


09 Mar, 2019

3 commits


04 Mar, 2019

1 commit


01 Mar, 2019

1 commit


27 Feb, 2019

2 commits

  • This patch adds fixed-factor clock driver which derives clock
    rate by dividing (div) and multiplying (mult) fixed factors
    to a parent clock.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Simon Glass

    Anup Patel
     
  • Add driver code for the SiFive FU540 PRCI IP block. This IP block
    handles reset and clock control for the SiFive FU540 device and
    implements SoC-level clock tree controls and dividers.

    Based on code written by Wesley Terpstra
    found in commit 999529edf517ed75b56659d456d221b2ee56bb60 of:
    https://github.com/riscv/riscv-linux

    Boot and PLL rate change were tested on a SiFive HiFive Unleashed
    board.

    Signed-off-by: Paul Walmsley
    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf

    Anup Patel
     

25 Feb, 2019

1 commit


09 Feb, 2019

6 commits


01 Feb, 2019

3 commits


30 Jan, 2019

3 commits

  • Some Allwinner clock devices have parent clocks and reset gates itself,
    which need to be activated for them to work.

    Add some code to just assert all resets and enable all clocks given.
    This should enable the A80 MMC config clock, which requires both to be
    activated. The full CCU devices typically don't require resets, and have
    just fixed clocks as their parents. Since we treat both as optional and
    enabling fixed clocks is a NOP, this works for all cases, without the need
    to differentiate between those clock types.

    Signed-off-by: Andre Przywara
    Acked-by: Jagan Teki

    Andre Przywara
     
  • The A80 handles resets and clock gates for the MMC devices differently,
    outside of the CCU IP block. Consequently we have a separate clock
    device with a separate binding for that.

    Implement that with the respective clock gates and resets to allow the
    A80 taking part in the DM_MMC game.

    Signed-off-by: Andre Przywara
    [jagan: fix a80 mmc clock config compatible]
    Signed-off-by: Jagan Teki
    Reviewed-by: Jagan Teki

    Andre Przywara
     
  • Add the MMC clock gates and reset bits for all the Allwinner SoCs.
    This allows them to be used by the MMC driver.

    We don't advertise the mod clock yet, as this is still handled by the
    MMC driver.

    Signed-off-by: Andre Przywara
    [jagan: add V3S, A80 gates/resets]
    Signed-off-by: Jagan Teki
    Reviewed-by: Jagan Teki

    Andre Przywara
     

19 Jan, 2019

11 commits

  • Add initial clock driver for Allwinner A80.

    - Implement UART bus clocks via ccu_clk_gate table for
    A80, so it can accessed in common clk enable and disable
    functions from clk_sunxi.c
    - Implement UART bus resets via ccu_reset table for A80,
    so it can accessed in common reset deassert and assert
    functions from reset-sunxi.c

    Signed-off-by: Jagan Teki

    Jagan Teki
     
  • Add initial clock driver for Allwinner H6.

    - Implement UART bus clocks via ccu_clk_gate table for
    H6, so it can accessed in common clk enable and disable
    functions from clk_sunxi.c
    - Implement UART bus resets via ccu_reset table for H6,
    so it can accessed in common reset deassert and assert
    functions from reset-sunxi.c

    Signed-off-by: Jagan Teki
    Reviewed-by: Andre Przywara

    Jagan Teki
     
  • Implement UART resets for all relevant Allwinner SoC
    clock drivers via ccu reset table.

    Signed-off-by: Jagan Teki
    Reviewed-by: Andre Przywara

    Jagan Teki
     
  • Implement UART clocks for all Allwinner SoC
    clock drivers via ccu clock gate table.

    Signed-off-by: Jagan Teki
    Reviewed-by: Andre Przywara

    Jagan Teki
     
  • Add initial clock driver for Allwinner V3S.

    - Implement USB bus and USB clocks via ccu_clk_gate table
    for V3S, so it can accessed in common clk enable and disable
    functions from clk_sunxi.c
    - Implement USB bus and USB resets via ccu_reset table
    for V3S, so it can accessed in common reset deassert
    and assert functions from reset-sunxi.c

    Signed-off-by: Jagan Teki
    Acked-by: Maxime Ripard

    Jagan Teki
     
  • Add initial clock driver for Allwinner R40.

    - Implement USB bus and USB clocks via ccu_clk_gate
    for R40, so it can accessed in common clk enable
    and disable functions from clk_sunxi.c
    - Implement USB bus and USB resets via ccu_reset table
    for R40, so it can accessed in common reset deassert
    and assert functions from reset-sunxi.c

    Signed-off-by: Jagan Teki
    Acked-by: Maxime Ripard

    Jagan Teki
     
  • Add initial clock driver for Allwinner A83T.

    - Implement USB bus and USB clocks via ccu_clk_gate table
    for A83T, so it can accessed in common clk enable and
    disable functions from clk_sunxi.c
    - Implement USB bus and USB resets via ccu_reset table
    for A83T, so it can accessed in common reset deassert
    and assert functions from reset-sunxi.c

    Signed-off-by: Jagan Teki
    Acked-by: Maxime Ripard

    Jagan Teki
     
  • Add initial clock driver for Allwinner A23/A33.

    - Implement USB bus and USB clocks via ccu_clk_gate table
    for A23/A33, so it can accessed in common clk enable and
    disable functions from clk_sunxi.c
    - Implement USB bus and USB resets via ccu_reset table
    for A23/A33, so it can accessed in common reset deassert
    and assert functions from reset-sunxi.c

    Signed-off-by: Jagan Teki
    Acked-by: Maxime Ripard

    Jagan Teki
     
  • Add initial clock driver for Allwinner A31.

    - Implement USB ahb1 and USB clocks via ccu_clk_gate table
    for A31, so it can accessed in common clk enable and disable
    functions from clk_sunxi.c
    - Implement USB ahb1 and USB resets via ccu_reset table
    for A31, so it can accessed in common reset deassert
    and assert functions from reset-sunxi.c

    Signed-off-by: Jagan Teki
    Acked-by: Maxime Ripard

    Jagan Teki
     
  • Add initial clock driver for Allwinner A10s/A13.

    - Implement USB ahb and USB clocks via ccu_clk_gate table
    for A10s/A13, so it can accessed in common clk enable and
    disable functions from clk_sunxi.c
    - Implement USB resets via ccu_reset table for A10s/A13,
    so it can accessed in common reset deassert and assert
    functions from reset-sunxi.c

    Signed-off-by: Jagan Teki
    Acked-by: Maxime Ripard

    Jagan Teki
     
  • Add initial clock driver for Allwinner A10/A20.

    - Implement USB ahb and USB clocks via ccu_clk_gate table
    for A10/A20, so it can accessed in common clk enable and
    disable functions from clk_sunxi.c
    - Implement USB resets via ccu_reset table for A10/A20,
    so it can accessed in common reset deassert and assert
    functions from reset-sunxi.c

    Signed-off-by: Jagan Teki
    Acked-by: Maxime Ripard

    Jagan Teki