aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2011-02-24 03:47:30 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-03-11 08:46:27 -0500
commit1bb478350670fadf708d3cbd6137c32dfbe3fd5f (patch)
tree387ed4990280ad1bbfd17f763d9249c66a2d750c /drivers/video/omap2
parent067a57e48e302863eb2d5ac0900ae9ae65dbc8c3 (diff)
OMAP2PLUS: DSS2: DSI: Generalize DSI PLL Clock Naming
DSI PLL output clock names have been made more generic. The clock name describes what the source of the clock and what clock is used for. Some of DSI PLL parameters like dividers and DSI PLL source have also been made more generic. dsi1_pll_fclk and dsi2_pll_fclk have been changed as dsi_pll_hsdiv_dispc_clk and dsi_pll_hsdiv_dsi_clk respectively. Also, the hsdividers are now named regm_dispc and regm_dsi instead of regm3 and regm4. Functions and macros named on the basis of these clock names have also been made generic. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r--drivers/video/omap2/dss/dispc.c2
-rw-r--r--drivers/video/omap2/dss/dpi.c4
-rw-r--r--drivers/video/omap2/dss/dsi.c134
-rw-r--r--drivers/video/omap2/dss/dss.c4
-rw-r--r--drivers/video/omap2/dss/dss.h20
5 files changed, 85 insertions, 79 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 2c82d9a3df4b..9fb11c17623f 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -2338,7 +2338,7 @@ unsigned long dispc_fclk_rate(void)
2338 r = dss_clk_get_rate(DSS_CLK_FCK); 2338 r = dss_clk_get_rate(DSS_CLK_FCK);
2339 else 2339 else
2340#ifdef CONFIG_OMAP2_DSS_DSI 2340#ifdef CONFIG_OMAP2_DSS_DSI
2341 r = dsi_get_dsi1_pll_rate(); 2341 r = dsi_get_pll_hsdiv_dispc_rate();
2342#else 2342#else
2343 BUG(); 2343 BUG();
2344#endif 2344#endif
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c
index 1b2867dfeeb9..08fed3080c0a 100644
--- a/drivers/video/omap2/dss/dpi.c
+++ b/drivers/video/omap2/dss/dpi.c
@@ -63,7 +63,7 @@ static int dpi_set_dsi_clk(struct omap_dss_device *dssdev, bool is_tft,
63 if (r) 63 if (r)
64 return r; 64 return r;
65 65
66 *fck = dsi_cinfo.dsi1_pll_fclk; 66 *fck = dsi_cinfo.dsi_pll_hsdiv_dispc_clk;
67 *lck_div = dispc_cinfo.lck_div; 67 *lck_div = dispc_cinfo.lck_div;
68 *pck_div = dispc_cinfo.pck_div; 68 *pck_div = dispc_cinfo.pck_div;
69 69
@@ -271,7 +271,7 @@ int dpi_check_timings(struct omap_dss_device *dssdev,
271 if (r) 271 if (r)
272 return r; 272 return r;
273 273
274 fck = dsi_cinfo.dsi1_pll_fclk; 274 fck = dsi_cinfo.dsi_pll_hsdiv_dispc_clk;
275 lck_div = dispc_cinfo.lck_div; 275 lck_div = dispc_cinfo.lck_div;
276 pck_div = dispc_cinfo.pck_div; 276 pck_div = dispc_cinfo.pck_div;
277 } 277 }
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index 3ef94227bbe7..37ffbb6ecf69 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -189,8 +189,8 @@ struct dsi_reg { u16 idx; };
189#define FINT_MIN 750000 189#define FINT_MIN 750000
190#define REGN_MAX (1 << 7) 190#define REGN_MAX (1 << 7)
191#define REGM_MAX ((1 << 11) - 1) 191#define REGM_MAX ((1 << 11) - 1)
192#define REGM3_MAX (1 << 4) 192#define REGM_DISPC_MAX (1 << 4)
193#define REGM4_MAX (1 << 4) 193#define REGM_DSI_MAX (1 << 4)
194#define LP_DIV_MAX ((1 << 13) - 1) 194#define LP_DIV_MAX ((1 << 13) - 1)
195 195
196enum fifo_size { 196enum fifo_size {
@@ -642,7 +642,7 @@ static void dsi_vc_disable_bta_irq(int channel)
642 dsi_write_reg(DSI_VC_IRQENABLE(channel), l); 642 dsi_write_reg(DSI_VC_IRQENABLE(channel), l);
643} 643}
644 644
645/* DSI func clock. this could also be DSI2_PLL_FCLK */ 645/* DSI func clock. this could also be dsi_pll_hsdiv_dsi_clk */
646static inline void enable_clocks(bool enable) 646static inline void enable_clocks(bool enable)
647{ 647{
648 if (enable) 648 if (enable)
@@ -712,14 +712,14 @@ static inline int dsi_if_enable(bool enable)
712 return 0; 712 return 0;
713} 713}
714 714
715unsigned long dsi_get_dsi1_pll_rate(void) 715unsigned long dsi_get_pll_hsdiv_dispc_rate(void)
716{ 716{
717 return dsi.current_cinfo.dsi1_pll_fclk; 717 return dsi.current_cinfo.dsi_pll_hsdiv_dispc_clk;
718} 718}
719 719
720static unsigned long dsi_get_dsi2_pll_rate(void) 720static unsigned long dsi_get_pll_hsdiv_dsi_rate(void)
721{ 721{
722 return dsi.current_cinfo.dsi2_pll_fclk; 722 return dsi.current_cinfo.dsi_pll_hsdiv_dsi_clk;
723} 723}
724 724
725static unsigned long dsi_get_txbyteclkhs(void) 725static unsigned long dsi_get_txbyteclkhs(void)
@@ -732,11 +732,11 @@ static unsigned long dsi_fclk_rate(void)
732 unsigned long r; 732 unsigned long r;
733 733
734 if (dss_get_dsi_clk_source() == DSS_CLK_SRC_FCK) { 734 if (dss_get_dsi_clk_source() == DSS_CLK_SRC_FCK) {
735 /* DSI FCLK source is DSS1_ALWON_FCK, which is dss1_fck */ 735 /* DSI FCLK source is DSS_CLK_FCK */
736 r = dss_clk_get_rate(DSS_CLK_FCK); 736 r = dss_clk_get_rate(DSS_CLK_FCK);
737 } else { 737 } else {
738 /* DSI FCLK source is DSI2_PLL_FCLK */ 738 /* DSI FCLK source is dsi_pll_hsdiv_dsi_clk */
739 r = dsi_get_dsi2_pll_rate(); 739 r = dsi_get_pll_hsdiv_dsi_rate();
740 } 740 }
741 741
742 return r; 742 return r;
@@ -806,16 +806,16 @@ static int dsi_calc_clock_rates(struct omap_dss_device *dssdev,
806 if (cinfo->regm == 0 || cinfo->regm > REGM_MAX) 806 if (cinfo->regm == 0 || cinfo->regm > REGM_MAX)
807 return -EINVAL; 807 return -EINVAL;
808 808
809 if (cinfo->regm3 > REGM3_MAX) 809 if (cinfo->regm_dispc > REGM_DISPC_MAX)
810 return -EINVAL; 810 return -EINVAL;
811 811
812 if (cinfo->regm4 > REGM4_MAX) 812 if (cinfo->regm_dsi > REGM_DSI_MAX)
813 return -EINVAL; 813 return -EINVAL;
814 814
815 if (cinfo->use_dss2_fck) { 815 if (cinfo->use_sys_clk) {
816 cinfo->clkin = dss_clk_get_rate(DSS_CLK_SYSCK); 816 cinfo->clkin = dss_clk_get_rate(DSS_CLK_SYSCK);
817 /* XXX it is unclear if highfreq should be used 817 /* XXX it is unclear if highfreq should be used
818 * with DSS2_FCK source also */ 818 * with DSS_SYS_CLK source also */
819 cinfo->highfreq = 0; 819 cinfo->highfreq = 0;
820 } else { 820 } else {
821 cinfo->clkin = dispc_pclk_rate(dssdev->manager->id); 821 cinfo->clkin = dispc_pclk_rate(dssdev->manager->id);
@@ -836,15 +836,17 @@ static int dsi_calc_clock_rates(struct omap_dss_device *dssdev,
836 if (cinfo->clkin4ddr > 1800 * 1000 * 1000) 836 if (cinfo->clkin4ddr > 1800 * 1000 * 1000)
837 return -EINVAL; 837 return -EINVAL;
838 838
839 if (cinfo->regm3 > 0) 839 if (cinfo->regm_dispc > 0)
840 cinfo->dsi1_pll_fclk = cinfo->clkin4ddr / cinfo->regm3; 840 cinfo->dsi_pll_hsdiv_dispc_clk =
841 cinfo->clkin4ddr / cinfo->regm_dispc;
841 else 842 else
842 cinfo->dsi1_pll_fclk = 0; 843 cinfo->dsi_pll_hsdiv_dispc_clk = 0;
843 844
844 if (cinfo->regm4 > 0) 845 if (cinfo->regm_dsi > 0)
845 cinfo->dsi2_pll_fclk = cinfo->clkin4ddr / cinfo->regm4; 846 cinfo->dsi_pll_hsdiv_dsi_clk =
847 cinfo->clkin4ddr / cinfo->regm_dsi;
846 else 848 else
847 cinfo->dsi2_pll_fclk = 0; 849 cinfo->dsi_pll_hsdiv_dsi_clk = 0;
848 850
849 return 0; 851 return 0;
850} 852}
@@ -857,18 +859,18 @@ int dsi_pll_calc_clock_div_pck(bool is_tft, unsigned long req_pck,
857 struct dispc_clock_info best_dispc; 859 struct dispc_clock_info best_dispc;
858 int min_fck_per_pck; 860 int min_fck_per_pck;
859 int match = 0; 861 int match = 0;
860 unsigned long dss_clk_fck2, max_dss_fck; 862 unsigned long dss_sys_clk, max_dss_fck;
861 863
862 dss_clk_fck2 = dss_clk_get_rate(DSS_CLK_SYSCK); 864 dss_sys_clk = dss_clk_get_rate(DSS_CLK_SYSCK);
863 865
864 max_dss_fck = dss_feat_get_max_dss_fck(); 866 max_dss_fck = dss_feat_get_max_dss_fck();
865 867
866 if (req_pck == dsi.cache_req_pck && 868 if (req_pck == dsi.cache_req_pck &&
867 dsi.cache_cinfo.clkin == dss_clk_fck2) { 869 dsi.cache_cinfo.clkin == dss_sys_clk) {
868 DSSDBG("DSI clock info found from cache\n"); 870 DSSDBG("DSI clock info found from cache\n");
869 *dsi_cinfo = dsi.cache_cinfo; 871 *dsi_cinfo = dsi.cache_cinfo;
870 dispc_find_clk_divs(is_tft, req_pck, dsi_cinfo->dsi1_pll_fclk, 872 dispc_find_clk_divs(is_tft, req_pck,
871 dispc_cinfo); 873 dsi_cinfo->dsi_pll_hsdiv_dispc_clk, dispc_cinfo);
872 return 0; 874 return 0;
873 } 875 }
874 876
@@ -889,8 +891,8 @@ retry:
889 memset(&best_dispc, 0, sizeof(best_dispc)); 891 memset(&best_dispc, 0, sizeof(best_dispc));
890 892
891 memset(&cur, 0, sizeof(cur)); 893 memset(&cur, 0, sizeof(cur));
892 cur.clkin = dss_clk_fck2; 894 cur.clkin = dss_sys_clk;
893 cur.use_dss2_fck = 1; 895 cur.use_sys_clk = 1;
894 cur.highfreq = 0; 896 cur.highfreq = 0;
895 897
896 /* no highfreq: 0.75MHz < Fint = clkin / regn < 2.1MHz */ 898 /* no highfreq: 0.75MHz < Fint = clkin / regn < 2.1MHz */
@@ -916,30 +918,32 @@ retry:
916 if (cur.clkin4ddr > 1800 * 1000 * 1000) 918 if (cur.clkin4ddr > 1800 * 1000 * 1000)
917 break; 919 break;
918 920
919 /* DSI1_PLL_FCLK(MHz) = DSIPHY(MHz) / regm3 < 173MHz */ 921 /* dsi_pll_hsdiv_dispc_clk(MHz) =
920 for (cur.regm3 = 1; cur.regm3 < REGM3_MAX; 922 * DSIPHY(MHz) / regm_dispc < 173MHz/186Mhz */
921 ++cur.regm3) { 923 for (cur.regm_dispc = 1; cur.regm_dispc < REGM_DISPC_MAX;
924 ++cur.regm_dispc) {
922 struct dispc_clock_info cur_dispc; 925 struct dispc_clock_info cur_dispc;
923 cur.dsi1_pll_fclk = cur.clkin4ddr / cur.regm3; 926 cur.dsi_pll_hsdiv_dispc_clk =
927 cur.clkin4ddr / cur.regm_dispc;
924 928
925 /* this will narrow down the search a bit, 929 /* this will narrow down the search a bit,
926 * but still give pixclocks below what was 930 * but still give pixclocks below what was
927 * requested */ 931 * requested */
928 if (cur.dsi1_pll_fclk < req_pck) 932 if (cur.dsi_pll_hsdiv_dispc_clk < req_pck)
929 break; 933 break;
930 934
931 if (cur.dsi1_pll_fclk > max_dss_fck) 935 if (cur.dsi_pll_hsdiv_dispc_clk > max_dss_fck)
932 continue; 936 continue;
933 937
934 if (min_fck_per_pck && 938 if (min_fck_per_pck &&
935 cur.dsi1_pll_fclk < 939 cur.dsi_pll_hsdiv_dispc_clk <
936 req_pck * min_fck_per_pck) 940 req_pck * min_fck_per_pck)
937 continue; 941 continue;
938 942
939 match = 1; 943 match = 1;
940 944
941 dispc_find_clk_divs(is_tft, req_pck, 945 dispc_find_clk_divs(is_tft, req_pck,
942 cur.dsi1_pll_fclk, 946 cur.dsi_pll_hsdiv_dispc_clk,
943 &cur_dispc); 947 &cur_dispc);
944 948
945 if (abs(cur_dispc.pck - req_pck) < 949 if (abs(cur_dispc.pck - req_pck) <
@@ -968,9 +972,9 @@ found:
968 return -EINVAL; 972 return -EINVAL;
969 } 973 }
970 974
971 /* DSI2_PLL_FCLK (regm4) is not used */ 975 /* dsi_pll_hsdiv_dsi_clk (regm_dsi) is not used */
972 best.regm4 = 0; 976 best.regm_dsi = 0;
973 best.dsi2_pll_fclk = 0; 977 best.dsi_pll_hsdiv_dsi_clk = 0;
974 978
975 if (dsi_cinfo) 979 if (dsi_cinfo)
976 *dsi_cinfo = best; 980 *dsi_cinfo = best;
@@ -994,18 +998,20 @@ int dsi_pll_set_clock_div(struct dsi_clock_info *cinfo)
994 998
995 dsi.current_cinfo.fint = cinfo->fint; 999 dsi.current_cinfo.fint = cinfo->fint;
996 dsi.current_cinfo.clkin4ddr = cinfo->clkin4ddr; 1000 dsi.current_cinfo.clkin4ddr = cinfo->clkin4ddr;
997 dsi.current_cinfo.dsi1_pll_fclk = cinfo->dsi1_pll_fclk; 1001 dsi.current_cinfo.dsi_pll_hsdiv_dispc_clk =
998 dsi.current_cinfo.dsi2_pll_fclk = cinfo->dsi2_pll_fclk; 1002 cinfo->dsi_pll_hsdiv_dispc_clk;
1003 dsi.current_cinfo.dsi_pll_hsdiv_dsi_clk =
1004 cinfo->dsi_pll_hsdiv_dsi_clk;
999 1005
1000 dsi.current_cinfo.regn = cinfo->regn; 1006 dsi.current_cinfo.regn = cinfo->regn;
1001 dsi.current_cinfo.regm = cinfo->regm; 1007 dsi.current_cinfo.regm = cinfo->regm;
1002 dsi.current_cinfo.regm3 = cinfo->regm3; 1008 dsi.current_cinfo.regm_dispc = cinfo->regm_dispc;
1003 dsi.current_cinfo.regm4 = cinfo->regm4; 1009 dsi.current_cinfo.regm_dsi = cinfo->regm_dsi;
1004 1010
1005 DSSDBG("DSI Fint %ld\n", cinfo->fint); 1011 DSSDBG("DSI Fint %ld\n", cinfo->fint);
1006 1012
1007 DSSDBG("clkin (%s) rate %ld, highfreq %d\n", 1013 DSSDBG("clkin (%s) rate %ld, highfreq %d\n",
1008 cinfo->use_dss2_fck ? "dss2_fck" : "pclkfree", 1014 cinfo->use_sys_clk ? "dss_sys_clk" : "pclkfree",
1009 cinfo->clkin, 1015 cinfo->clkin,
1010 cinfo->highfreq); 1016 cinfo->highfreq);
1011 1017
@@ -1022,14 +1028,14 @@ int dsi_pll_set_clock_div(struct dsi_clock_info *cinfo)
1022 1028
1023 DSSDBG("Clock lane freq %ld Hz\n", cinfo->clkin4ddr / 4); 1029 DSSDBG("Clock lane freq %ld Hz\n", cinfo->clkin4ddr / 4);
1024 1030
1025 DSSDBG("regm3 = %d, %s (%s) = %lu\n", cinfo->regm3, 1031 DSSDBG("regm_dispc = %d, %s (%s) = %lu\n", cinfo->regm_dispc,
1026 dss_get_generic_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC), 1032 dss_get_generic_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC),
1027 dss_feat_get_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC), 1033 dss_feat_get_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC),
1028 cinfo->dsi1_pll_fclk); 1034 cinfo->dsi_pll_hsdiv_dispc_clk);
1029 DSSDBG("regm4 = %d, %s (%s) = %lu\n", cinfo->regm4, 1035 DSSDBG("regm_dsi = %d, %s (%s) = %lu\n", cinfo->regm_dsi,
1030 dss_get_generic_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DSI), 1036 dss_get_generic_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DSI),
1031 dss_feat_get_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DSI), 1037 dss_feat_get_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DSI),
1032 cinfo->dsi2_pll_fclk); 1038 cinfo->dsi_pll_hsdiv_dsi_clk);
1033 1039
1034 REG_FLD_MOD(DSI_PLL_CONTROL, 0, 0, 0); /* DSI_PLL_AUTOMODE = manual */ 1040 REG_FLD_MOD(DSI_PLL_CONTROL, 0, 0, 0); /* DSI_PLL_AUTOMODE = manual */
1035 1041
@@ -1037,9 +1043,9 @@ int dsi_pll_set_clock_div(struct dsi_clock_info *cinfo)
1037 l = FLD_MOD(l, 1, 0, 0); /* DSI_PLL_STOPMODE */ 1043 l = FLD_MOD(l, 1, 0, 0); /* DSI_PLL_STOPMODE */
1038 l = FLD_MOD(l, cinfo->regn - 1, 7, 1); /* DSI_PLL_REGN */ 1044 l = FLD_MOD(l, cinfo->regn - 1, 7, 1); /* DSI_PLL_REGN */
1039 l = FLD_MOD(l, cinfo->regm, 18, 8); /* DSI_PLL_REGM */ 1045 l = FLD_MOD(l, cinfo->regm, 18, 8); /* DSI_PLL_REGM */
1040 l = FLD_MOD(l, cinfo->regm3 > 0 ? cinfo->regm3 - 1 : 0, 1046 l = FLD_MOD(l, cinfo->regm_dispc > 0 ? cinfo->regm_dispc - 1 : 0,
1041 22, 19); /* DSI_CLOCK_DIV */ 1047 22, 19); /* DSI_CLOCK_DIV */
1042 l = FLD_MOD(l, cinfo->regm4 > 0 ? cinfo->regm4 - 1 : 0, 1048 l = FLD_MOD(l, cinfo->regm_dsi > 0 ? cinfo->regm_dsi - 1 : 0,
1043 26, 23); /* DSIPROTO_CLOCK_DIV */ 1049 26, 23); /* DSIPROTO_CLOCK_DIV */
1044 dsi_write_reg(DSI_PLL_CONFIGURATION1, l); 1050 dsi_write_reg(DSI_PLL_CONFIGURATION1, l);
1045 1051
@@ -1057,7 +1063,7 @@ int dsi_pll_set_clock_div(struct dsi_clock_info *cinfo)
1057 1063
1058 l = dsi_read_reg(DSI_PLL_CONFIGURATION2); 1064 l = dsi_read_reg(DSI_PLL_CONFIGURATION2);
1059 l = FLD_MOD(l, f, 4, 1); /* DSI_PLL_FREQSEL */ 1065 l = FLD_MOD(l, f, 4, 1); /* DSI_PLL_FREQSEL */
1060 l = FLD_MOD(l, cinfo->use_dss2_fck ? 0 : 1, 1066 l = FLD_MOD(l, cinfo->use_sys_clk ? 0 : 1,
1061 11, 11); /* DSI_PLL_CLKSEL */ 1067 11, 11); /* DSI_PLL_CLKSEL */
1062 l = FLD_MOD(l, cinfo->highfreq, 1068 l = FLD_MOD(l, cinfo->highfreq,
1063 12, 12); /* DSI_PLL_HIGHFREQ */ 1069 12, 12); /* DSI_PLL_HIGHFREQ */
@@ -1186,26 +1192,26 @@ void dsi_dump_clocks(struct seq_file *s)
1186 1192
1187 seq_printf(s, "dsi pll source = %s\n", 1193 seq_printf(s, "dsi pll source = %s\n",
1188 clksel == 0 ? 1194 clksel == 0 ?
1189 "dss2_alwon_fclk" : "pclkfree"); 1195 "dss_sys_clk" : "pclkfree");
1190 1196
1191 seq_printf(s, "Fint\t\t%-16luregn %u\n", cinfo->fint, cinfo->regn); 1197 seq_printf(s, "Fint\t\t%-16luregn %u\n", cinfo->fint, cinfo->regn);
1192 1198
1193 seq_printf(s, "CLKIN4DDR\t%-16luregm %u\n", 1199 seq_printf(s, "CLKIN4DDR\t%-16luregm %u\n",
1194 cinfo->clkin4ddr, cinfo->regm); 1200 cinfo->clkin4ddr, cinfo->regm);
1195 1201
1196 seq_printf(s, "%s (%s)\t%-16luregm3 %u\t(%s)\n", 1202 seq_printf(s, "%s (%s)\t%-16luregm_dispc %u\t(%s)\n",
1197 dss_get_generic_clk_source_name(dispc_clk_src), 1203 dss_get_generic_clk_source_name(dispc_clk_src),
1198 dss_feat_get_clk_source_name(dispc_clk_src), 1204 dss_feat_get_clk_source_name(dispc_clk_src),
1199 cinfo->dsi1_pll_fclk, 1205 cinfo->dsi_pll_hsdiv_dispc_clk,
1200 cinfo->regm3, 1206 cinfo->regm_dispc,
1201 dispc_clk_src == DSS_CLK_SRC_FCK ? 1207 dispc_clk_src == DSS_CLK_SRC_FCK ?
1202 "off" : "on"); 1208 "off" : "on");
1203 1209
1204 seq_printf(s, "%s (%s)\t%-16luregm4 %u\t(%s)\n", 1210 seq_printf(s, "%s (%s)\t%-16luregm_dsi %u\t(%s)\n",
1205 dss_get_generic_clk_source_name(dsi_clk_src), 1211 dss_get_generic_clk_source_name(dsi_clk_src),
1206 dss_feat_get_clk_source_name(dsi_clk_src), 1212 dss_feat_get_clk_source_name(dsi_clk_src),
1207 cinfo->dsi2_pll_fclk, 1213 cinfo->dsi_pll_hsdiv_dsi_clk,
1208 cinfo->regm4, 1214 cinfo->regm_dsi,
1209 dsi_clk_src == DSS_CLK_SRC_FCK ? 1215 dsi_clk_src == DSS_CLK_SRC_FCK ?
1210 "off" : "on"); 1216 "off" : "on");
1211 1217
@@ -2989,12 +2995,12 @@ static int dsi_configure_dsi_clocks(struct omap_dss_device *dssdev)
2989 struct dsi_clock_info cinfo; 2995 struct dsi_clock_info cinfo;
2990 int r; 2996 int r;
2991 2997
2992 /* we always use DSS2_FCK as input clock */ 2998 /* we always use DSS_CLK_SYSCK as input clock */
2993 cinfo.use_dss2_fck = true; 2999 cinfo.use_sys_clk = true;
2994 cinfo.regn = dssdev->phy.dsi.div.regn; 3000 cinfo.regn = dssdev->phy.dsi.div.regn;
2995 cinfo.regm = dssdev->phy.dsi.div.regm; 3001 cinfo.regm = dssdev->phy.dsi.div.regm;
2996 cinfo.regm3 = dssdev->phy.dsi.div.regm3; 3002 cinfo.regm_dispc = dssdev->phy.dsi.div.regm_dispc;
2997 cinfo.regm4 = dssdev->phy.dsi.div.regm4; 3003 cinfo.regm_dsi = dssdev->phy.dsi.div.regm_dsi;
2998 r = dsi_calc_clock_rates(dssdev, &cinfo); 3004 r = dsi_calc_clock_rates(dssdev, &cinfo);
2999 if (r) { 3005 if (r) {
3000 DSSERR("Failed to calc dsi clocks\n"); 3006 DSSERR("Failed to calc dsi clocks\n");
@@ -3016,7 +3022,7 @@ static int dsi_configure_dispc_clocks(struct omap_dss_device *dssdev)
3016 int r; 3022 int r;
3017 unsigned long long fck; 3023 unsigned long long fck;
3018 3024
3019 fck = dsi_get_dsi1_pll_rate(); 3025 fck = dsi_get_pll_hsdiv_dispc_rate();
3020 3026
3021 dispc_cinfo.lck_div = dssdev->phy.dsi.div.lck_div; 3027 dispc_cinfo.lck_div = dssdev->phy.dsi.div.lck_div;
3022 dispc_cinfo.pck_div = dssdev->phy.dsi.div.pck_div; 3028 dispc_cinfo.pck_div = dssdev->phy.dsi.div.pck_div;
@@ -3244,7 +3250,7 @@ int dsi_init_display(struct omap_dss_device *dssdev)
3244 return 0; 3250 return 0;
3245} 3251}
3246 3252
3247void dsi_wait_dsi1_pll_active(void) 3253void dsi_wait_pll_hsdiv_dispc_active(void)
3248{ 3254{
3249 if (wait_for_bit_change(DSI_PLL_STATUS, 7, 1) != 1) 3255 if (wait_for_bit_change(DSI_PLL_STATUS, 7, 1) != 1)
3250 DSSERR("%s (%s) not active\n", 3256 DSSERR("%s (%s) not active\n",
@@ -3252,7 +3258,7 @@ void dsi_wait_dsi1_pll_active(void)
3252 dss_feat_get_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC)); 3258 dss_feat_get_clk_source_name(DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC));
3253} 3259}
3254 3260
3255void dsi_wait_dsi2_pll_active(void) 3261void dsi_wait_pll_hsdiv_dsi_active(void)
3256{ 3262{
3257 if (wait_for_bit_change(DSI_PLL_STATUS, 8, 1) != 1) 3263 if (wait_for_bit_change(DSI_PLL_STATUS, 8, 1) != 1)
3258 DSSERR("%s (%s) not active\n", 3264 DSSERR("%s (%s) not active\n",
diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index d049598bb412..5c6805b3362d 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -299,7 +299,7 @@ void dss_select_dispc_clk_source(enum dss_clk_source clk_src)
299 b = clk_src == DSS_CLK_SRC_FCK ? 0 : 1; 299 b = clk_src == DSS_CLK_SRC_FCK ? 0 : 1;
300 300
301 if (clk_src == DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC) 301 if (clk_src == DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC)
302 dsi_wait_dsi1_pll_active(); 302 dsi_wait_pll_hsdiv_dispc_active();
303 303
304 REG_FLD_MOD(DSS_CONTROL, b, 0, 0); /* DISPC_CLK_SWITCH */ 304 REG_FLD_MOD(DSS_CONTROL, b, 0, 0); /* DISPC_CLK_SWITCH */
305 305
@@ -316,7 +316,7 @@ void dss_select_dsi_clk_source(enum dss_clk_source clk_src)
316 b = clk_src == DSS_CLK_SRC_FCK ? 0 : 1; 316 b = clk_src == DSS_CLK_SRC_FCK ? 0 : 1;
317 317
318 if (clk_src == DSS_CLK_SRC_DSI_PLL_HSDIV_DSI) 318 if (clk_src == DSS_CLK_SRC_DSI_PLL_HSDIV_DSI)
319 dsi_wait_dsi2_pll_active(); 319 dsi_wait_pll_hsdiv_dsi_active();
320 320
321 REG_FLD_MOD(DSS_CONTROL, b, 1, 1); /* DSI_CLK_SWITCH */ 321 REG_FLD_MOD(DSS_CONTROL, b, 1, 1); /* DSI_CLK_SWITCH */
322 322
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index 42ca70f2bfd5..20590fb53c91 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -152,21 +152,21 @@ struct dsi_clock_info {
152 unsigned long fint; 152 unsigned long fint;
153 unsigned long clkin4ddr; 153 unsigned long clkin4ddr;
154 unsigned long clkin; 154 unsigned long clkin;
155 unsigned long dsi1_pll_fclk; 155 unsigned long dsi_pll_hsdiv_dispc_clk; /* DSI1_PLL_CLK */
156 unsigned long dsi2_pll_fclk; 156 unsigned long dsi_pll_hsdiv_dsi_clk; /* DSI2_PLL_CLK */
157 157
158 unsigned long lp_clk; 158 unsigned long lp_clk;
159 159
160 /* dividers */ 160 /* dividers */
161 u16 regn; 161 u16 regn;
162 u16 regm; 162 u16 regm;
163 u16 regm3; 163 u16 regm_dispc; /* REGM3 */
164 u16 regm4; 164 u16 regm_dsi; /* REGM4 */
165 165
166 u16 lp_clk_div; 166 u16 lp_clk_div;
167 167
168 u8 highfreq; 168 u8 highfreq;
169 bool use_dss2_fck; 169 bool use_sys_clk;
170}; 170};
171 171
172struct seq_file; 172struct seq_file;
@@ -278,7 +278,7 @@ void dsi_restore_context(void);
278 278
279int dsi_init_display(struct omap_dss_device *display); 279int dsi_init_display(struct omap_dss_device *display);
280void dsi_irq_handler(void); 280void dsi_irq_handler(void);
281unsigned long dsi_get_dsi1_pll_rate(void); 281unsigned long dsi_get_pll_hsdiv_dispc_rate(void);
282int dsi_pll_set_clock_div(struct dsi_clock_info *cinfo); 282int dsi_pll_set_clock_div(struct dsi_clock_info *cinfo);
283int dsi_pll_calc_clock_div_pck(bool is_tft, unsigned long req_pck, 283int dsi_pll_calc_clock_div_pck(bool is_tft, unsigned long req_pck,
284 struct dsi_clock_info *cinfo, 284 struct dsi_clock_info *cinfo,
@@ -289,8 +289,8 @@ void dsi_pll_uninit(void);
289void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, 289void dsi_get_overlay_fifo_thresholds(enum omap_plane plane,
290 u32 fifo_size, enum omap_burst_size *burst_size, 290 u32 fifo_size, enum omap_burst_size *burst_size,
291 u32 *fifo_low, u32 *fifo_high); 291 u32 *fifo_low, u32 *fifo_high);
292void dsi_wait_dsi1_pll_active(void); 292void dsi_wait_pll_hsdiv_dispc_active(void);
293void dsi_wait_dsi2_pll_active(void); 293void dsi_wait_pll_hsdiv_dsi_active(void);
294#else 294#else
295static inline int dsi_init_platform_driver(void) 295static inline int dsi_init_platform_driver(void)
296{ 296{
@@ -299,10 +299,10 @@ static inline int dsi_init_platform_driver(void)
299static inline void dsi_uninit_platform_driver(void) 299static inline void dsi_uninit_platform_driver(void)
300{ 300{
301} 301}
302static inline void dsi_wait_dsi1_pll_active(void) 302static inline void dsi_wait_pll_hsdiv_dispc_active(void)
303{ 303{
304} 304}
305static inline void dsi_wait_dsi2_pll_active(void) 305static inline void dsi_wait_pll_hsdiv_dsi_active(void)
306{ 306{
307} 307}
308#endif 308#endif