ipu_common: Let the MX6 IPU clock be calculated in run-time
Subsystems (3)
Fabio Estevam
reviewerPATCH 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 configured in run-time on mx6.
---
Changes since v1:
- Improve the mx6 detection logic (Troy)
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 | 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, 13 insertions(+), 29 deletions(-)
drivers/video/ipu_common.c +13 -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,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));
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
PATCH 1/1 ipu_common: Let the MX6 IPU clock be calculated in run-time
Thanks Fabio,
Quoted 338 lines · Fabio Estevam
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_CLKoption as such decision is done in build-time currently.Remove the
CONFIG_IPUV3_CLKoption and let the IPU clock frequency be configured in run-time on mx6.Reported-by Eric Nelson <[email protected]>Signed-off-by Fabio Estevam <[email protected]>---
Changes since v1:
- Improve the mx6 detection logic (Troy)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 | 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, 13 insertions(+), 29 deletions(-)drivers/video/ipu_common.c +13
-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,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));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
-0
scripts/config_whitelist.txt CONFIG_IPAM390_GPIO_BOOTMODE · line 1132
Quoted 7 lines
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
PATCH 1/1 ipu_common: Let the MX6 IPU clock be calculated in run-time
In reply to Fabio EstevamHi Fabio,
thanks for this.
Quoted 338 lines · Fabio Estevam
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_CLKoption as such decision is done in build-time currently.Remove the
CONFIG_IPUV3_CLKoption and let the IPU clock frequency be configured in run-time on mx6.Reported-by Eric Nelson <[email protected]>Signed-off-by Fabio Estevam <[email protected]>---
Changes since v1:
- Improve the mx6 detection logic (Troy)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 | 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, 13 insertions(+), 29 deletions(-)drivers/video/ipu_common.c +13
-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,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));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
-0
scripts/config_whitelist.txt CONFIG_IPAM390_GPIO_BOOTMODE · line 1132
Quoted 7 lines
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
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH 1/1 ipu_common: Let the MX6 IPU clock be calculated in run-time
In reply to Fabio EstevamHi Fabio,
Quoted 8 lines · On Wed, 6 Sep 2017 13:49:31 -0300 Fabio Estevam festevam at gmail.com wrote:
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_CLKoption as such decision is done in build-time currently.
Quoted 8 lines
Remove the
CONFIG_IPUV3_CLKoption and let the IPU clock frequency be configured in run-time on mx6.Reported-by Eric Nelson <[email protected]>Signed-off-by Fabio Estevam <[email protected]>---
Changes since v1:
- Improve the mx6 detection logic (Troy)
Thanks for the patch! Is this a bug fix and should it go into v2017.09 release?
--
Anatolij
Fabio Estevam
reviewerPATCH 1/1 ipu_common: Let the MX6 IPU clock be calculated in run-time
Hi Anatolij,
Quoted 2 lines · Anatolij Gustschin
Thanks for the patch! Is this a bug fix and should it go into v2017.09 release?
I think it can wait until 2017.11.
Thanks!
PATCH 1/1 ipu_common: Let the MX6 IPU clock be calculated in run-time
Hi Fabio,
On Mon, 11 Sep 2017 08:04:48 -0300
Fabio Estevam festevam at gmail.com wrote:
...
Quoted 1 line
I think it can wait until 2017.11.
OK, thanks!
--
Anatolij
PATCH 1/1 ipu_common: Let the MX6 IPU clock be calculated in run-time
In reply to Fabio EstevamHi Fabio,
Quoted 32 lines · On Wed, 6 Sep 2017 13:49:31 -0300 Fabio Estevam festevam at gmail.com wrote:
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_CLKoption as such decision is done in build-time currently.Remove the
CONFIG_IPUV3_CLKoption and let the IPU clock frequency be configured in run-time on mx6.Reported-by Eric Nelson <[email protected]>Signed-off-by Fabio Estevam <[email protected]>---
Changes since v1:
- Improve the mx6 detection logic (Troy)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 | 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 -
Quoted 8 lines
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(+), 29 deletions(-)
Applied to u-boot-video/master after fixing cgtqmx6eval build. Thanks!
...
include/configs/cgtqmx6eval.h line 90
Quoted 13 lines
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
dropped this #endif.
Thanks,
Anatolij