1. 01 Jun, 2020 2 commits
    • Stephen Boyd's avatar
      Merge branches 'clk-tegra', 'clk-imx', 'clk-zynq', 'clk-socfpga', 'clk-at91'... · 8c88e568
      Stephen Boyd authored
      Merge branches 'clk-tegra', 'clk-imx', 'clk-zynq', 'clk-socfpga', 'clk-at91' and 'clk-ti' into clk-next
      
       - Support custom flags in Xilinx zynq firmware
       - Various small fixes to the Xilinx clk driver
       - Support for Intel Agilex clks
      
      * clk-tegra:
        clk: tegra: Add Tegra210 CSI TPG clock gate
        clk: tegra30: Use custom CCLK implementation
        clk: tegra20: Use custom CCLK implementation
        clk: tegra: cclk: Add helpers for handling PLLX rate changes
        clk: tegra: pll: Add pre/post rate-change hooks
        clk: tegra: Add custom CCLK implementation
        clk: tegra: Remove the old emc_mux clock for Tegra210
        clk: tegra: Implement Tegra210 EMC clock
        clk: tegra: Export functions for EMC clock scaling
        clk: tegra: Add PLLP_UD and PLLMB_UD for Tegra210
        clk: tegra: Rename Tegra124 EMC clock source file
        dt-bindings: clock: tegra: Add clock ID for CSI TPG clock
      
      * clk-imx:
        clk: imx: use imx8m_clk_hw_composite_bus for i.MX8M bus clk slice
        clk: imx: add imx8m_clk_hw_composite_bus
        clk: imx: add mux ops for i.MX8M composite clk
        clk: imx8m: migrate A53 clk root to use composite core
        clk: imx8mp: use imx8m_clk_hw_composite_core to simplify code
        clk: imx8mp: Define gates for pll1/2 fixed dividers
        clk: imx: imx8mp: fix pll mux bit
        clk: imx8m: drop clk_hw_set_parent for A53
        dt-bindings: clocks: imx8mp: Add ids for audiomix clocks
        clk: imx: Add helpers for passing the device as argument
        clk: imx: pll14xx: Add the device as argument when registering
        clk: imx: gate2: Allow single bit gating clock
        clk: imx: clk-pllv3: Use readl_relaxed_poll_timeout() for PLL lock wait
        clk: imx: clk-sscg-pll: Remove unnecessary blank lines
        clk: imx: drop the dependency on ARM64 for i.MX8M
        clk: imx7ulp: make it easy to change ARM core clk
        clk: imx: imx6ul: change flexcan clock to support CiA bitrates
      
      * clk-zynq:
        clk: zynqmp: Make zynqmp_clk_get_max_divisor static
        clk: zynqmp: Update fraction clock check from custom type flags
        clk: zynqmp: Add support for custom type flags
        clk: zynqmp: fix memory leak in zynqmp_register_clocks
        clk: zynqmp: Fix invalid clock name queries
        clk: zynqmp: Fix divider2 calculation
        clk: zynqmp: Limit bestdiv with maxdiv
      
      * clk-socfpga:
        clk: socfpga: agilex: add clock driver for the Agilex platform
        dt-bindings: documentation: add clock bindings information for Agilex
        clk: socfpga: add const to _ops data structures
        clk: socfpga: remove clk_ops enable/disable methods
        clk: socfpga: stratix10: use new parent data scheme
      
      * clk-at91:
        clk: at91: allow setting all PMC clock parents via DT
        clk: at91: allow setting PCKx parent via DT
        clk: at91: optimize pmc data allocation
        clk: at91: pmc: decrement node's refcount
        clk: at91: pmc: do not continue if compatible not located
        clk: at91: Add peripheral clock for PTC
      
      * clk-ti:
        clk: ti: dra7: remove two unused symbols
        clk: ti: dra7xx: fix RNG clock parent
        clk: ti: dra7xx: mark MCAN clock as DRA76x only
        clk: ti: dra7xx: fix gpu clkctrl parent
        clk: ti: omap5: Add proper parent clocks for l4-secure clocks
        clk: ti: omap4: Add proper parent clocks for l4-secure clocks
        clk: ti: composite: fix memory leak
      8c88e568
    • Stephen Boyd's avatar
      Merge branches 'clk-selectable', 'clk-amlogic', 'clk-renesas', 'clk-samsung'... · 3a57530b
      Stephen Boyd authored
      Merge branches 'clk-selectable', 'clk-amlogic', 'clk-renesas', 'clk-samsung' and 'clk-allwinner' into clk-next
      
       - Allow the COMMON_CLK config to be selectable
      
      * clk-selectable:
        clk: Move HAVE_CLK config out of architecture layer
        MIPS: Loongson64: Drop asm/clock.h include
        ARM: mmp: Remove legacy clk code
        clk: Allow the common clk framework to be selectable
        mmc: meson-mx-sdio: Depend on OF_ADDRESS and not just OF
        MIPS: Remove redundant CLKDEV_LOOKUP selects
        h8300: Remove redundant CLKDEV_LOOKUP selects
        arm64: tegra: Remove redundant CLKDEV_LOOKUP selects
        ARM: Remove redundant CLKDEV_LOOKUP selects
        ARM: Remove redundant COMMON_CLK selects
      
      * clk-amlogic:
        clk: meson: meson8b: Don't rely on u-boot to init all GP_PLL registers
        clk: meson: meson8b: Make the CCF use the glitch-free VPU mux
        clk: meson: meson8b: Fix the vclk_div{1, 2, 4, 6, 12}_en gate bits
        clk: meson: meson8b: Fix the polarity of the RESET_N lines
        clk: meson: meson8b: Fix the first parent of vid_pll_in_sel
        clk: meson: g12a: Prepare the GPU clock tree to change at runtime
        clk: meson: gxbb: Prepare the GPU clock tree to change at runtime
        clk: meson: meson8b: make the hdmi_sys clock tree mutable
        clk: meson8b: export the HDMI system clock
      
      * clk-renesas:
        dt-bindings: clock: renesas: mstp: Convert to json-schema
        dt-bindings: clock: renesas: div6: Convert to json-schema
        clk: renesas: cpg-mssr: Fix STBCR suspend/resume handling
        clk: renesas: rcar-gen2: Remove superfluous CLK_RENESAS_DIV6 selects
        clk: renesas: cpg-mssr: Add R8A7742 support
        dt-bindings: clock: renesas: cpg-mssr: Document r8a7742 binding
        clk: renesas: Add r8a7742 CPG Core Clock Definitions
        dt-bindings: power: rcar-sysc: Add r8a7742 power domain index macros
        MAINTAINERS: Add DT Bindings for Renesas Clock Generators
        clk: renesas: r9a06g032: Fix some typo in comments
        dt-bindings: clock: renesas: rcar-usb2-clock-sel: Add r8a77961 support
      
      * clk-samsung:
        clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1
        ARM/SAMSUNG EXYNOS ARM ARCHITECTURES: Use fallthrough;
        clk: samsung: Fix CLK_SMMU_FIMCL3 clock name on Exynos542x
        clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
      
      * clk-allwinner:
        clk: sunxi: Fix incorrect usage of round_down()
      3a57530b
  2. 27 May, 2020 19 commits
  3. 26 May, 2020 1 commit
    • Stephen Boyd's avatar
      Merge tag 'clk-imx-5.8' of... · 5484bb83
      Stephen Boyd authored
      Merge tag 'clk-imx-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into clk-imx
      
      Pull i.MX clk driver updates from Shawn Guo:
      
      - A few patches from Abel Vesa as preparation of adding audiomix clock
        support
      - A couple of cleanups from Anson Huang on clk-sscg-pll and clk-pllv3
        driver
      - Update imx7ulp clock driver to use imx_clk_hw_cpu() for making the
        change of ARM core clock easier
      - Drop dependency on ARM64 for i.MX8M clock driver, as there is a move
        to support aarch32 mode on aarch64 hardware
      - A series from Peng Fan to improve i.MX8M clock drivers, using
        composite clock for core and bus clk slice
      - Set a better parent clock for flexcan on i.MX6UL to support CiA102
        defined bit rates
      
      * tag 'clk-imx-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
        clk: imx: use imx8m_clk_hw_composite_bus for i.MX8M bus clk slice
        clk: imx: add imx8m_clk_hw_composite_bus
        clk: imx: add mux ops for i.MX8M composite clk
        clk: imx8m: migrate A53 clk root to use composite core
        clk: imx8mp: use imx8m_clk_hw_composite_core to simplify code
        clk: imx8mp: Define gates for pll1/2 fixed dividers
        clk: imx: imx8mp: fix pll mux bit
        clk: imx8m: drop clk_hw_set_parent for A53
        dt-bindings: clocks: imx8mp: Add ids for audiomix clocks
        clk: imx: Add helpers for passing the device as argument
        clk: imx: pll14xx: Add the device as argument when registering
        clk: imx: gate2: Allow single bit gating clock
        clk: imx: clk-pllv3: Use readl_relaxed_poll_timeout() for PLL lock wait
        clk: imx: clk-sscg-pll: Remove unnecessary blank lines
        clk: imx: drop the dependency on ARM64 for i.MX8M
        clk: imx7ulp: make it easy to change ARM core clk
        clk: imx: imx6ul: change flexcan clock to support CiA bitrates
      5484bb83
  4. 21 May, 2020 7 commits
    • Stephen Boyd's avatar
      Merge tag 'for-5.8-clk' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into clk-tegra · c60037f0
      Stephen Boyd authored
      Pull Tegra clk driver updates from Thierry Reding:
      
      These are a couple of changes to implement EMC frequency scaling on
      Tegra210, CPU frequency scaling on Tegra20 and Tegra30 as well as a
      special clock gate for the CSI test pattern generator on Tegra210.
      
      * tag 'for-5.8-clk' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
        clk: tegra: Add Tegra210 CSI TPG clock gate
        clk: tegra30: Use custom CCLK implementation
        clk: tegra20: Use custom CCLK implementation
        clk: tegra: cclk: Add helpers for handling PLLX rate changes
        clk: tegra: pll: Add pre/post rate-change hooks
        clk: tegra: Add custom CCLK implementation
        clk: tegra: Remove the old emc_mux clock for Tegra210
        clk: tegra: Implement Tegra210 EMC clock
        clk: tegra: Export functions for EMC clock scaling
        clk: tegra: Add PLLP_UD and PLLMB_UD for Tegra210
        clk: tegra: Rename Tegra124 EMC clock source file
        dt-bindings: clock: tegra: Add clock ID for CSI TPG clock
      c60037f0
    • Stephen Boyd's avatar
      Merge tag 'sunxi-clk-for-5.8-1' of... · 33b52f7c
      Stephen Boyd authored
      Merge tag 'sunxi-clk-for-5.8-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner
      
      Pull an Allwinner clk driver fix from Maxime Ripard:
      
       - a single minor rounding fix for the legacy Allwinner clock support
      
      * tag 'sunxi-clk-for-5.8-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
        clk: sunxi: Fix incorrect usage of round_down()
      33b52f7c
    • Stephen Boyd's avatar
      Merge tag 'clk-v5.8-samsung' of... · fe95d2e9
      Stephen Boyd authored
      Merge tag 'clk-v5.8-samsung' of https://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk into clk-samsung
      
      Pull Samsung clk driver updates from Sylwester Nawrocki:
      
       - Regression fixes for exynos542x and exynos5433 SoCs
       - use of fallthrough; attribute for s3c24xx
      
      * tag 'clk-v5.8-samsung' of https://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk:
        clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1
        ARM/SAMSUNG EXYNOS ARM ARCHITECTURES: Use fallthrough;
        clk: samsung: Fix CLK_SMMU_FIMCL3 clock name on Exynos542x
        clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
      fe95d2e9
    • Stephen Boyd's avatar
      Merge tag 'clk-renesas-for-v5.8-tag2' of... · 571a6b47
      Stephen Boyd authored
      Merge tag 'clk-renesas-for-v5.8-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-renesas
      
      Pull Renesas clk driver updates from Geert Uytterhoeven:
      
        - A minor fix for the currently unused suspend/resume handling on
          RZ/A1 and RZ/A2
        - Two more conversions of Renesas DT bindings to json-schema
      
      * tag 'clk-renesas-for-v5.8-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers:
        dt-bindings: clock: renesas: mstp: Convert to json-schema
        dt-bindings: clock: renesas: div6: Convert to json-schema
        clk: renesas: cpg-mssr: Fix STBCR suspend/resume handling
      571a6b47
    • Peng Fan's avatar
      clk: imx: use imx8m_clk_hw_composite_bus for i.MX8M bus clk slice · b1657ad7
      Peng Fan authored
      Switch the bus clk use imx8m_clk_hw_composite_bus, then
      we could avoid possible issue when setting mux of the clk.
      Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
      Reviewed-by: default avatarDong Aisheng <aisheng.dong@nxp.com>
      Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
      b1657ad7
    • Peng Fan's avatar
      clk: imx: add imx8m_clk_hw_composite_bus · 0e40198d
      Peng Fan authored
      Introduce imx8m_clk_hw_composite_bus api for bus clk root slice usage.
      Because the mux switch sequence issue, we could not reuse Peripheral
      Clock Slice code, need use composite specific mux operation.
      Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
      Reviewed-by: default avatarDong Aisheng <aisheng.dong@nxp.com>
      Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
      0e40198d
    • Peng Fan's avatar
      clk: imx: add mux ops for i.MX8M composite clk · f90b68d6
      Peng Fan authored
      The CORE/BUS root slice has following design, simplied graph:
      The difference is core not have pre_div block.
      A composite core/bus clk has 8 inputs for mux to select, saying clk[0-7].
      
      It support target(smart) interface and normal interface. Target interface
      is exported for programmer easy to configure ccm root. Normal interface
      is also exported, but we not use it in our driver, because it will
      introduce more complexity compared with target interface.
      
      The normal interface simplified as below:
                  SEL_A  GA
                  +--+  +-+
                  |  +->+ +------+
      CLK[0-7]--->+  |  +-+      |
             |    |  |      +----v---+    +----+
             |    +--+      |pre_diva+---->    |  +---------+
             |              +--------+    |mux +--+post_div |
             |    +--+      |pre_divb+--->+    |  +---------+
             |    |  |      +----^---+    +----+
             +--->+  |  +-+      |
                  |  +->+ +------+
                  +--+  +-+
                  SEL_B  GB
      
      The mux in the upper pic is not the target interface MUX, target
      interface MUX is hiding SEL_A and SEL_B. When you choose clk[0-7],
      you are actually writing SEL_A or SEL_B depends on the internal
      counter which will also control the internal "mux".
      
      The target interface simplified as below which is used by Linux Kernel:
      CLK[0-7]--->MUX-->Gate-->pre_div-->post_div
      
      A requirement of the Target Interface's software is that the
      target clock source is active, it means when setting SEL_A, the
      current input clk to SEL_A must be active, same to SEL_B.
      
      We touch target interface, but hardware logic actually also need
      configure normal interface.
      
      There will be system hang, when doing the following steps:
      The initial state:
        SEL_A/SEL_B are both sourcing from clk0, the internal counter
        choose SEL_A.
      1. switch mux from clk0 to clk1
         The hardware logic will choose SEL_B and configure SEL_B to clk1.
         SEL_A no changed.
      2. gate off clk0
         Disable clk0, then the input to SEL_A is off.
      3. swtich from clk1 to clk2
         The hardware logic will choose SEL_A and configure SEL_A to clk2,
         however the current SEL_A input clk0 is off, the system hang.
      
      The solution to fix the issue is in step 1, write twice to
      target interface MUX, it will make SEL_A/SEL_B both sources
      from clk1, then no need to care about the state of clk0. And
      finally system performs well.
      Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
      Reviewed-by: default avatarDong Aisheng <aisheng.dong@nxp.com>
      Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
      f90b68d6
  5. 20 May, 2020 6 commits
  6. 19 May, 2020 2 commits
  7. 18 May, 2020 2 commits
  8. 14 May, 2020 1 commit
    • Stephen Boyd's avatar
      Merge tag 'clk-meson-v5.8-1' of https://github.com/BayLibre/clk-meson into clk-amlogic · 07fbf0e5
      Stephen Boyd authored
      Pull Amlogic clk driver updates from Jerome Brunet:
      
      - Meson8b: Updates and fixup HDMI and video clocks
      - Meson8b: Fixup reset polarity
      - Meson gx and g12: fix GPU glitch free mux switch
      
      * tag 'clk-meson-v5.8-1' of https://github.com/BayLibre/clk-meson:
        clk: meson: meson8b: Don't rely on u-boot to init all GP_PLL registers
        clk: meson: meson8b: Make the CCF use the glitch-free VPU mux
        clk: meson: meson8b: Fix the vclk_div{1, 2, 4, 6, 12}_en gate bits
        clk: meson: meson8b: Fix the polarity of the RESET_N lines
        clk: meson: meson8b: Fix the first parent of vid_pll_in_sel
        clk: meson: g12a: Prepare the GPU clock tree to change at runtime
        clk: meson: gxbb: Prepare the GPU clock tree to change at runtime
        clk: meson: meson8b: make the hdmi_sys clock tree mutable
        clk: meson8b: export the HDMI system clock
      07fbf0e5