aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s5pv210/setup-fb.c
diff options
context:
space:
mode:
authorChirayu Desai <cdesai@cyanogenmod.org>2012-03-09 16:37:06 +0530
committerChirayu Desai <chirayudesai1@gmail.com>2013-05-05 10:47:19 +0530
commit939facfc7191b58c3d0fec275f93ed7d66a6c032 (patch)
tree29a52eb6fa4cfe32b4471076cb1ed7d0643dbdd5 /arch/arm/mach-s5pv210/setup-fb.c
parentf661100a75d28ad9ec0f3e9015794ffd69846f35 (diff)
downloadkernel_samsung_aries-939facfc7191b58c3d0fec275f93ed7d66a6c032.zip
kernel_samsung_aries-939facfc7191b58c3d0fec275f93ed7d66a6c032.tar.gz
kernel_samsung_aries-939facfc7191b58c3d0fec275f93ed7d66a6c032.tar.bz2
add support for p1
Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org> Signed-off-by: Humberto Borba <humberos@gmail.com> Signed-off-by: Koudai Aono <koxudaxi@gmail.com> Change-Id: I2dcbaee7f17852ed3ea4a5db2d103704027fe259
Diffstat (limited to 'arch/arm/mach-s5pv210/setup-fb.c')
-rw-r--r--arch/arm/mach-s5pv210/setup-fb.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/arch/arm/mach-s5pv210/setup-fb.c b/arch/arm/mach-s5pv210/setup-fb.c
index 85adf23..2663549 100644
--- a/arch/arm/mach-s5pv210/setup-fb.c
+++ b/arch/arm/mach-s5pv210/setup-fb.c
@@ -73,7 +73,11 @@ int s3cfb_clk_on(struct platform_device *pdev, struct clk **s3cfb_clk)
goto err_clk1;
}
+#if defined(CONFIG_S5PV210_SCLKFIMD_USE_VPLL)
+ mout_mpll = clk_get(&pdev->dev, "sclk_vpll");
+#else
mout_mpll = clk_get(&pdev->dev, "mout_mpll");
+#endif
if (IS_ERR(mout_mpll)) {
dev_err(&pdev->dev, "failed to get mout_mpll\n");
goto err_clk2;
@@ -84,9 +88,64 @@ int s3cfb_clk_on(struct platform_device *pdev, struct clk **s3cfb_clk)
if (!rate)
rate = 166750000;
+#if defined(CONFIG_FB_S3C_LVDS)
+ #if defined(CONFIG_TARGET_PCLK_44_46)
+ rate = 45000000;
+ #elif defined(CONFIG_TARGET_PCLK_47_6)
+ //P1_ATT PCLK -> 47.6MHz
+ rate = 48000000;
+ #else
+ rate = 54000000;
+ #endif
+#endif
+
clk_set_rate(sclk, rate);
dev_dbg(&pdev->dev, "set fimd sclk rate to %d\n", rate);
+#if defined(CONFIG_FB_S3C_MDNIE) && defined(CONFIG_FB_S3C_LVDS)
+ {
+ struct clk * clk_xusb;
+ struct clk * sclk_mdnie;
+ struct clk * sclk_mdnie_pwm;
+ sclk_mdnie = clk_get(&pdev->dev, "sclk_mdnie");
+ if (IS_ERR(sclk_mdnie)) {
+ dev_err(&pdev->dev, "failed to get sclk for mdnie\n");
+ }
+ else
+ {
+ clk_set_parent(sclk_mdnie, mout_mpll);
+
+ #if defined(CONFIG_TARGET_PCLK_44_46)
+ clk_set_rate(sclk_mdnie, 45*1000000);
+ #elif defined(CONFIG_TARGET_PCLK_47_6)
+ //P1_ATT PCLK -> 47.6MHz
+ clk_set_rate(sclk_mdnie, 48*1000000);
+ #else
+ clk_set_rate(sclk_mdnie, 54*1000000);
+ #endif
+ clk_put(sclk_mdnie);
+ }
+ sclk_mdnie_pwm = clk_get(&pdev->dev, "sclk_mdnie_pwm");
+ if (IS_ERR(sclk_mdnie_pwm)) {
+ dev_err(&pdev->dev, "failed to get sclk for mdnie pwm\n");
+ }
+ else
+ {
+ clk_xusb = clk_get(&pdev->dev, "xusbxti");
+ if (IS_ERR(clk_xusb)) {
+ dev_err(&pdev->dev, "failed to get xusbxti for mdnie pwm\n");
+ }
+ else
+ {
+ clk_set_parent(sclk_mdnie_pwm, clk_xusb);
+ clk_put(clk_xusb);
+ }
+ clk_set_rate(sclk_mdnie_pwm, 2400*1000); // mdnie pwm need to 24Khz*100
+ clk_put(sclk_mdnie_pwm);
+ }
+ }
+#endif
+
clk_put(mout_mpll);
clk_enable(sclk);