From c7430d7d5efc45666476dab0da97466cb8ccff8e Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Wed, 6 Sep 2017 13:49:31 -0300 Subject: ipu_common: Let the MX6 IPU clock be calculated in run-time MX6Q/QP IPU operates at 264MHz and MX6DL IPU at 198MHz. When running a SPL target, which supports multiple MX6 variants we cannot properly setup the IPU clock frequency via CONFIG_IPUV3_CLK option as such decision is done in build-time currently. Remove the CONFIG_IPUV3_CLK option and let the IPU clock frequency be configured in run-time on mx6. Reported-by: Eric Nelson Signed-off-by: Fabio Estevam Reviewed-by: Eric Nelson Reviewed-by: Stefano Babic [agust: fixed #endif in cgtqmx6eval.h] Signed-off-by: Anatolij Gustschin --- drivers/video/ipu_common.c | 14 +++++++++++++- include/configs/advantech_dms-ba16.h | 1 - include/configs/apalis_imx6.h | 1 - include/configs/aristainetos-common.h | 1 - include/configs/cgtqmx6eval.h | 5 ----- include/configs/cm_fx6.h | 1 - include/configs/colibri_imx6.h | 1 - include/configs/embestmx6boards.h | 1 - include/configs/ge_bx50v3.h | 1 - include/configs/gw_ventana.h | 1 - include/configs/imx6-engicam.h | 1 - include/configs/m53evk.h | 1 - include/configs/mx51evk.h | 1 - include/configs/mx53cx9020.h | 1 - include/configs/mx53loco.h | 1 - include/configs/mx6cuboxi.h | 1 - include/configs/mx6sabre_common.h | 5 ----- include/configs/nitrogen6x.h | 1 - include/configs/novena.h | 1 - include/configs/tbs2910.h | 1 - include/configs/wandboard.h | 1 - scripts/config_whitelist.txt | 1 - 22 files changed, 13 insertions(+), 30 deletions(-) diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c index f259fb96332..96229da502b 100644 --- a/drivers/video/ipu_common.c +++ b/drivers/video/ipu_common.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "ipu.h" #include "ipu_regs.h" @@ -81,6 +82,11 @@ struct ipu_ch_param { #define IPU_SW_RST_TOUT_USEC (10000) +#define IPUV3_CLK_MX51 133000000 +#define IPUV3_CLK_MX53 200000000 +#define IPUV3_CLK_MX6Q 264000000 +#define IPUV3_CLK_MX6DL 198000000 + void clk_enable(struct clk *clk) { if (clk) { @@ -196,7 +202,6 @@ static void clk_ipu_disable(struct clk *clk) static struct clk ipu_clk = { .name = "ipu_clk", - .rate = CONFIG_IPUV3_CLK, #if defined(CONFIG_MX51) || defined(CONFIG_MX53) .enable_reg = (u32 *)(CCM_BASE_ADDR + offsetof(struct mxc_ccm_reg, CCGR5)), @@ -476,6 +481,13 @@ int ipu_probe(void) g_pixel_clk[1] = &pixel_clk[1]; g_ipu_clk = &ipu_clk; +#if defined(CONFIG_MX51) + g_ipu_clk->rate = IPUV3_CLK_MX51; +#elif defined(CONFIG_MX53) + g_ipu_clk->rate = IPUV3_CLK_MX53; +#else + g_ipu_clk->rate = is_mx6sdl() ? IPUV3_CLK_MX6DL : IPUV3_CLK_MX6Q; +#endif debug("ipu_clk = %u\n", clk_get_rate(g_ipu_clk)); g_ldb_clk = &ldb_clk; debug("ldb_clk = %u\n", clk_get_rate(g_ldb_clk)); diff --git a/include/configs/advantech_dms-ba16.h b/include/configs/advantech_dms-ba16.h index 86302cf55f6..09f470c6b56 100644 --- a/include/configs/advantech_dms-ba16.h +++ b/include/configs/advantech_dms-ba16.h @@ -253,7 +253,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP #endif diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h index a15f19dce23..9022a9d7bb1 100644 --- a/include/configs/apalis_imx6.h +++ b/include/configs/apalis_imx6.h @@ -117,7 +117,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_CONSOLE_MUX #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP diff --git a/include/configs/aristainetos-common.h b/include/configs/aristainetos-common.h index d24d564d480..397afbb4089 100644 --- a/include/configs/aristainetos-common.h +++ b/include/configs/aristainetos-common.h @@ -214,7 +214,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 198000000 #define CONFIG_IMX_VIDEO_SKIP #define CONFIG_PWM_IMX diff --git a/include/configs/cgtqmx6eval.h b/include/configs/cgtqmx6eval.h index 8f7f26b9edb..2e8993d7d4c 100644 --- a/include/configs/cgtqmx6eval.h +++ b/include/configs/cgtqmx6eval.h @@ -78,11 +78,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#ifdef CONFIG_MX6DL -#define CONFIG_IPUV3_CLK 198000000 -#else -#define CONFIG_IPUV3_CLK 264000000 -#endif #define CONFIG_IMX_HDMI /* SATA */ diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h index 2d6132df9b5..e278961177b 100644 --- a/include/configs/cm_fx6.h +++ b/include/configs/cm_fx6.h @@ -236,7 +236,6 @@ /* Display */ #define CONFIG_VIDEO_IPUV3 -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_IMX_HDMI #define CONFIG_SPLASH_SCREEN diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h index db71369706c..5fd9aab03cc 100644 --- a/include/configs/colibri_imx6.h +++ b/include/configs/colibri_imx6.h @@ -103,7 +103,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_CONSOLE_MUX #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP diff --git a/include/configs/embestmx6boards.h b/include/configs/embestmx6boards.h index 245623049b4..3f128e67cd8 100644 --- a/include/configs/embestmx6boards.h +++ b/include/configs/embestmx6boards.h @@ -108,7 +108,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h index 45f845b3788..a0468d204b6 100644 --- a/include/configs/ge_bx50v3.h +++ b/include/configs/ge_bx50v3.h @@ -277,7 +277,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP #endif diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h index 9c26059a068..128a6e5aec6 100644 --- a/include/configs/gw_ventana.h +++ b/include/configs/gw_ventana.h @@ -156,7 +156,6 @@ /* Framebuffer and LCD */ #define CONFIG_VIDEO_IPUV3 #define CONFIG_VIDEO_LOGO -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP #define CONFIG_VIDEO_BMP_LOGO diff --git a/include/configs/imx6-engicam.h b/include/configs/imx6-engicam.h index a1b70361560..c34dc30127a 100644 --- a/include/configs/imx6-engicam.h +++ b/include/configs/imx6-engicam.h @@ -199,7 +199,6 @@ /* Framebuffer */ #ifdef CONFIG_VIDEO_IPUV3 -# define CONFIG_IPUV3_CLK 260000000 # define CONFIG_IMX_VIDEO_SKIP # define CONFIG_SPLASH_SCREEN diff --git a/include/configs/m53evk.h b/include/configs/m53evk.h index 74b627c31ef..dcc12dd6045 100644 --- a/include/configs/m53evk.h +++ b/include/configs/m53evk.h @@ -172,7 +172,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (2 << 20) -#define CONFIG_IPUV3_CLK 200000000 #endif /* diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h index c89cb0f43b0..3ecb92c27da 100644 --- a/include/configs/mx51evk.h +++ b/include/configs/mx51evk.h @@ -84,7 +84,6 @@ #define CONFIG_SPLASH_SCREEN #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO -#define CONFIG_IPUV3_CLK 133000000 /* allow to overwrite serial and ethaddr */ #define CONFIG_ENV_OVERWRITE diff --git a/include/configs/mx53cx9020.h b/include/configs/mx53cx9020.h index d78a877d8ec..ccb1a4a6097 100644 --- a/include/configs/mx53cx9020.h +++ b/include/configs/mx53cx9020.h @@ -179,6 +179,5 @@ #define CONFIG_SPLASH_SCREEN #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO -#define CONFIG_IPUV3_CLK 200000000 #endif /* __CONFIG_H */ diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h index 45b9bbf403f..e973b356985 100644 --- a/include/configs/mx53loco.h +++ b/include/configs/mx53loco.h @@ -197,6 +197,5 @@ #define CONFIG_SPLASH_SCREEN #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO -#define CONFIG_IPUV3_CLK 200000000 #endif /* __CONFIG_H */ diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h index a168577ee72..4e12de12122 100644 --- a/include/configs/mx6cuboxi.h +++ b/include/configs/mx6cuboxi.h @@ -41,7 +41,6 @@ /* Framebuffer */ #define CONFIG_VIDEO_IPUV3 -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_VIDEO_BMP_RLE8 #define CONFIG_SPLASH_SCREEN #define CONFIG_SPLASH_SCREEN_ALIGN diff --git a/include/configs/mx6sabre_common.h b/include/configs/mx6sabre_common.h index 036c76d950a..f083dc8a93f 100644 --- a/include/configs/mx6sabre_common.h +++ b/include/configs/mx6sabre_common.h @@ -205,11 +205,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#ifdef CONFIG_MX6DL -#define CONFIG_IPUV3_CLK 198000000 -#else -#define CONFIG_IPUV3_CLK 264000000 -#endif #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h index d32d8f871a9..520a52cbc6c 100644 --- a/include/configs/nitrogen6x.h +++ b/include/configs/nitrogen6x.h @@ -80,7 +80,6 @@ #define CONFIG_VIDEO_BMP_GZIP #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (6 * 1024 * 1024) #define CONFIG_BMP_16BPP -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP diff --git a/include/configs/novena.h b/include/configs/novena.h index be8c6911e63..4480aaffa0e 100644 --- a/include/configs/novena.h +++ b/include/configs/novena.h @@ -141,7 +141,6 @@ #define CONFIG_SPLASH_SCREEN #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP #endif diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h index f98bf9562b8..849d4a6aecc 100644 --- a/include/configs/tbs2910.h +++ b/include/configs/tbs2910.h @@ -64,7 +64,6 @@ /* Framebuffer */ #ifdef CONFIG_VIDEO #define CONFIG_VIDEO_IPUV3 -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_VIDEO_BMP_RLE8 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h index d9237d7b81b..3ba4c29f674 100644 --- a/include/configs/wandboard.h +++ b/include/configs/wandboard.h @@ -71,7 +71,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 260000000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP #endif diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 9ce0c3f039f..4a0eae3633e 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -1119,7 +1119,6 @@ CONFIG_IPAM390_GPIO_BOOTMODE CONFIG_IPAM390_GPIO_LED_GREEN CONFIG_IPAM390_GPIO_LED_RED CONFIG_IPROC -CONFIG_IPUV3_CLK CONFIG_IP_DEFRAG CONFIG_IRAM_BASE CONFIG_IRAM_END -- cgit v1.2.3