summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJitao Shi <jitao.shi@mediatek.com>2016-08-19 16:00:01 +0800
committerMartin Roth <martinroth@google.com>2016-08-31 19:59:29 +0200
commit70c496b24ee2ed09969575afc291dadb19eea189 (patch)
treef2a284eaa9aac146c179a36c882ce00bbeb8b641
parent54aa89c7b4ea793f49f6cfe73e13b4ce71dd138f (diff)
parade/ps8640: disable mipi mcs
Disable ps8640 mipi mcs function to avoid recognizing the normal mipi dsi signal as msc cmd. BUG=chrome-os-partner:56346 BRANCH=none TEST=build pass elm and show ui Change-Id: I91c690fb1ff3bd9b5c1f227205829c914347cd30 Signed-off-by: Martin Roth <martinroth@chromium.org> Original-Commit-Id: 4fd441b46300fea9f238b27c9c1cda4e9e53c80d Original-Change-Id: I85b9f1e6677e4bf8ab1e30c2e69445079fff2d18 Original-Signed-off-by: Jitao Shi <jitao.shi@mediatek.com> Original-Reviewed-on: https://chromium-review.googlesource.com/373219 Original-Commit-Ready: Daniel Kurtz <djkurtz@chromium.org> Original-Tested-by: jitao shi <jitao.shi@mediatek.com> Original-Reviewed-by: Julius Werner <jwerner@chromium.org> Original-Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-on: https://review.coreboot.org/16365 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/drivers/parade/ps8640/ps8640.c10
-rw-r--r--src/drivers/parade/ps8640/ps8640.h3
2 files changed, 13 insertions, 0 deletions
diff --git a/src/drivers/parade/ps8640/ps8640.c b/src/drivers/parade/ps8640/ps8640.c
index c26c6effb7..95965601ec 100644
--- a/src/drivers/parade/ps8640/ps8640.c
+++ b/src/drivers/parade/ps8640/ps8640.c
@@ -76,6 +76,16 @@ int ps8640_init(uint8_t bus, uint8_t chip)
}
mdelay(50);
+
+ /*
+ * The Manufacturer Command Set (MCS) is a device dependent interface
+ * intended for factory programming of the display module default
+ * parameters. Once the display module is configured, the MCS shall be
+ * disabled by the manufacturer. Once disabled, all MCS commands are
+ * ignored by the display interface.
+ */
+ i2c_write_field(bus, chip + 2, PAGE2_MCS_EN, 0x0, MCS_EN_MASK,
+ MCS_EN_SHIFT);
i2c_writeb(bus, chip + 3, PAGE3_SET_ADD, VDO_CTL_ADD);
i2c_writeb(bus, chip + 3, PAGE3_SET_VAL, VDO_DIS);
i2c_writeb(bus, chip + 3, PAGE3_SET_ADD, VDO_CTL_ADD);
diff --git a/src/drivers/parade/ps8640/ps8640.h b/src/drivers/parade/ps8640/ps8640.h
index f7b40061f0..4540122420 100644
--- a/src/drivers/parade/ps8640/ps8640.h
+++ b/src/drivers/parade/ps8640/ps8640.h
@@ -26,6 +26,9 @@ enum {
PS_GPIO9 = BIT(1),
I2C_BYPASS_EN = BIT(7),
+ PAGE2_MCS_EN = 0xf3,
+ MCS_EN_SHIFT = 0,
+ MCS_EN_MASK = 0x1,
PAGE3_SET_ADD = 0xfe,
PAGE3_SET_VAL = 0xff,
VDO_CTL_ADD = 0x13,