diff options
author | Dong Aisheng <aisheng.dong@nxp.com> | 2019-07-29 18:18:49 +0800 |
---|---|---|
committer | Dong Aisheng <aisheng.dong@nxp.com> | 2019-11-25 16:28:28 +0800 |
commit | 79714f7a41d8592b688fab403021098b95603016 (patch) | |
tree | 13bed91047ca5674043e0963b9f78fcfa6bb5e3a | |
parent | 8ba338783196af05fc7bae0e3e57bccc8728d211 (diff) |
clk: imx: scu: remove legacy lpcg clock binding support
remove legacy lpcg clock binding support to avoid confusing
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
-rw-r--r-- | drivers/clk/imx/clk-imx8qxp-lpcg.c | 429 | ||||
-rw-r--r-- | include/dt-bindings/clock/imx8-clock.h | 327 |
2 files changed, 2 insertions, 754 deletions
diff --git a/drivers/clk/imx/clk-imx8qxp-lpcg.c b/drivers/clk/imx/clk-imx8qxp-lpcg.c index ce1960e099cc..741b73e4c609 100644 --- a/drivers/clk/imx/clk-imx8qxp-lpcg.c +++ b/drivers/clk/imx/clk-imx8qxp-lpcg.c @@ -16,369 +16,12 @@ #include <linux/slab.h> #include "clk-scu.h" -#include "clk-imx8qxp-lpcg.h" - -#include <dt-bindings/clock/imx8-clock.h> - -/* - * struct imx8qxp_lpcg_data - Description of one LPCG clock - * @id: clock ID - * @name: clock name - * @parent: parent clock name - * @flags: common clock flags - * @offset: offset of this LPCG clock - * @bit_idx: bit index of this LPCG clock - * @hw_gate: whether supports HW autogate - * - * This structure describes one LPCG clock - */ -struct imx8qxp_lpcg_data { - int id; - char *name; - char *parent; - unsigned long flags; - u32 offset; - u8 bit_idx; - bool hw_gate; -}; - -/* - * struct imx8qxp_ss_lpcg - Description of one subsystem LPCG clocks - * @lpcg: LPCG clocks array of one subsystem - * @num_lpcg: the number of LPCG clocks - * @num_max: the maximum number of LPCG clocks - * - * This structure describes each subsystem LPCG clocks information - * which then will be used to create respective LPCGs clocks - */ -struct imx8qxp_ss_lpcg { - const struct imx8qxp_lpcg_data *lpcg; - u8 num_lpcg; - u8 num_max; -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_cm40[] = { - { IMX_CM40_LPCG_I2C_IPG_CLK, "cm40_lpcg_i2c_ipg_clk", "cm40_ipg_clk_root", 0, CM40_I2C_LPCG, 16, 0, }, - { IMX_CM40_LPCG_I2C_CLK, "cm40_lpcg_i2c_clk", "cm40_i2c_div", 0, CM40_I2C_LPCG, 0, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_cm40 = { - .lpcg = imx8qxp_lpcg_cm40, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_cm40), - .num_max = IMX_CM40_LPCG_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_adma[] = { - { IMX_ADMA_LPCG_SPI0_IPG_CLK, "spi0_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPSPI_0_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SPI0_CLK, "spi0_lpcg_clk", "spi0_clk", 0, ADMA_LPSPI_0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_SPI2_IPG_CLK, "spi2_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPSPI_2_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SPI2_CLK, "spi2_lpcg_clk", "spi2_clk", 0, ADMA_LPSPI_2_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_UART0_IPG_CLK, "uart0_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPUART_0_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_UART0_BAUD_CLK, "uart0_lpcg_baud_clk", "uart0_clk", 0, ADMA_LPUART_0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_UART1_IPG_CLK, "uart1_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPUART_1_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_UART1_BAUD_CLK, "uart1_lpcg_baud_clk", "uart1_clk", 0, ADMA_LPUART_1_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_UART2_IPG_CLK, "uart2_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPUART_2_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_UART2_BAUD_CLK, "uart2_lpcg_baud_clk", "uart2_clk", 0, ADMA_LPUART_2_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_UART3_IPG_CLK, "uart3_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPUART_3_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_UART3_BAUD_CLK, "uart3_lpcg_baud_clk", "uart3_clk", 0, ADMA_LPUART_3_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_I2C0_IPG_CLK, "i2c0_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPI2C_0_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_I2C0_CLK, "i2c0_lpcg_clk", "i2c0_clk", 0, ADMA_LPI2C_0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_I2C1_IPG_CLK, "i2c1_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPI2C_1_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_I2C1_CLK, "i2c1_lpcg_clk", "i2c1_clk", 0, ADMA_LPI2C_1_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_I2C2_IPG_CLK, "i2c2_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPI2C_2_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_I2C2_CLK, "i2c2_lpcg_clk", "i2c2_clk", 0, ADMA_LPI2C_2_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_I2C3_IPG_CLK, "i2c3_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_LPI2C_3_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_I2C3_CLK, "i2c3_lpcg_clk", "i2c3_clk", 0, ADMA_LPI2C_3_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_CAN0_IPG_CHI_CLK, "can0_lpcg_chi_clk", "dma_ipg_clk_root", 0, ADMA_FLEXCAN_0_LPCG, 20, 0, }, - { IMX_ADMA_LPCG_CAN0_IPG_CLK, "can0_lpcg_ipg_clk", "can0_lpcg_chi_clk", 0, ADMA_FLEXCAN_0_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_CAN0_IPG_PE_CLK, "can0_lpcg_pe_clk", "can0_clk", 0, ADMA_FLEXCAN_0_LPCG, 0, 0, }, - - { IMX_ADMA_LPCG_DSP_CORE_CLK, "dsp_lpcg_core_clk", "dma_ipg_clk_root", 0, ADMA_HIFI_LPCG, 28, 0, }, - { IMX_ADMA_LPCG_DSP_IPG_CLK, "dsp_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_HIFI_LPCG, 20, 0, }, - { IMX_ADMA_LPCG_DSP_ADB_CLK, "dsp_lpcg_adb_clk", "dma_ipg_clk_root", 0, ADMA_HIFI_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_OCRAM_IPG_CLK, "ocram_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_OCRAM_LPCG, 16, 0, }, - - { IMX_ADMA_LPCG_AUD_PLL_DIV_CLK0_CLK, "aud_pll_div_clk0_lpcg_clk", "audio_pll_div_clk0_clk", 0, ADMA_PLL_CLK0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_AUD_PLL_DIV_CLK1_CLK, "aud_pll_div_clk1_lpcg_clk", "audio_pll_div_clk1_clk", 0, ADMA_PLL_CLK1_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_AUD_REC_CLK0_CLK, "aud_rec_clk0_lpcg_clk", "audio_rec_clk0_clk", 0, ADMA_REC_CLK0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_AUD_REC_CLK1_CLK, "aud_rec_clk1_lpcg_clk", "audio_rec_clk1_clk", 0, ADMA_REC_CLK1_LPCG, 0, 0, }, - - { IMX_ADMA_LPCG_AMIX_IPG_CLK, "amix_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_AMIX_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_ESAI_0_IPG_CLK, "esai0_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_ESAI_0_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_ESAI_0_EXTAL_CLK, "esai0_lpcg_extal_clk", "acm_esai0_mclk_sel", 0, ADMA_ESAI_0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_SAI_0_IPG_CLK, "sai0_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_SAI_0_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SAI_0_MCLK, "sai0_lpcg_mclk", "acm_sai0_mclk_sel", 0, ADMA_SAI_0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_SAI_1_IPG_CLK, "sai1_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_SAI_1_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SAI_1_MCLK, "sai1_lpcg_mclk", "acm_sai1_mclk_sel", 0, ADMA_SAI_1_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_SAI_2_IPG_CLK, "sai2_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_SAI_2_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SAI_3_MCLK, "sai2_lpcg_mclk", "acm_sai2_mclk_sel", 0, ADMA_SAI_2_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_SAI_3_IPG_CLK, "sai3_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_SAI_3_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SAI_3_MCLK, "sai3_lpcg_mclk", "acm_sai3_mclk_sel", 0, ADMA_SAI_3_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_SAI_4_IPG_CLK, "sai4_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_SAI_4_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SAI_4_MCLK, "sai4_lpcg_mclk", "acm_sai4_mclk_sel", 0, ADMA_SAI_4_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_SAI_5_IPG_CLK, "sai5_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_SAI_5_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SAI_5_MCLK, "sai5_lpcg_mclk", "acm_sai5_mclk_sel", 0, ADMA_SAI_5_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_MQS_IPG_CLK, "mqs_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_MQS_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_MQS_MCLK, "mqs_lpcg_mclk", "acm_mqs_mclk_sel", 0, ADMA_MQS_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_GPT5_IPG_CLK, "gpt5_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_GPT_5_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_GPT5_CLKIN, "gpt5_lpcg_clkin", "dma_ipg_clk_root", 0, ADMA_GPT_5_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_GPT6_IPG_CLK, "gpt6_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_GPT_6_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_GPT6_CLKIN, "gpt6_lpcg_clkin", "dma_ipg_clk_root", 0, ADMA_GPT_6_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_GPT7_IPG_CLK, "gpt7_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_GPT_7_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_GPT7_CLKIN, "gpt7_lpcg_clkin", "dma_ipg_clk_root", 0, ADMA_GPT_7_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_GPT8_IPG_CLK, "gpt8_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_GPT_8_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_GPT8_CLKIN, "gpt8_lpcg_clkin", "dma_ipg_clk_root", 0, ADMA_GPT_8_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_GPT9_IPG_CLK, "gpt9_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_GPT_9_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_GPT9_CLKIN, "gpt9_lpcg_clkin", "dma_ipg_clk_root", 0, ADMA_GPT_9_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_GPT10_IPG_CLK, "gpt10_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_GPT_10_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_GPT10_CLKIN, "gpt10_lpcg_clkin", "dma_ipg_clk_root", 0, ADMA_GPT_10_LPCG, 0, 0, }, - - { IMX_ADMA_LPCG_MCLKOUT0, "mclkout0_lpcg", "acm_mclkout0_sel", 0, ADMA_MCLKOUT0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_MCLKOUT1, "mclkout1_lpcg", "acm_mclkout1_sel", 0, ADMA_MCLKOUT1_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_SPDIF_0_GCLKW, "spdif0_lpcg_gclkw", "dma_ipg_clk_root", 0, ADMA_SPDIF_0_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_SPDIF_0_TX_CLK, "spdif0_lpcg_tx_clk", "acm_spdif0_mclk_sel", 0, ADMA_SPDIF_0_LPCG, 0, 0, }, - { IMX_ADMA_LPCG_ASRC_0_IPG_CLK, "asrc0_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_ASRC_0_LPCG, 16, 0, }, - { IMX_ADMA_LPCG_ASRC_1_IPG_CLK, "asrc1_lpcg_ipg_clk", "dma_ipg_clk_root", 0, ADMA_ASRC_1_LPCG, 16, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_adma = { - .lpcg = imx8qxp_lpcg_adma, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_adma), - .num_max = IMX_ADMA_LPCG_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_conn[] = { - { IMX_CONN_LPCG_SDHC0_PER_CLK, "sdhc0_lpcg_per_clk", "sdhc0_clk", 0, CONN_USDHC_0_LPCG, 0, 0, }, - { IMX_CONN_LPCG_SDHC0_IPG_CLK, "sdhc0_lpcg_ipg_clk", "conn_ipg_clk_root", 0, CONN_USDHC_0_LPCG, 16, 0, }, - { IMX_CONN_LPCG_SDHC0_HCLK, "sdhc0_lpcg_ahb_clk", "conn_axi_clk_root", 0, CONN_USDHC_0_LPCG, 20, 0, }, - { IMX_CONN_LPCG_SDHC1_PER_CLK, "sdhc1_lpcg_per_clk", "sdhc1_clk", 0, CONN_USDHC_1_LPCG, 0, 0, }, - { IMX_CONN_LPCG_SDHC1_IPG_CLK, "sdhc1_lpcg_ipg_clk", "conn_ipg_clk_root", 0, CONN_USDHC_1_LPCG, 16, 0, }, - { IMX_CONN_LPCG_SDHC1_HCLK, "sdhc1_lpcg_ahb_clk", "conn_axi_clk_root", 0, CONN_USDHC_1_LPCG, 20, 0, }, - { IMX_CONN_LPCG_SDHC2_PER_CLK, "sdhc2_lpcg_per_clk", "sdhc2_clk", 0, CONN_USDHC_2_LPCG, 0, 0, }, - { IMX_CONN_LPCG_SDHC2_IPG_CLK, "sdhc2_lpcg_ipg_clk", "conn_ipg_clk_root", 0, CONN_USDHC_2_LPCG, 16, 0, }, - { IMX_CONN_LPCG_SDHC2_HCLK, "sdhc2_lpcg_ahb_clk", "conn_axi_clk_root", 0, CONN_USDHC_2_LPCG, 20, 0, }, - { IMX_CONN_LPCG_ENET0_TIMER_CLK, "enet0_timer_clk", "enet0_root_clk", 0, CONN_ENET_0_LPCG, 0, 0, }, - { IMX_CONN_LPCG_ENET0_TXC_SAMPLING_CLK, "enet0_txc_sampling_clk", "enet0_root_clk", 0, CONN_ENET_0_LPCG, 4, 0, }, - { IMX_CONN_LPCG_ENET0_RGMII_TXC_CLK, "enet0_rgmii_txc_clk", "enet0_rgmii_txc_sel", 0, CONN_ENET_0_LPCG, 12, 0, }, - { IMX_CONN_LPCG_ENET0_AHB_CLK, "enet0_ahb_clk", "conn_axi_clk_root", 0, CONN_ENET_0_LPCG, 8, 0, }, - { IMX_CONN_LPCG_ENET0_IPG_S_CLK, "enet0_ipg_s_clk", "conn_ipg_clk_root", 0, CONN_ENET_0_LPCG, 20, 0, }, - { IMX_CONN_LPCG_ENET0_IPG_CLK, "enet0_ipg_clk", "enet0_ipg_s_clk", 0, CONN_ENET_0_LPCG, 16, 0, }, - { IMX_CONN_LPCG_ENET1_TIMER_CLK, "enet1_timer_clk", "enet1_root_clk", 0, CONN_ENET_1_LPCG, 0, 0, }, - { IMX_CONN_LPCG_ENET1_TXC_SAMPLING_CLK, "enet1_txc_sampling_clk", "enet1_root_clk", 0, CONN_ENET_1_LPCG, 4, 0, }, - { IMX_CONN_LPCG_ENET1_RGMII_TXC_CLK, "enet1_rgmii_txc_clk", "enet1_rgmii_txc_sel", 0, CONN_ENET_1_LPCG, 12, 0, }, - { IMX_CONN_LPCG_ENET1_AHB_CLK, "enet1_ahb_clk", "conn_axi_clk_root", 0, CONN_ENET_1_LPCG, 8, 0, }, - { IMX_CONN_LPCG_ENET1_IPG_S_CLK, "enet1_ipg_s_clk", "conn_ipg_clk_root", 0, CONN_ENET_1_LPCG, 20, 0, }, - { IMX_CONN_LPCG_ENET1_IPG_CLK, "enet1_ipg_clk", "enet1_ipg_s_clk", 0, CONN_ENET_1_LPCG, 16, 0, }, - { IMX_CONN_LPCG_USB2_PHY_IPG_CLK, "usboh3_phy_ipg_clk", "conn_ipg_clk_root", 0, CONN_USB_2_LPCG, 28, 0, }, - { IMX_CONN_LPCG_USB2_AHB_CLK, "usboh3_ahb_clk", "conn_ahb_clk_root", 0, CONN_USB_2_LPCG, 24, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_conn = { - .lpcg = imx8qxp_lpcg_conn, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_conn), - .num_max = IMX_CONN_LPCG_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_lsio[] = { - { IMX_LSIO_LPCG_PWM0_IPG_CLK, "pwm0_lpcg_ipg_clk", "pwm0_clk", 0, LSIO_PWM_0_LPCG, 0, 0, }, - { IMX_LSIO_LPCG_PWM0_IPG_HF_CLK, "pwm0_lpcg_ipg_hf_clk", "pwm0_clk", 0, LSIO_PWM_0_LPCG, 4, 0, }, - { IMX_LSIO_LPCG_PWM0_IPG_S_CLK, "pwm0_lpcg_ipg_s_clk", "pwm0_clk", 0, LSIO_PWM_0_LPCG, 16, 0, }, - { IMX_LSIO_LPCG_PWM0_IPG_SLV_CLK, "pwm0_lpcg_ipg_slv_clk", "lsio_bus_clk_root", 0, LSIO_PWM_0_LPCG, 20, 0, }, - { IMX_LSIO_LPCG_PWM0_IPG_MSTR_CLK, "pwm0_lpcg_ipg_mstr_clk", "pwm0_clk", 0, LSIO_PWM_0_LPCG, 24, 0, }, - { IMX_LSIO_LPCG_PWM1_IPG_CLK, "pwm1_lpcg_ipg_clk", "pwm1_clk", 0, LSIO_PWM_1_LPCG, 0, 0, }, - { IMX_LSIO_LPCG_PWM1_IPG_HF_CLK, "pwm1_lpcg_ipg_hf_clk", "pwm1_clk", 0, LSIO_PWM_1_LPCG, 4, 0, }, - { IMX_LSIO_LPCG_PWM1_IPG_S_CLK, "pwm1_lpcg_ipg_s_clk", "pwm1_clk", 0, LSIO_PWM_1_LPCG, 16, 0, }, - { IMX_LSIO_LPCG_PWM1_IPG_SLV_CLK, "pwm1_lpcg_ipg_slv_clk", "lsio_bus_clk_root", 0, LSIO_PWM_1_LPCG, 20, 0, }, - { IMX_LSIO_LPCG_PWM1_IPG_MSTR_CLK, "pwm1_lpcg_ipg_mstr_clk", "pwm1_clk", 0, LSIO_PWM_1_LPCG, 24, 0, }, - { IMX_LSIO_LPCG_PWM2_IPG_CLK, "pwm2_lpcg_ipg_clk", "pwm2_clk", 0, LSIO_PWM_2_LPCG, 0, 0, }, - { IMX_LSIO_LPCG_PWM2_IPG_HF_CLK, "pwm2_lpcg_ipg_hf_clk", "pwm2_clk", 0, LSIO_PWM_2_LPCG, 4, 0, }, - { IMX_LSIO_LPCG_PWM2_IPG_S_CLK, "pwm2_lpcg_ipg_s_clk", "pwm2_clk", 0, LSIO_PWM_2_LPCG, 16, 0, }, - { IMX_LSIO_LPCG_PWM2_IPG_SLV_CLK, "pwm2_lpcg_ipg_slv_clk", "lsio_bus_clk_root", 0, LSIO_PWM_2_LPCG, 20, 0, }, - { IMX_LSIO_LPCG_PWM2_IPG_MSTR_CLK, "pwm2_lpcg_ipg_mstr_clk", "pwm2_clk", 0, LSIO_PWM_2_LPCG, 24, 0, }, - { IMX_LSIO_LPCG_PWM3_IPG_CLK, "pwm3_lpcg_ipg_clk", "pwm3_clk", 0, LSIO_PWM_3_LPCG, 0, 0, }, - { IMX_LSIO_LPCG_PWM3_IPG_HF_CLK, "pwm3_lpcg_ipg_hf_clk", "pwm3_clk", 0, LSIO_PWM_3_LPCG, 4, 0, }, - { IMX_LSIO_LPCG_PWM3_IPG_S_CLK, "pwm3_lpcg_ipg_s_clk", "pwm3_clk", 0, LSIO_PWM_3_LPCG, 16, 0, }, - { IMX_LSIO_LPCG_PWM3_IPG_SLV_CLK, "pwm3_lpcg_ipg_slv_clk", "lsio_bus_clk_root", 0, LSIO_PWM_3_LPCG, 20, 0, }, - { IMX_LSIO_LPCG_PWM3_IPG_MSTR_CLK, "pwm3_lpcg_ipg_mstr_clk", "pwm3_clk", 0, LSIO_PWM_3_LPCG, 24, 0, }, - { IMX_LSIO_LPCG_PWM4_IPG_CLK, "pwm4_lpcg_ipg_clk", "pwm4_clk", 0, LSIO_PWM_4_LPCG, 0, 0, }, - { IMX_LSIO_LPCG_PWM4_IPG_HF_CLK, "pwm4_lpcg_ipg_hf_clk", "pwm4_clk", 0, LSIO_PWM_4_LPCG, 4, 0, }, - { IMX_LSIO_LPCG_PWM4_IPG_S_CLK, "pwm4_lpcg_ipg_s_clk", "pwm4_clk", 0, LSIO_PWM_4_LPCG, 16, 0, }, - { IMX_LSIO_LPCG_PWM4_IPG_SLV_CLK, "pwm4_lpcg_ipg_slv_clk", "lsio_bus_clk_root", 0, LSIO_PWM_4_LPCG, 20, 0, }, - { IMX_LSIO_LPCG_PWM4_IPG_MSTR_CLK, "pwm4_lpcg_ipg_mstr_clk", "pwm4_clk", 0, LSIO_PWM_4_LPCG, 24, 0, }, - { IMX_LSIO_LPCG_PWM5_IPG_CLK, "pwm5_lpcg_ipg_clk", "pwm5_clk", 0, LSIO_PWM_5_LPCG, 0, 0, }, - { IMX_LSIO_LPCG_PWM5_IPG_HF_CLK, "pwm5_lpcg_ipg_hf_clk", "pwm5_clk", 0, LSIO_PWM_5_LPCG, 4, 0, }, - { IMX_LSIO_LPCG_PWM5_IPG_S_CLK, "pwm5_lpcg_ipg_s_clk", "pwm5_clk", 0, LSIO_PWM_5_LPCG, 16, 0, }, - { IMX_LSIO_LPCG_PWM5_IPG_SLV_CLK, "pwm5_lpcg_ipg_slv_clk", "lsio_bus_clk_root", 0, LSIO_PWM_5_LPCG, 20, 0, }, - { IMX_LSIO_LPCG_PWM5_IPG_MSTR_CLK, "pwm5_lpcg_ipg_mstr_clk", "pwm5_clk", 0, LSIO_PWM_5_LPCG, 24, 0, }, - { IMX_LSIO_LPCG_PWM6_IPG_CLK, "pwm6_lpcg_ipg_clk", "pwm6_clk", 0, LSIO_PWM_6_LPCG, 0, 0, }, - { IMX_LSIO_LPCG_PWM6_IPG_HF_CLK, "pwm6_lpcg_ipg_hf_clk", "pwm6_clk", 0, LSIO_PWM_6_LPCG, 4, 0, }, - { IMX_LSIO_LPCG_PWM6_IPG_S_CLK, "pwm6_lpcg_ipg_s_clk", "pwm6_clk", 0, LSIO_PWM_6_LPCG, 16, 0, }, - { IMX_LSIO_LPCG_PWM6_IPG_SLV_CLK, "pwm6_lpcg_ipg_slv_clk", "lsio_bus_clk_root", 0, LSIO_PWM_6_LPCG, 20, 0, }, - { IMX_LSIO_LPCG_PWM6_IPG_MSTR_CLK, "pwm6_lpcg_ipg_mstr_clk", "pwm6_clk", 0, LSIO_PWM_6_LPCG, 24, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_lsio = { - .lpcg = imx8qxp_lpcg_lsio, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_lsio), - .num_max = IMX_LSIO_LPCG_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_hsio[] = { - { IMX_HSIO_LPCG_PCIEB_MSTR_AXI_CLK, "hsio_pcie_mstr_axi_clk", "hsio_axi_clk_root", 0, HSIO_PCIEB_LPCG, 16, 0, }, - { IMX_HSIO_LPCG_PCIEB_SLV_AXI_CLK, "hsio_pcie_slv_axi_clk", "hsio_axi_clk_root", 0, HSIO_PCIEB_LPCG, 20, 0, }, - { IMX_HSIO_LPCG_PCIEB_DBI_AXI_CLK, "hsio_pcie_dbi_axi_clk", "hsio_axi_clk_root", 0, HSIO_PCIEB_LPCG, 24, 0, }, - { IMX_HSIO_LPCG_PHYX1_PCLK, "hsio_pcie_phyx1_pclk", "dummy", 0, HSIO_PHYX1_LPCG, 0, 0, }, - { IMX_HSIO_LPCG_PHYX1_APB_CLK, "hsio_pcie_phyx1_apb_clk", "hsio_per_clk_root", 0, HSIO_PHYX1_LPCG, 16, 0, }, - { IMX_HSIO_LPCG_PHYX1_PER_CLK, "hsio_phyx1_per_clk", "hsio_per_clk_root", 0, HSIO_CRR_1_LPCG, 16, 0, }, - { IMX_HSIO_LPCG_PCIEB_PER_CLK, "hsio_pcieb_per_clk", "hsio_per_clk_root", 0, HSIO_CRR_3_LPCG, 16, 0, }, - { IMX_HSIO_LPCG_MISC_PER_CLK, "hsio_misc_per_clk", "hsio_per_clk_root", 0, HSIO_CRR_5_LPCG, 16, 0, }, - { IMX_HSIO_LPCG_GPIO_PER_CLK, "hsio_gpio_per_clk", "hsio_per_clk_root", 0, HSIO_GPIO_LPCG, 16, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_hsio = { - .lpcg = imx8qxp_lpcg_hsio, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_hsio), - .num_max = IMX_HSIO_LPCG_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_img[] = { - { IMX_IMG_LPCG_PDMA0_CLK, "img_lpcg_pdma0_clk", "img_pxl_clk_root", 0, IMG_PDMA0_LPCG, 0, 0, }, - { IMX_IMG_LPCG_PDMA1_CLK, "img_lpcg_pdma1_clk", "img_pxl_clk_root", 0, IMG_PDMA1_LPCG, 0, 0, }, - { IMX_IMG_LPCG_PDMA2_CLK, "img_lpcg_pdma2_clk", "img_pxl_clk_root", 0, IMG_PDMA2_LPCG, 0, 0, }, - { IMX_IMG_LPCG_PDMA3_CLK, "img_lpcg_pdma3_clk", "img_pxl_clk_root", 0, IMG_PDMA3_LPCG, 0, 0, }, - { IMX_IMG_LPCG_PDMA4_CLK, "img_lpcg_pdma4_clk", "img_pxl_clk_root", 0, IMG_PDMA4_LPCG, 0, 0, }, - { IMX_IMG_LPCG_PDMA5_CLK, "img_lpcg_pdma5_clk", "img_pxl_clk_root", 0, IMG_PDMA5_LPCG, 0, 0, }, - { IMX_IMG_LPCG_PDMA6_CLK, "img_lpcg_pdma6_clk", "img_pxl_clk_root", 0, IMG_PDMA6_LPCG, 0, 0, }, - { IMX_IMG_LPCG_PDMA7_CLK, "img_lpcg_pdma7_clk", "img_pxl_clk_root", 0, IMG_PDMA7_LPCG, 0, 0, }, - { IMX_IMG_LPCG_CSI0_PXL_LINK_CLK, "img_lpcg_csi0_pxl_link_clk", "img_pxl_clk_root", 0, IMG_MIPI_CSI0_LPCG, 0, 0, }, - { IMX_IMG_LPCG_CSI1_PXL_LINK_CLK, "img_lpcg_csi1_pxl_link_clk", "img_pxl_clk_root", 0, IMG_MIPI_CSI1_LPCG, 0, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_img = { - .lpcg = imx8qxp_lpcg_img, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_img), - .num_max = IMX_IMG_LPCG_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_csi0[] = { - { IMX_CSI_LPCG_CSI0_CORE_CLK, "csi_lpcg_csi0_core_clk", "mipi_csi0_core_clk", 0, CSI_CSI0_CORE_LPCG, 16, 0, }, - { IMX_CSI_LPCG_CSI0_ESC_CLK, "csi_lpcg_csi0_esc_clk", "mipi_csi0_esc_clk", 0, CSI_CSI0_ESC_LPCG, 16, 0, }, - { IMX_CSI_LPCG_CSI0_I2C0_CLK, "csi_lpcg_csi0_i2c0_clk", "mipi_csi0_i2c0_clk", 0, CSI_CSI0_I2C0_LPCG, 0, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_csi0 = { - .lpcg = imx8qxp_lpcg_csi0, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_csi0), - .num_max = IMX_CSI_LPCG_CSI0_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_csi1[] = { - { IMX_CSI_LPCG_CSI1_CORE_CLK, "csi_lpcg_csi1_core_clk", "mipi_csi1_core_clk", 0, CSI_CSI1_CORE_LPCG, 16, 0, }, - { IMX_CSI_LPCG_CSI1_ESC_CLK, "csi_lpcg_csi1_esc_clk", "mipi_csi1_esc_clk", 0, CSI_CSI1_ESC_LPCG, 16, 0, }, - { IMX_CSI_LPCG_CSI1_I2C0_CLK, "csi_lpcg_csi1_i2c0_clk", "mipi_csi1_i2c0_clk", 0, CSI_CSI1_I2C0_LPCG, 0, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_csi1 = { - .lpcg = imx8qxp_lpcg_csi1, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_csi1), - .num_max = IMX_CSI_LPCG_CSI1_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_pi[] = { - { IMX_PI_LPCG_PI0_PIXEL_CLK, "pi_lpcg_pi0_pixel_clk", "pi_per_div_clk", 0, PI_PI0_PIXEL_LPCG, 0, 0, }, - { IMX_PI_LPCG_PI0_IPG_CLK, "pi_lpcg_pi0_ipg_clk", "pi_per_div_clk", 0, PI_PI0_IPG_LPCG, 16, 0, }, - { IMX_PI_LPCG_PI0_MISC_CLK, "pi_lpcg_pi0_misc_clk", "pi_mclk_div_clk", 0, PI_PI0_MISC_LPCG, 0, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_pi = { - .lpcg = imx8qxp_lpcg_pi, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_pi), - .num_max = IMX_PI_LPCG_CLK_END, -}; - - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_dc[] = { - { IMX_DC0_LPCG_PRG0_RTRAM_CLK, "dc0_lpcg_prg0_rtram_clk", "dc_axi_ext_clk_root", 0, 0x20, 0, 0, }, - { IMX_DC0_LPCG_PRG0_APB_CLK, "dc0_lpcg_prg0_apb_clk", "dc_cfg_clk_root", 0, 0x20, 16, 0, }, - { IMX_DC0_LPCG_PRG1_RTRAM_CLK, "dc0_lpcg_prg1_rtram_clk", "dc_axi_ext_clk_root", 0, 0x24, 0, 0, }, - { IMX_DC0_LPCG_PRG1_APB_CLK, "dc0_lpcg_prg1_apb_clk", "dc_cfg_clk_root", 0, 0x24, 16, 0, }, - { IMX_DC0_LPCG_PRG2_RTRAM_CLK, "dc0_lpcg_prg2_rtram_clk", "dc_axi_ext_clk_root", 0, 0x28, 0, 0, }, - { IMX_DC0_LPCG_PRG2_APB_CLK, "dc0_lpcg_prg2_apb_clk", "dc_cfg_clk_root", 0, 0x28, 16, 0, }, - { IMX_DC0_LPCG_PRG3_RTRAM_CLK, "dc0_lpcg_prg3_rtram_clk", "dc_axi_ext_clk_root", 0, 0x34, 0, 0, }, - { IMX_DC0_LPCG_PRG3_APB_CLK, "dc0_lpcg_prg3_apb_clk", "dc_cfg_clk_root", 0, 0x34, 16, 0, }, - { IMX_DC0_LPCG_PRG4_RTRAM_CLK, "dc0_lpcg_prg4_rtram_clk", "dc_axi_ext_clk_root", 0, 0x38, 0, 0, }, - { IMX_DC0_LPCG_PRG4_APB_CLK, "dc0_lpcg_prg4_apb_clk", "dc_cfg_clk_root", 0, 0x38, 16, 0, }, - { IMX_DC0_LPCG_PRG5_RTRAM_CLK, "dc0_lpcg_prg5_rtram_clk", "dc_axi_ext_clk_root", 0, 0x3c, 0, 0, }, - { IMX_DC0_LPCG_PRG5_APB_CLK, "dc0_lpcg_prg5_apb_clk", "dc_cfg_clk_root", 0, 0x3c, 16, 0, }, - { IMX_DC0_LPCG_PRG6_RTRAM_CLK, "dc0_lpcg_prg6_rtram_clk", "dc_axi_ext_clk_root", 0, 0x40, 0, 0, }, - { IMX_DC0_LPCG_PRG6_APB_CLK, "dc0_lpcg_prg6_apb_clk", "dc_cfg_clk_root", 0, 0x40, 16, 0, }, - { IMX_DC0_LPCG_PRG7_RTRAM_CLK, "dc0_lpcg_prg7_rtram_clk", "dc_axi_ext_clk_root", 0, 0x44, 0, 0, }, - { IMX_DC0_LPCG_PRG7_APB_CLK, "dc0_lpcg_prg7_apb_clk", "dc_cfg_clk_root", 0, 0x44, 16, 0, }, - { IMX_DC0_LPCG_PRG8_RTRAM_CLK, "dc0_lpcg_prg8_rtram_clk", "dc_axi_ext_clk_root", 0, 0x48, 0, 0, }, - { IMX_DC0_LPCG_PRG8_APB_CLK, "dc0_lpcg_prg8_apb_clk", "dc_cfg_clk_root", 0, 0x48, 16, 0, }, - - { IMX_DC0_LPCG_DPR0_APB_CLK, "dc0_lpcg_dpr0_apb_clk", "dc_cfg_clk_root", 0, 0x18, 16, 0, }, - { IMX_DC0_LPCG_DPR0_B_CLK, "dc0_lpcg_drp0_b_clk", "dc_axi_ext_clk_root", 0, 0x18, 20, 0, }, - { IMX_DC0_LPCG_RTRAM0_CLK, "dc0_lpcg_rtram0_clk", "dc_axi_int_clk_root", 0, 0x1c, 0, 0, }, - { IMX_DC0_LPCG_DPR1_APB_CLK, "dc0_lpcg_dpr1_apb_clk", "dc_cfg_clk_root", 0, 0x2c, 16, 0, }, - { IMX_DC0_LPCG_DPR1_B_CLK, "dc0_lpcg_drp1_b_clk", "dc_axi_ext_clk_root", 0, 0x2c, 20, 0, }, - { IMX_DC0_LPCG_RTRAM1_CLK, "dc0_lpcg_rtram1_clk", "dc_axi_int_clk_root", 0, 0x30, 0, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_dc = { - .lpcg = imx8qxp_lpcg_dc, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_dc), - .num_max = IMX_DC0_LPCG_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_mipi0[] = { - { IMX_MIPI0_LPCG_I2C0_CLK, "mipi0_lpcg_i2c0_clk", "mipi0_i2c0_clk", 0, 0x14, 0, 0, }, - { IMX_MIPI0_LPCG_I2C1_CLK, "mipi0_lpcg_i2c1_clk", "mipi0_i2c1_clk", 0, 0x14, 0, 0, }, //FIXME: same LPCG offset as I2C0 - { IMX_MIPI0_LPCG_I2C0_IPG_S_CLK, "mipi0_lpcg_i2c0_ipg_s", "mipi_ipg_clk_root", 0, 0x10, 0, 0, }, - { IMX_MIPI0_LPCG_I2C0_IPG_CLK, "mipi0_lpcg_i2c0_ipg_clk", "mipi0_lpcg_i2c0_ipg_s", 0, 0, 0, 0, }, - { IMX_MIPI0_LPCG_I2C1_IPG_S_CLK, "mipi0_lpcg_i2c1_ipg_s", "mipi_ipg_clk_root", 0, 0x14, 0, 0, }, - { IMX_MIPI0_LPCG_I2C1_IPG_CLK, "mipi0_lpcg_i2c1_ipg_clk", "mipi0_lpcg_i2c1_ipg_s", 0, 0, 0, 0, }, //FIXME: same LPCG offset as I2C0 - { IMX_MIPI0_LPCG_PWM_IPG_S_CLK, "mipi0_lpcg_pwm_ipg_s", "mipi_ipg_clk_root", 0, 0xc, 16, 0, }, - { IMX_MIPI0_LPCG_PWM_IPG_CLK, "mipi0_lpcg_pwm_ipg_cl", "mipi0_lpcg_pwm_ipg_s", 0, 0xc, 16, 0, }, //FIXME: same LPCG offset as IPG_S - { IMX_MIPI0_LPCG_PWM_32K_CLK, "mipi0_lpcg_pwm_32K_clk", "xtal_32KHz", 0, 0xc, 0, 0, }, - { IMX_MIPI0_LPCG_PWM_CLK, "mipi0_lpcg_pwm_clk", "mipi0_pwm_clk", 0, 0xc, 0, 0, }, //FIXME: same LPCG offset as 32K_CLK - { IMX_MIPI0_LPCG_GPIO_IPG_CLK, "mipi0_lpcg_gpio_ipg_clk", "mipi_ipg_clk_root", 0, 0x8, 0, 0, }, - { IMX_MIPI0_LPCG_LIS_IPG_CLK, "mipi0_lis_ipg_clk", "mipi_ipg_clk_root", 0, 0, 16, 0, }, -}; - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_mipi0 = { - .lpcg = imx8qxp_lpcg_mipi0, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_mipi0), - .num_max = IMX_MIPI0_LPCG_CLK_END, -}; - -static const struct imx8qxp_lpcg_data imx8qxp_lpcg_mipi1[] = { - { IMX_MIPI1_LPCG_I2C0_CLK, "mipi1_lpcg_i2c0_clk", "mipi1_i2c0_clk", 0, 0x14, 0, 0, }, - { IMX_MIPI1_LPCG_I2C1_CLK, "mipi1_lpcg_i2c1_clk", "mipi1_i2c1_clk", 0, 0x14, 0, 0, }, //FIXME: same LPCG offset as I2C0 - { IMX_MIPI1_LPCG_I2C0_IPG_S_CLK, "mipi1_lpcg_i2c0_ipg_s", "mipi_ipg_clk_root", 0, 0x10, 0, 0, }, - { IMX_MIPI1_LPCG_I2C0_IPG_CLK, "mipi1_lpcg_i2c0_ipg_clk", "mipi1_lpcg_i2c0_ipg_s", 0, 0, 0, 0, }, - { IMX_MIPI1_LPCG_I2C1_IPG_S_CLK, "mipi1_lpcg_i2c1_ipg_s", "mipi_ipg_clk_root", 0, 0x14, 0, 0, }, - { IMX_MIPI1_LPCG_I2C1_IPG_CLK, "mipi1_lpcg_i2c1_ipg_clk", "mipi1_lpcg_i2c1_ipg_s", 0, 0, 0, 0, }, //FIXME: same LPCG offset as I2C0 - { IMX_MIPI1_LPCG_PWM_IPG_S_CLK, "mipi1_lpcg_pwm_ipg_s", "mipi_ipg_clk_root", 0, 0xc, 16, 0, }, - { IMX_MIPI1_LPCG_PWM_IPG_CLK, "mipi1_lpcg_pwm_ipg_clk", "mipi1_lpcg_pwm_ipg_s", 0, 0xc, 16, 0, }, //FIXME: same LPCG offset as IPG_S - { IMX_MIPI1_LPCG_PWM_32K_CLK, "mipi1_lpcg_pwm_32K_clk", "xtal_32KHz", 0, 0xc, 0, 0, }, - { IMX_MIPI1_LPCG_PWM_CLK, "mipi1_lpcg_pwm_clk", "mipi1_pwm_clk", 0, 0xc, 0, 0, }, //FIXME: same LPCG offset as 32K_CLK - { IMX_MIPI1_LPCG_GPIO_IPG_CLK, "mipi1_lpcg_gpio_ipg_clk", "mipi_ipg_clk_root", 0, 0x8, 0, 0, }, - { IMX_MIPI1_LPCG_LIS_IPG_CLK, "mipi1_lis_ipg_clk", "mipi_ipg_clk_root", 0, 0, 16, 0, }, -}; - - -static const struct imx8qxp_ss_lpcg imx8qxp_ss_mipi1 = { - .lpcg = imx8qxp_lpcg_mipi1, - .num_lpcg = ARRAY_SIZE(imx8qxp_lpcg_mipi1), - .num_max = IMX_MIPI1_LPCG_CLK_END, -}; #define IMX_LPCG_MAX_CLKS 8 -static int imx_lpcg_parse_clks_from_dt(struct platform_device *pdev, - struct device_node *np) +static int imx8qxp_lpcg_clk_probe(struct platform_device *pdev) { + struct device_node *np = pdev->dev.of_node; const char *output_names[IMX_LPCG_MAX_CLKS]; const char *parent_names[IMX_LPCG_MAX_CLKS]; unsigned int bit_offset[IMX_LPCG_MAX_CLKS]; @@ -391,9 +34,6 @@ static int imx_lpcg_parse_clks_from_dt(struct platform_device *pdev, int ret; int i; - if (!of_device_is_compatible(np, "fsl,imx8qxp-lpcg")) - return -EINVAL; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(base)) @@ -467,72 +107,7 @@ static int imx_lpcg_parse_clks_from_dt(struct platform_device *pdev, return ret; } -static int imx8qxp_lpcg_clk_probe(struct platform_device *pdev) -{ - struct device *dev = &pdev->dev; - struct device_node *np = dev->of_node; - struct clk_hw_onecell_data *clk_data; - const struct imx8qxp_ss_lpcg *ss_lpcg; - const struct imx8qxp_lpcg_data *lpcg; - struct resource *res; - struct clk_hw **clks; - void __iomem *base; - int ret; - int i; - - /* try new binding to parse clocks from device tree first */ - ret = imx_lpcg_parse_clks_from_dt(pdev, np); - if (!ret) - return 0; - - ss_lpcg = of_device_get_match_data(dev); - if (!ss_lpcg) - return -ENODEV; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) - return -EINVAL; - base = devm_ioremap(dev, res->start, resource_size(res)); - if (!base) - return -ENOMEM; - - clk_data = devm_kzalloc(&pdev->dev, struct_size(clk_data, hws, - ss_lpcg->num_max), GFP_KERNEL); - if (!clk_data) - return -ENOMEM; - - clk_data->num = ss_lpcg->num_max; - clks = clk_data->hws; - - for (i = 0; i < ss_lpcg->num_lpcg; i++) { - lpcg = ss_lpcg->lpcg + i; - clks[lpcg->id] = imx_clk_lpcg_scu(lpcg->name, lpcg->parent, - lpcg->flags, base + lpcg->offset, - lpcg->bit_idx, lpcg->hw_gate); - } - - for (i = 0; i < clk_data->num; i++) { - if (IS_ERR(clks[i])) - pr_warn("i.MX clk %u: register failed with %ld\n", - i, PTR_ERR(clks[i])); - } - - return of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_data); -} - static const struct of_device_id imx8qxp_lpcg_match[] = { - { .compatible = "fsl,imx8qxp-lpcg-cm40", &imx8qxp_ss_cm40, }, - { .compatible = "fsl,imx8qxp-lpcg-adma", &imx8qxp_ss_adma, }, - { .compatible = "fsl,imx8qxp-lpcg-conn", &imx8qxp_ss_conn, }, - { .compatible = "fsl,imx8qxp-lpcg-lsio", &imx8qxp_ss_lsio, }, - { .compatible = "fsl,imx8qxp-lpcg-hsio", &imx8qxp_ss_hsio, }, - { .compatible = "fsl,imx8qxp-lpcg-img", &imx8qxp_ss_img, }, - { .compatible = "fsl,imx8qxp-lpcg-csi0", &imx8qxp_ss_csi0, }, - { .compatible = "fsl,imx8qxp-lpcg-csi1", &imx8qxp_ss_csi1, }, - { .compatible = "fsl,imx8qxp-lpcg-pi", &imx8qxp_ss_pi, }, - { .compatible = "fsl,imx8qxp-lpcg-dc", &imx8qxp_ss_dc, }, - { .compatible = "fsl,imx8qxp-lpcg-mipi0", &imx8qxp_ss_mipi0, }, - { .compatible = "fsl,imx8qxp-lpcg-mipi1", &imx8qxp_ss_mipi1, }, { .compatible = "fsl,imx8qxp-lpcg", NULL }, { /* sentinel */ } }; diff --git a/include/dt-bindings/clock/imx8-clock.h b/include/dt-bindings/clock/imx8-clock.h index 50a1090a1f5b..c9cecb47aefb 100644 --- a/include/dt-bindings/clock/imx8-clock.h +++ b/include/dt-bindings/clock/imx8-clock.h @@ -48,331 +48,4 @@ #define IMX_ADMA_ACM_CLK_END 37 -/* LPCG clocks */ - -/* LSIO SS LPCG */ -#define IMX_LSIO_LPCG_PWM0_IPG_CLK 0 -#define IMX_LSIO_LPCG_PWM0_IPG_S_CLK 1 -#define IMX_LSIO_LPCG_PWM0_IPG_HF_CLK 2 -#define IMX_LSIO_LPCG_PWM0_IPG_SLV_CLK 3 -#define IMX_LSIO_LPCG_PWM0_IPG_MSTR_CLK 4 -#define IMX_LSIO_LPCG_PWM1_IPG_CLK 5 -#define IMX_LSIO_LPCG_PWM1_IPG_S_CLK 6 -#define IMX_LSIO_LPCG_PWM1_IPG_HF_CLK 7 -#define IMX_LSIO_LPCG_PWM1_IPG_SLV_CLK 8 -#define IMX_LSIO_LPCG_PWM1_IPG_MSTR_CLK 9 -#define IMX_LSIO_LPCG_PWM2_IPG_CLK 10 -#define IMX_LSIO_LPCG_PWM2_IPG_S_CLK 11 -#define IMX_LSIO_LPCG_PWM2_IPG_HF_CLK 12 -#define IMX_LSIO_LPCG_PWM2_IPG_SLV_CLK 13 -#define IMX_LSIO_LPCG_PWM2_IPG_MSTR_CLK 14 -#define IMX_LSIO_LPCG_PWM3_IPG_CLK 15 -#define IMX_LSIO_LPCG_PWM3_IPG_S_CLK 16 -#define IMX_LSIO_LPCG_PWM3_IPG_HF_CLK 17 -#define IMX_LSIO_LPCG_PWM3_IPG_SLV_CLK 18 -#define IMX_LSIO_LPCG_PWM3_IPG_MSTR_CLK 19 -#define IMX_LSIO_LPCG_PWM4_IPG_CLK 20 -#define IMX_LSIO_LPCG_PWM4_IPG_S_CLK 21 -#define IMX_LSIO_LPCG_PWM4_IPG_HF_CLK 22 -#define IMX_LSIO_LPCG_PWM4_IPG_SLV_CLK 23 -#define IMX_LSIO_LPCG_PWM4_IPG_MSTR_CLK 24 -#define IMX_LSIO_LPCG_PWM5_IPG_CLK 25 -#define IMX_LSIO_LPCG_PWM5_IPG_S_CLK 26 -#define IMX_LSIO_LPCG_PWM5_IPG_HF_CLK 27 -#define IMX_LSIO_LPCG_PWM5_IPG_SLV_CLK 28 -#define IMX_LSIO_LPCG_PWM5_IPG_MSTR_CLK 29 -#define IMX_LSIO_LPCG_PWM6_IPG_CLK 30 -#define IMX_LSIO_LPCG_PWM6_IPG_S_CLK 31 -#define IMX_LSIO_LPCG_PWM6_IPG_HF_CLK 32 -#define IMX_LSIO_LPCG_PWM6_IPG_SLV_CLK 33 -#define IMX_LSIO_LPCG_PWM6_IPG_MSTR_CLK 34 -#define IMX_LSIO_LPCG_PWM7_IPG_CLK 35 -#define IMX_LSIO_LPCG_PWM7_IPG_S_CLK 36 -#define IMX_LSIO_LPCG_PWM7_IPG_HF_CLK 37 -#define IMX_LSIO_LPCG_PWM7_IPG_SLV_CLK 38 -#define IMX_LSIO_LPCG_PWM7_IPG_MSTR_CLK 39 -#define IMX_LSIO_LPCG_GPT0_IPG_CLK 40 -#define IMX_LSIO_LPCG_GPT0_IPG_S_CLK 41 -#define IMX_LSIO_LPCG_GPT0_IPG_HF_CLK 42 -#define IMX_LSIO_LPCG_GPT0_IPG_SLV_CLK 43 -#define IMX_LSIO_LPCG_GPT0_IPG_MSTR_CLK 44 -#define IMX_LSIO_LPCG_GPT1_IPG_CLK 45 -#define IMX_LSIO_LPCG_GPT1_IPG_S_CLK 46 -#define IMX_LSIO_LPCG_GPT1_IPG_HF_CLK 47 -#define IMX_LSIO_LPCG_GPT1_IPG_SLV_CLK 48 -#define IMX_LSIO_LPCG_GPT1_IPG_MSTR_CLK 49 -#define IMX_LSIO_LPCG_GPT2_IPG_CLK 50 -#define IMX_LSIO_LPCG_GPT2_IPG_S_CLK 51 -#define IMX_LSIO_LPCG_GPT2_IPG_HF_CLK 52 -#define IMX_LSIO_LPCG_GPT2_IPG_SLV_CLK 53 -#define IMX_LSIO_LPCG_GPT2_IPG_MSTR_CLK 54 -#define IMX_LSIO_LPCG_GPT3_IPG_CLK 55 -#define IMX_LSIO_LPCG_GPT3_IPG_S_CLK 56 -#define IMX_LSIO_LPCG_GPT3_IPG_HF_CLK 57 -#define IMX_LSIO_LPCG_GPT3_IPG_SLV_CLK 58 -#define IMX_LSIO_LPCG_GPT3_IPG_MSTR_CLK 59 -#define IMX_LSIO_LPCG_GPT4_IPG_CLK 60 -#define IMX_LSIO_LPCG_GPT4_IPG_S_CLK 61 -#define IMX_LSIO_LPCG_GPT4_IPG_HF_CLK 62 -#define IMX_LSIO_LPCG_GPT4_IPG_SLV_CLK 63 -#define IMX_LSIO_LPCG_GPT4_IPG_MSTR_CLK 64 -#define IMX_LSIO_LPCG_FSPI0_HCLK 65 -#define IMX_LSIO_LPCG_FSPI0_IPG_CLK 66 -#define IMX_LSIO_LPCG_FSPI0_IPG_S_CLK 67 -#define IMX_LSIO_LPCG_FSPI0_IPG_SFCK 68 -#define IMX_LSIO_LPCG_FSPI1_HCLK 69 -#define IMX_LSIO_LPCG_FSPI1_IPG_CLK 70 -#define IMX_LSIO_LPCG_FSPI1_IPG_S_CLK 71 -#define IMX_LSIO_LPCG_FSPI1_IPG_SFCK 72 - -#define IMX_LSIO_LPCG_CLK_END 73 - -/* Connectivity SS LPCG */ -#define IMX_CONN_LPCG_SDHC0_IPG_CLK 0 -#define IMX_CONN_LPCG_SDHC0_PER_CLK 1 -#define IMX_CONN_LPCG_SDHC0_HCLK 2 -#define IMX_CONN_LPCG_SDHC1_IPG_CLK 3 -#define IMX_CONN_LPCG_SDHC1_PER_CLK 4 -#define IMX_CONN_LPCG_SDHC1_HCLK 5 -#define IMX_CONN_LPCG_SDHC2_IPG_CLK 6 -#define IMX_CONN_LPCG_SDHC2_PER_CLK 7 -#define IMX_CONN_LPCG_SDHC2_HCLK 8 -#define IMX_CONN_LPCG_GPMI_APB_CLK 9 -#define IMX_CONN_LPCG_GPMI_BCH_APB_CLK 10 -#define IMX_CONN_LPCG_GPMI_BCH_IO_CLK 11 -#define IMX_CONN_LPCG_GPMI_BCH_CLK 12 -#define IMX_CONN_LPCG_APBHDMA_CLK 13 -#define IMX_CONN_LPCG_ENET0_TIMER_CLK 14 -#define IMX_CONN_LPCG_ENET0_RGMII_TXC_CLK 15 -#define IMX_CONN_LPCG_ENET0_AHB_CLK 16 -#define IMX_CONN_LPCG_ENET0_IPG_S_CLK 17 -#define IMX_CONN_LPCG_ENET0_IPG_CLK 18 - -#define IMX_CONN_LPCG_ENET1_TIMER_CLK 19 -#define IMX_CONN_LPCG_ENET1_RGMII_TXC_CLK 20 -#define IMX_CONN_LPCG_ENET1_AHB_CLK 21 -#define IMX_CONN_LPCG_ENET1_IPG_S_CLK 22 -#define IMX_CONN_LPCG_ENET1_IPG_CLK 23 -#define IMX_CONN_LPCG_USB2_PHY_IPG_CLK 24 -#define IMX_CONN_LPCG_USB2_AHB_CLK 25 - -#define IMX_CONN_LPCG_ENET0_TXC_SAMPLING_CLK 26 -#define IMX_CONN_LPCG_ENET1_TXC_SAMPLING_CLK 27 - -#define IMX_CONN_LPCG_CLK_END 30 - -/* ADMA SS LPCG */ -#define IMX_ADMA_LPCG_UART0_IPG_CLK 0 -#define IMX_ADMA_LPCG_UART0_BAUD_CLK 1 -#define IMX_ADMA_LPCG_UART1_IPG_CLK 2 -#define IMX_ADMA_LPCG_UART1_BAUD_CLK 3 -#define IMX_ADMA_LPCG_UART2_IPG_CLK 4 -#define IMX_ADMA_LPCG_UART2_BAUD_CLK 5 -#define IMX_ADMA_LPCG_UART3_IPG_CLK 6 -#define IMX_ADMA_LPCG_UART3_BAUD_CLK 7 -#define IMX_ADMA_LPCG_SPI0_IPG_CLK 8 -#define IMX_ADMA_LPCG_SPI1_IPG_CLK 9 -#define IMX_ADMA_LPCG_SPI2_IPG_CLK 10 -#define IMX_ADMA_LPCG_SPI3_IPG_CLK 11 -#define IMX_ADMA_LPCG_SPI0_CLK 12 -#define IMX_ADMA_LPCG_SPI1_CLK 13 -#define IMX_ADMA_LPCG_SPI2_CLK 14 -#define IMX_ADMA_LPCG_SPI3_CLK 15 -#define IMX_ADMA_LPCG_CAN0_IPG_CLK 16 -#define IMX_ADMA_LPCG_CAN0_IPG_PE_CLK 17 -#define IMX_ADMA_LPCG_CAN0_IPG_CHI_CLK 18 -#define IMX_ADMA_LPCG_CAN1_IPG_CLK 19 -#define IMX_ADMA_LPCG_CAN1_IPG_PE_CLK 20 -#define IMX_ADMA_LPCG_CAN1_IPG_CHI_CLK 21 -#define IMX_ADMA_LPCG_CAN2_IPG_CLK 22 -#define IMX_ADMA_LPCG_CAN2_IPG_PE_CLK 23 -#define IMX_ADMA_LPCG_CAN2_IPG_CHI_CLK 24 -#define IMX_ADMA_LPCG_I2C0_CLK 25 -#define IMX_ADMA_LPCG_I2C1_CLK 26 -#define IMX_ADMA_LPCG_I2C2_CLK 27 -#define IMX_ADMA_LPCG_I2C3_CLK 28 -#define IMX_ADMA_LPCG_I2C0_IPG_CLK 29 -#define IMX_ADMA_LPCG_I2C1_IPG_CLK 30 -#define IMX_ADMA_LPCG_I2C2_IPG_CLK 31 -#define IMX_ADMA_LPCG_I2C3_IPG_CLK 32 -#define IMX_ADMA_LPCG_FTM0_CLK 33 -#define IMX_ADMA_LPCG_FTM1_CLK 34 -#define IMX_ADMA_LPCG_FTM0_IPG_CLK 35 -#define IMX_ADMA_LPCG_FTM1_IPG_CLK 36 -#define IMX_ADMA_LPCG_PWM_HI_CLK 37 -#define IMX_ADMA_LPCG_PWM_IPG_CLK 38 -#define IMX_ADMA_LPCG_LCD_PIX_CLK 39 -#define IMX_ADMA_LPCG_LCD_APB_CLK 40 -#define IMX_ADMA_LPCG_DSP_ADB_CLK 41 -#define IMX_ADMA_LPCG_DSP_IPG_CLK 42 -#define IMX_ADMA_LPCG_DSP_CORE_CLK 43 -#define IMX_ADMA_LPCG_OCRAM_IPG_CLK 44 -#define IMX_ADMA_LPCG_AMIX_IPG_CLK 45 -#define IMX_ADMA_LPCG_ESAI_0_IPG_CLK 46 -#define IMX_ADMA_LPCG_ESAI_0_EXTAL_CLK 47 -#define IMX_ADMA_LPCG_SAI_0_IPG_CLK 48 -#define IMX_ADMA_LPCG_SAI_0_MCLK 49 -#define IMX_ADMA_LPCG_SAI_1_IPG_CLK 50 -#define IMX_ADMA_LPCG_SAI_1_MCLK 51 -#define IMX_ADMA_LPCG_SAI_2_IPG_CLK 52 -#define IMX_ADMA_LPCG_SAI_2_MCLK 53 -#define IMX_ADMA_LPCG_SAI_3_IPG_CLK 54 -#define IMX_ADMA_LPCG_SAI_3_MCLK 55 -#define IMX_ADMA_LPCG_SAI_4_IPG_CLK 56 -#define IMX_ADMA_LPCG_SAI_4_MCLK 57 -#define IMX_ADMA_LPCG_SAI_5_IPG_CLK 58 -#define IMX_ADMA_LPCG_SAI_5_MCLK 59 -#define IMX_ADMA_LPCG_MQS_IPG_CLK 60 -#define IMX_ADMA_LPCG_MQS_MCLK 61 -#define IMX_ADMA_LPCG_GPT5_IPG_CLK 62 -#define IMX_ADMA_LPCG_GPT5_CLKIN 63 -#define IMX_ADMA_LPCG_GPT6_IPG_CLK 64 -#define IMX_ADMA_LPCG_GPT6_CLKIN 65 -#define IMX_ADMA_LPCG_GPT7_IPG_CLK 66 -#define IMX_ADMA_LPCG_GPT7_CLKIN 67 -#define IMX_ADMA_LPCG_GPT8_IPG_CLK 68 -#define IMX_ADMA_LPCG_GPT8_CLKIN 69 -#define IMX_ADMA_LPCG_GPT9_IPG_CLK 70 -#define IMX_ADMA_LPCG_GPT9_CLKIN 71 -#define IMX_ADMA_LPCG_GPT10_IPG_CLK 72 -#define IMX_ADMA_LPCG_GPT10_CLKIN 73 -#define IMX_ADMA_LPCG_MCLKOUT0 74 -#define IMX_ADMA_LPCG_MCLKOUT1 75 -#define IMX_ADMA_LPCG_SPDIF_0_TX_CLK 76 -#define IMX_ADMA_LPCG_SPDIF_0_GCLKW 77 -#define IMX_ADMA_LPCG_ASRC_0_IPG_CLK 79 -#define IMX_ADMA_LPCG_ASRC_1_IPG_CLK 80 -#define IMX_ADMA_LPCG_AUD_PLL_DIV_CLK0_CLK 81 -#define IMX_ADMA_LPCG_AUD_PLL_DIV_CLK1_CLK 82 -#define IMX_ADMA_LPCG_AUD_REC_CLK0_CLK 83 -#define IMX_ADMA_LPCG_AUD_REC_CLK1_CLK 84 - -#define IMX_ADMA_LPCG_CLK_END 85 - -/* CM40 SS LPCG */ -#define IMX_CM40_LPCG_I2C_IPG_CLK 0 -#define IMX_CM40_LPCG_I2C_CLK 1 - -#define IMX_CM40_LPCG_CLK_END 2 - -/* HSIO SS LPCG */ -#define IMX_HSIO_LPCG_PCIEA_MSTR_AXI_CLK 0 -#define IMX_HSIO_LPCG_PCIEA_SLV_AXI_CLK 1 -#define IMX_HSIO_LPCG_PCIEA_DBI_AXI_CLK 2 -#define IMX_HSIO_LPCG_PCIEB_MSTR_AXI_CLK 3 -#define IMX_HSIO_LPCG_PCIEB_SLV_AXI_CLK 4 -#define IMX_HSIO_LPCG_PCIEB_DBI_AXI_CLK 5 -#define IMX_HSIO_LPCG_SATA_CLK 6 -#define IMX_HSIO_LPCG_PHYX2_PCLK_0 7 -#define IMX_HSIO_LPCG_PHYX2_PCLK_1 8 -#define IMX_HSIO_LPCG_PHYX2_APB_0_CLK 9 -#define IMX_HSIO_LPCG_PHYX2_APB_1_CLK 10 -#define IMX_HSIO_LPCG_PHYX1_PCLK 11 -#define IMX_HSIO_LPCG_PHYX1_EPCS_TX_CLK 12 -#define IMX_HSIO_LPCG_PHYX1_EPCS_RX_CLK 13 -#define IMX_HSIO_LPCG_PHYX1_APB_CLK 14 -#define IMX_HSIO_LPCG_PHYX2_PER_CLK 15 -#define IMX_HSIO_LPCG_PHYX1_PER_CLK 16 -#define IMX_HSIO_LPCG_PCIEA_PER_CLK 17 -#define IMX_HSIO_LPCG_PCIEB_PER_CLK 18 -#define IMX_HSIO_LPCG_SATA_PER_CLK 19 -#define IMX_HSIO_LPCG_MISC_PER_CLK 20 -#define IMX_HSIO_LPCG_GPIO_PER_CLK 21 - -#define IMX_HSIO_LPCG_CLK_END 22 - -/* IMAGE SS LPCG */ -#define IMX_IMG_LPCG_PDMA0_CLK 0 -#define IMX_IMG_LPCG_PDMA1_CLK 1 -#define IMX_IMG_LPCG_PDMA2_CLK 2 -#define IMX_IMG_LPCG_PDMA3_CLK 3 -#define IMX_IMG_LPCG_PDMA4_CLK 4 -#define IMX_IMG_LPCG_PDMA5_CLK 5 -#define IMX_IMG_LPCG_PDMA6_CLK 6 -#define IMX_IMG_LPCG_PDMA7_CLK 7 -#define IMX_IMG_LPCG_CSI0_PXL_LINK_CLK 8 -#define IMX_IMG_LPCG_CSI1_PXL_LINK_CLK 9 - -#define IMX_IMG_LPCG_CLK_END 10 - -/* CSI SS LPCG */ -#define IMX_CSI_LPCG_CSI0_CORE_CLK 0 -#define IMX_CSI_LPCG_CSI0_ESC_CLK 1 -#define IMX_CSI_LPCG_CSI0_I2C0_CLK 2 - -#define IMX_CSI_LPCG_CSI0_CLK_END 3 - -/* CSI SS LPCG */ -#define IMX_CSI_LPCG_CSI1_CORE_CLK 0 -#define IMX_CSI_LPCG_CSI1_ESC_CLK 1 -#define IMX_CSI_LPCG_CSI1_I2C0_CLK 2 - -#define IMX_CSI_LPCG_CSI1_CLK_END 3 - -/* Parallel Interface SS LPCG */ -#define IMX_PI_LPCG_PI0_PIXEL_CLK 0 -#define IMX_PI_LPCG_PI0_IPG_CLK 1 -#define IMX_PI_LPCG_PI0_MISC_CLK 2 - -#define IMX_PI_LPCG_CLK_END 3 - -/* DC SS LPCG */ -#define IMX_DC0_LPCG_PRG0_RTRAM_CLK 0 -#define IMX_DC0_LPCG_PRG0_APB_CLK 1 -#define IMX_DC0_LPCG_PRG1_RTRAM_CLK 2 -#define IMX_DC0_LPCG_PRG1_APB_CLK 3 -#define IMX_DC0_LPCG_PRG2_RTRAM_CLK 4 -#define IMX_DC0_LPCG_PRG2_APB_CLK 5 -#define IMX_DC0_LPCG_PRG3_RTRAM_CLK 6 -#define IMX_DC0_LPCG_PRG3_APB_CLK 7 -#define IMX_DC0_LPCG_PRG4_RTRAM_CLK 8 -#define IMX_DC0_LPCG_PRG4_APB_CLK 9 -#define IMX_DC0_LPCG_PRG5_RTRAM_CLK 10 -#define IMX_DC0_LPCG_PRG5_APB_CLK 11 -#define IMX_DC0_LPCG_PRG6_RTRAM_CLK 12 -#define IMX_DC0_LPCG_PRG6_APB_CLK 13 -#define IMX_DC0_LPCG_PRG7_RTRAM_CLK 14 -#define IMX_DC0_LPCG_PRG7_APB_CLK 15 -#define IMX_DC0_LPCG_PRG8_RTRAM_CLK 16 -#define IMX_DC0_LPCG_PRG8_APB_CLK 17 -#define IMX_DC0_LPCG_DPR0_APB_CLK 18 -#define IMX_DC0_LPCG_DPR0_B_CLK 19 -#define IMX_DC0_LPCG_DPR1_APB_CLK 20 -#define IMX_DC0_LPCG_DPR1_B_CLK 21 -#define IMX_DC0_LPCG_RTRAM0_CLK 22 -#define IMX_DC0_LPCG_RTRAM1_CLK 23 - -#define IMX_DC0_LPCG_CLK_END 24 - -/* MIPI LVDS LPCG */ -#define IMX_MIPI0_LPCG_I2C0_CLK 0 -#define IMX_MIPI0_LPCG_I2C1_CLK 1 -#define IMX_MIPI0_LPCG_I2C0_IPG_S_CLK 2 -#define IMX_MIPI0_LPCG_I2C0_IPG_CLK 3 -#define IMX_MIPI0_LPCG_I2C1_IPG_S_CLK 4 -#define IMX_MIPI0_LPCG_I2C1_IPG_CLK 5 -#define IMX_MIPI0_LPCG_PWM_IPG_S_CLK 6 -#define IMX_MIPI0_LPCG_PWM_IPG_CLK 7 -#define IMX_MIPI0_LPCG_PWM_32K_CLK 8 -#define IMX_MIPI0_LPCG_PWM_CLK 9 -#define IMX_MIPI0_LPCG_GPIO_IPG_CLK 10 -#define IMX_MIPI0_LPCG_LIS_IPG_CLK 11 - -#define IMX_MIPI0_LPCG_CLK_END 12 - -#define IMX_MIPI1_LPCG_I2C0_CLK 0 -#define IMX_MIPI1_LPCG_I2C1_CLK 1 -#define IMX_MIPI1_LPCG_I2C0_IPG_S_CLK 2 -#define IMX_MIPI1_LPCG_I2C0_IPG_CLK 3 -#define IMX_MIPI1_LPCG_I2C1_IPG_S_CLK 4 -#define IMX_MIPI1_LPCG_I2C1_IPG_CLK 5 -#define IMX_MIPI1_LPCG_PWM_IPG_S_CLK 6 -#define IMX_MIPI1_LPCG_PWM_IPG_CLK 7 -#define IMX_MIPI1_LPCG_PWM_32K_CLK 8 -#define IMX_MIPI1_LPCG_PWM_CLK 9 -#define IMX_MIPI1_LPCG_GPIO_IPG_CLK 10 -#define IMX_MIPI1_LPCG_LIS_IPG_CLK 11 - -#define IMX_MIPI1_LPCG_CLK_END 12 - #endif /* __DT_BINDINGS_CLOCK_IMX_H */ |