ipu_common: Let the MX6 IPU clock be calculated in run-time
Subsystems (3)
Fabio Estevam
reviewerRFC 1/1 ipu_common: Let the MX6 IPU clock be calculated in run-time
From: Fabio Estevam <[email protected]>
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 detected in run-time on mx6.
Reported-by Eric Nelson <[email protected]>
Signed-off-by Fabio Estevam <[email protected]>
--- drivers/video/ipu_common.c | 17 ++++++++++++++++- include/configs/advantech_dms-ba16.h | 1 - include/configs/apalis_imx6.h | 1 - include/configs/aristainetos-common.h | 1 - include/configs/cgtqmx6eval.h | 4 ---- 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, 16 insertions(+), 29 deletions(-)
drivers/video/ipu_common.c +16 -1
@@ -19,6 +19,7 @@#include <linux/errno.h> #include <asm/arch/imx-regs.h> #include <asm/arch/crm_regs.h> +#include <asm/arch/sys_proto.h> #include <div64.h> #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,16 @@ 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 +if (is_mx6dqp () ||is_mx6dq ()) + g_ipu_clk->rate =IPUV3_CLK_MX6Q ; +else if (is_mx6dl ()) + g_ipu_clk->rate =IPUV3_CLK_MX6DL ; +#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));
include/configs/advantech_dms-ba16.h +0 -1
@@ -260,7 +260,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
include/configs/apalis_imx6.h +0 -1
@@ -124,7 +124,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
include/configs/aristainetos-common.h +0 -1
@@ -217,7 +217,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
include/configs/cgtqmx6eval.h +0 -4
@@ -87,10 +87,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
include/configs/cm_fx6.h +0 -1
@@ -240,7 +240,6 @@/* Display */ #define CONFIG_VIDEO_IPUV3 -#define CONFIG_IPUV3_CLK 260000000#define CONFIG_IMX_HDMI #define CONFIG_SPLASH_SCREEN
include/configs/colibri_imx6.h +0 -1
@@ -110,7 +110,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
include/configs/embestmx6boards.h +0 -1
@@ -113,7 +113,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
include/configs/ge_bx50v3.h +0 -1
@@ -290,7 +290,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
include/configs/gw_ventana.h +0 -1
@@ -160,7 +160,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
include/configs/imx6-engicam.h +0 -1
@@ -199,7 +199,6 @@/* Framebuffer */ #ifdef CONFIG_VIDEO_IPUV3 -# define CONFIG_IPUV3_CLK 260000000# define CONFIG_IMX_VIDEO_SKIP # define CONFIG_SPLASH_SCREEN
include/configs/m53evk.h +0 -1
@@ -179,7 +179,6 @@#define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (2 << 20) -#define CONFIG_IPUV3_CLK 200000000#endif /*
include/configs/mx51evk.h +0 -1
@@ -87,7 +87,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
include/configs/mx53cx9020.h +0 -1
@@ -187,6 +187,5 @@#define CONFIG_SPLASH_SCREEN #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO -#define CONFIG_IPUV3_CLK 200000000#endif /* __CONFIG_H */
include/configs/mx53loco.h +0 -1
@@ -204,6 +204,5 @@#define CONFIG_SPLASH_SCREEN #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO -#define CONFIG_IPUV3_CLK 200000000#endif /* __CONFIG_H */
include/configs/mx6cuboxi.h +0 -1
@@ -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
include/configs/mx6sabre_common.h +0 -5
@@ -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
include/configs/nitrogen6x.h +0 -1
@@ -85,7 +85,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
include/configs/novena.h +0 -1
@@ -145,7 +145,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
include/configs/tbs2910.h +0 -1
@@ -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
include/configs/wandboard.h +0 -1
@@ -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
scripts/config_whitelist.txt +0 -1
@@ -1127,7 +1127,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
Signature · 1 line
2.7.4