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
This commit is contained in:
Stephen Boyd
2020-06-01 13:00:00 -07:00
59 changed files with 2044 additions and 347 deletions

View File

@@ -0,0 +1,70 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2019, Intel Corporation
*/
#ifndef __AGILEX_CLOCK_H
#define __AGILEX_CLOCK_H
/* fixed rate clocks */
#define AGILEX_OSC1 0
#define AGILEX_CB_INTOSC_HS_DIV2_CLK 1
#define AGILEX_CB_INTOSC_LS_CLK 2
#define AGILEX_L4_SYS_FREE_CLK 3
#define AGILEX_F2S_FREE_CLK 4
/* PLL clocks */
#define AGILEX_MAIN_PLL_CLK 5
#define AGILEX_MAIN_PLL_C0_CLK 6
#define AGILEX_MAIN_PLL_C1_CLK 7
#define AGILEX_MAIN_PLL_C2_CLK 8
#define AGILEX_MAIN_PLL_C3_CLK 9
#define AGILEX_PERIPH_PLL_CLK 10
#define AGILEX_PERIPH_PLL_C0_CLK 11
#define AGILEX_PERIPH_PLL_C1_CLK 12
#define AGILEX_PERIPH_PLL_C2_CLK 13
#define AGILEX_PERIPH_PLL_C3_CLK 14
#define AGILEX_MPU_FREE_CLK 15
#define AGILEX_MPU_CCU_CLK 16
#define AGILEX_BOOT_CLK 17
/* fixed factor clocks */
#define AGILEX_L3_MAIN_FREE_CLK 18
#define AGILEX_NOC_FREE_CLK 19
#define AGILEX_S2F_USR0_CLK 20
#define AGILEX_NOC_CLK 21
#define AGILEX_EMAC_A_FREE_CLK 22
#define AGILEX_EMAC_B_FREE_CLK 23
#define AGILEX_EMAC_PTP_FREE_CLK 24
#define AGILEX_GPIO_DB_FREE_CLK 25
#define AGILEX_SDMMC_FREE_CLK 26
#define AGILEX_S2F_USER0_FREE_CLK 27
#define AGILEX_S2F_USER1_FREE_CLK 28
#define AGILEX_PSI_REF_FREE_CLK 29
/* Gate clocks */
#define AGILEX_MPU_CLK 30
#define AGILEX_MPU_L2RAM_CLK 31
#define AGILEX_MPU_PERIPH_CLK 32
#define AGILEX_L4_MAIN_CLK 33
#define AGILEX_L4_MP_CLK 34
#define AGILEX_L4_SP_CLK 35
#define AGILEX_CS_AT_CLK 36
#define AGILEX_CS_TRACE_CLK 37
#define AGILEX_CS_PDBG_CLK 38
#define AGILEX_CS_TIMER_CLK 39
#define AGILEX_S2F_USER0_CLK 40
#define AGILEX_EMAC0_CLK 41
#define AGILEX_EMAC1_CLK 43
#define AGILEX_EMAC2_CLK 44
#define AGILEX_EMAC_PTP_CLK 45
#define AGILEX_GPIO_DB_CLK 46
#define AGILEX_NAND_CLK 47
#define AGILEX_PSI_REF_CLK 48
#define AGILEX_S2F_USER1_CLK 49
#define AGILEX_SDMMC_CLK 50
#define AGILEX_SPI_M_CLK 51
#define AGILEX_USB_CLK 52
#define AGILEX_NUM_CLKS 53
#endif /* __AGILEX_CLOCK_H */

View File

@@ -12,6 +12,7 @@
#define PMC_TYPE_SYSTEM 1
#define PMC_TYPE_PERIPHERAL 2
#define PMC_TYPE_GCK 3
#define PMC_TYPE_PROGRAMMABLE 4
#define PMC_SLOW 0
#define PMC_MCK 1
@@ -20,6 +21,9 @@
#define PMC_MCK2 4
#define PMC_I2S0_MUX 5
#define PMC_I2S1_MUX 6
#define PMC_PLLACK 7
#define PMC_PLLBCK 8
#define PMC_AUDIOPLLCK 9
#ifndef AT91_PMC_MOSCS
#define AT91_PMC_MOSCS 0 /* MOSCS Flag */

View File

@@ -58,7 +58,10 @@
#define IMX7ULP_CLK_HSRUN_SYS_SEL 44
#define IMX7ULP_CLK_HSRUN_CORE_DIV 45
#define IMX7ULP_CLK_SCG1_END 46
#define IMX7ULP_CLK_CORE 46
#define IMX7ULP_CLK_HSRUN_CORE 47
#define IMX7ULP_CLK_SCG1_END 48
/* PCC2 */
#define IMX7ULP_CLK_DMA1 0

View File

@@ -296,6 +296,94 @@
#define IMX8MP_CLK_ARM 287
#define IMX8MP_CLK_A53_CORE 288
#define IMX8MP_CLK_END 289
#define IMX8MP_SYS_PLL1_40M_CG 289
#define IMX8MP_SYS_PLL1_80M_CG 290
#define IMX8MP_SYS_PLL1_100M_CG 291
#define IMX8MP_SYS_PLL1_133M_CG 292
#define IMX8MP_SYS_PLL1_160M_CG 293
#define IMX8MP_SYS_PLL1_200M_CG 294
#define IMX8MP_SYS_PLL1_266M_CG 295
#define IMX8MP_SYS_PLL1_400M_CG 296
#define IMX8MP_SYS_PLL2_50M_CG 297
#define IMX8MP_SYS_PLL2_100M_CG 298
#define IMX8MP_SYS_PLL2_125M_CG 299
#define IMX8MP_SYS_PLL2_166M_CG 300
#define IMX8MP_SYS_PLL2_200M_CG 301
#define IMX8MP_SYS_PLL2_250M_CG 302
#define IMX8MP_SYS_PLL2_333M_CG 303
#define IMX8MP_SYS_PLL2_500M_CG 304
#define IMX8MP_CLK_M7_CORE 305
#define IMX8MP_CLK_ML_CORE 306
#define IMX8MP_CLK_GPU3D_CORE 307
#define IMX8MP_CLK_GPU3D_SHADER_CORE 308
#define IMX8MP_CLK_GPU2D_CORE 309
#define IMX8MP_CLK_AUDIO_AXI 310
#define IMX8MP_CLK_HSIO_AXI 311
#define IMX8MP_CLK_MEDIA_ISP 312
#define IMX8MP_CLK_END 313
#define IMX8MP_CLK_AUDIOMIX_SAI1_IPG 0
#define IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1 1
#define IMX8MP_CLK_AUDIOMIX_SAI1_MCLK2 2
#define IMX8MP_CLK_AUDIOMIX_SAI1_MCLK3 3
#define IMX8MP_CLK_AUDIOMIX_SAI2_IPG 4
#define IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1 5
#define IMX8MP_CLK_AUDIOMIX_SAI2_MCLK2 6
#define IMX8MP_CLK_AUDIOMIX_SAI2_MCLK3 7
#define IMX8MP_CLK_AUDIOMIX_SAI3_IPG 8
#define IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1 9
#define IMX8MP_CLK_AUDIOMIX_SAI3_MCLK2 10
#define IMX8MP_CLK_AUDIOMIX_SAI3_MCLK3 11
#define IMX8MP_CLK_AUDIOMIX_SAI5_IPG 12
#define IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1 13
#define IMX8MP_CLK_AUDIOMIX_SAI5_MCLK2 14
#define IMX8MP_CLK_AUDIOMIX_SAI5_MCLK3 15
#define IMX8MP_CLK_AUDIOMIX_SAI6_IPG 16
#define IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1 17
#define IMX8MP_CLK_AUDIOMIX_SAI6_MCLK2 18
#define IMX8MP_CLK_AUDIOMIX_SAI6_MCLK3 19
#define IMX8MP_CLK_AUDIOMIX_SAI7_IPG 20
#define IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1 21
#define IMX8MP_CLK_AUDIOMIX_SAI7_MCLK2 22
#define IMX8MP_CLK_AUDIOMIX_SAI7_MCLK3 23
#define IMX8MP_CLK_AUDIOMIX_ASRC_IPG 24
#define IMX8MP_CLK_AUDIOMIX_PDM_IPG 25
#define IMX8MP_CLK_AUDIOMIX_SDMA2_ROOT 26
#define IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT 27
#define IMX8MP_CLK_AUDIOMIX_SPBA2_ROOT 28
#define IMX8MP_CLK_AUDIOMIX_DSP_ROOT 29
#define IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT 30
#define IMX8MP_CLK_AUDIOMIX_EARC_IPG 31
#define IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG 32
#define IMX8MP_CLK_AUDIOMIX_AUD2HTX_IPG 33
#define IMX8MP_CLK_AUDIOMIX_EDMA_ROOT 34
#define IMX8MP_CLK_AUDIOMIX_AUDPLL_ROOT 35
#define IMX8MP_CLK_AUDIOMIX_MU2_ROOT 36
#define IMX8MP_CLK_AUDIOMIX_MU3_ROOT 37
#define IMX8MP_CLK_AUDIOMIX_EARC_PHY 38
#define IMX8MP_CLK_AUDIOMIX_PDM_ROOT 39
#define IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1_SEL 40
#define IMX8MP_CLK_AUDIOMIX_SAI1_MCLK2_SEL 41
#define IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1_SEL 42
#define IMX8MP_CLK_AUDIOMIX_SAI2_MCLK2_SEL 43
#define IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1_SEL 44
#define IMX8MP_CLK_AUDIOMIX_SAI3_MCLK2_SEL 45
#define IMX8MP_CLK_AUDIOMIX_SAI4_MCLK1_SEL 46
#define IMX8MP_CLK_AUDIOMIX_SAI4_MCLK2_SEL 47
#define IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1_SEL 48
#define IMX8MP_CLK_AUDIOMIX_SAI5_MCLK2_SEL 49
#define IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1_SEL 50
#define IMX8MP_CLK_AUDIOMIX_SAI6_MCLK2_SEL 51
#define IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1_SEL 52
#define IMX8MP_CLK_AUDIOMIX_SAI7_MCLK2_SEL 53
#define IMX8MP_CLK_AUDIOMIX_PDM_SEL 54
#define IMX8MP_CLK_AUDIOMIX_SAI_PLL_REF_SEL 55
#define IMX8MP_CLK_AUDIOMIX_SAI_PLL 56
#define IMX8MP_CLK_AUDIOMIX_SAI_PLL_BYPASS 57
#define IMX8MP_CLK_AUDIOMIX_SAI_PLL_OUT 58
#define IMX8MP_CLK_AUDIOMIX_END 59
#endif

View File

@@ -351,14 +351,14 @@
#define TEGRA210_CLK_PLL_P_OUT_XUSB 317
#define TEGRA210_CLK_XUSB_SSP_SRC 318
#define TEGRA210_CLK_PLL_RE_OUT1 319
/* 320 */
/* 321 */
#define TEGRA210_CLK_PLL_MB_UD 320
#define TEGRA210_CLK_PLL_P_UD 321
#define TEGRA210_CLK_ISP 322
#define TEGRA210_CLK_PLL_A_OUT_ADSP 323
#define TEGRA210_CLK_PLL_A_OUT0_OUT_ADSP 324
/* 325 */
#define TEGRA210_CLK_OSC 326
/* 327 */
#define TEGRA210_CLK_CSI_TPG 327
/* 328 */
/* 329 */
/* 330 */