This patch adds the real "camif" clock (off HCLK.) Signed-off-by: Werner Almesberger --- Index: cam/arch/arm/plat-s3c64xx/s3c6400-clock.c =================================================================== --- cam.orig/arch/arm/plat-s3c64xx/s3c6400-clock.c 2009-03-11 17:22:16.000000000 +0800 +++ cam/arch/arm/plat-s3c64xx/s3c6400-clock.c 2009-03-11 17:57:11.000000000 +0800 @@ -622,6 +622,28 @@ .reg_divider = S3C_CLK_DIV0, }; +static struct clk *clkset_camif_list[] = { + &clk_h, +}; + +static struct clk_sources clkset_camif = { + .sources = clkset_camif_list, + .nr_sources = ARRAY_SIZE(clkset_camif_list), +}; + +static struct clksrc_clk clk_camif = { + .clk = { + .name = "camif", + .id = -1, + .ctrlbit = S3C_CLKCON_HCLK_CAMIF, + .enable = s3c64xx_hclk_ctrl, + .set_parent = s3c64xx_setparent_clksrc, + }, + .shift = 0, + .mask = 0, + .sources = &clkset_camif, +}; + /* Clock initialisation code */ static struct clksrc_clk *init_parents[] = { @@ -639,6 +661,7 @@ &clk_audio1, &clk_irda, &clk_camif, + &clk_camera, }; static void __init_or_cpufreq s3c6400_set_clksrc(struct clksrc_clk *clk) @@ -740,6 +763,7 @@ &clk_audio1.clk, &clk_irda.clk, &clk_camera.clk, + &clk_camif.clk, &clk_arm, }; Index: cam/arch/arm/plat-s3c/include/plat/clock.h =================================================================== --- cam.orig/arch/arm/plat-s3c/include/plat/clock.h 2009-03-11 17:21:59.000000000 +0800 +++ cam/arch/arm/plat-s3c/include/plat/clock.h 2009-03-11 17:22:44.000000000 +0800 @@ -81,6 +81,7 @@ /* S3C64XX specific functions and clocks */ +extern int s3c64xx_hclk_ctrl(struct clk *clk, int enable); extern int s3c64xx_sclk_ctrl(struct clk *clk, int enable); /* Init for pwm clock code */ Index: cam/arch/arm/plat-s3c64xx/clock.c =================================================================== --- cam.orig/arch/arm/plat-s3c64xx/clock.c 2009-03-11 17:21:59.000000000 +0800 +++ cam/arch/arm/plat-s3c64xx/clock.c 2009-03-11 17:22:44.000000000 +0800 @@ -89,7 +89,7 @@ return s3c64xx_gate(S3C_PCLK_GATE, clk, enable); } -static int s3c64xx_hclk_ctrl(struct clk *clk, int enable) +int s3c64xx_hclk_ctrl(struct clk *clk, int enable) { return s3c64xx_gate(S3C_HCLK_GATE, clk, enable); } --