aboutsummaryrefslogtreecommitdiff
path: root/drivers/mfd
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/glamo/glamo-core.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c
index b4595a8202d..e6253deeebd 100644
--- a/drivers/mfd/glamo/glamo-core.c
+++ b/drivers/mfd/glamo/glamo-core.c
@@ -58,6 +58,25 @@
#define GLAMO_MEM_REFRESH_COUNT 0x100
+
+/*
+ * Glamo internal settings
+ *
+ * We run the memory interface from the faster PLLB on 2.6.28 kernels and
+ * above. Couple of GTA02 users report trouble with memory bus when they
+ * upgraded from 2.6.24. So this parameter allows reversion to 2.6.24
+ * scheme if their Glamo chip needs it.
+ *
+ * you can override the faster default on kernel commandline using
+ *
+ * glamo3362.slow_memory=1
+ *
+ * for example
+ */
+
+static int slow_memory = 0;
+module_param(slow_memory, int, 0644);
+
struct reg_range {
int start;
int count;
@@ -786,6 +805,19 @@ int glamo_run_script(struct glamo_core *glamo, struct glamo_script *script,
while ((__reg_read(glamo, GLAMO_REG_PLL_GEN5) & 3) != 3)
;
break;
+
+ /*
+ * couple of people reported artefacts with 2.6.28 changes, this
+ * allows reversion to 2.6.24 settings
+ */
+
+ case 0x200:
+ if (slow_memory)
+ __reg_write(glamo, script[i].reg, 0xef0);
+ else
+ __reg_write(glamo, script[i].reg, 0xe03);
+ break;
+
default:
__reg_write(glamo, script[i].reg, script[i].val);
break;
@@ -848,7 +880,7 @@ static struct glamo_script glamo_init_script[] = {
* b7..b4 = 0 = no wait states on read or write
* b0 = 1 select PLL2 for Host interface, b1 = enable it
*/
- { 0x200, 0x0e03 },
+ { 0x200, 0x0e03 /* this is replaced by script parser */ },
{ 0x202, 0x07ff },
{ 0x212, 0x0000 },
{ 0x214, 0x4000 },