From: Dongsoo Kim Date: Wed, 14 Oct 2009 00:26:43 +0000 (+0900) Subject: SiI9234 MHL initialize setting revised X-Git-Tag: 20091016~11 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=85f5d7f89c498e44ca7ea67b40e1d0cde37f22a4;p=kernel%2Fu-boot.git SiI9234 MHL initialize setting revised Signed-off-by: Dongsoo Kim --- diff --git a/board/samsung/universal/universal.c b/board/samsung/universal/universal.c index 07c6ac6..7fcf0b3 100644 --- a/board/samsung/universal/universal.c +++ b/board/samsung/universal/universal.c @@ -529,6 +529,9 @@ static void check_mhl(void) reg |= (1 << 2); /* 2 = 2 * 1 */ writel(reg, pin + S5PC1XX_GPIO_DAT_OFFSET); + /* 10ms required after reset */ + udelay(10000); + pin = S5PC110_GPIO_BASE(S5PC110_GPIO_MP0_4_OFFSET); /* MHL_RST : MP0_4[7] output mode */ @@ -557,19 +560,6 @@ static void check_mhl(void) return; } - /* added */ - val[0] = 0x01; - i2c_write((0x72 >> 1), 0x05, 1, val, 1); - - val[0] = 0x3f; - i2c_write((0x7A >> 1), 0x3d, 1, val, 1); - - val[0] = 0x01; - i2c_write((0x92 >> 1), 0x11, 1, val, 1); - - val[0] = 0x15; - i2c_write((0x92 >> 1), 0x12, 1, val, 1); - /* * System Control #1 * set to Normal operation @@ -586,104 +576,14 @@ static void check_mhl(void) val[0] = 0xd0; i2c_write((0x72 >> 1), 0xa0, 1, val, 1); - /* added */ - val[0] = 0x03; - i2c_write((0x92 >> 1), 0x17, 1, val, 1); - - val[0] = 0x6A; - i2c_write((0x92 >> 1), 0x23, 1, val, 1); - val[0] = 0xAA; - i2c_write((0x92 >> 1), 0x24, 1, val, 1); - val[0] = 0xCA; - i2c_write((0x92 >> 1), 0x25, 1, val, 1); - val[0] = 0xEA; - i2c_write((0x92 >> 1), 0x26, 1, val, 1); - - val[0] = 0xA0; - i2c_write((0x92 >> 1), 0x4C, 1, val, 1); - val[0] = 0x00; - i2c_write((0x92 >> 1), 0x4D, 1, val, 1); - - val[0] = 0x14; - i2c_write((0x72 >> 1), 0x80, 1, val, 1); - val[0] = 0x44; - i2c_write((0x92 >> 1), 0x45, 1, val, 1); - val[0] = 0xFC; - i2c_write((0x72 >> 1), 0xA1, 1, val, 1); - val[0] = 0xFA; - i2c_write((0x72 >> 1), 0xA3, 1, val, 1); - - val[0] = 0x17; - i2c_write((0x72 >> 1), 0x90, 1, val, 1); - val[0] = 0x66; - i2c_write((0x72 >> 1), 0x94, 1, val, 1); - val[0] = 0x1C; - i2c_write((0x72 >> 1), 0xA5, 1, val, 1); - val[0] = 0x21; - i2c_write((0x72 >> 1), 0x95, 1, val, 1); - val[0] = 0x22; - i2c_write((0x72 >> 1), 0x96, 1, val, 1); - val[0] = 0x86; - i2c_write((0x72 >> 1), 0x92, 1, val, 1); - val[0] = 0xf6; - i2c_write((0xC8 >> 1), 0x07, 1, val, 1); - val[0] = 0x02; - i2c_write((0xC8 >> 1), 0x40, 1, val, 1); - - val[0] = 0x00; - i2c_write((0x72 >> 1), 0xC7, 1, val, 1); - - /* 100ms delay */ - udelay(100000); - - val[0] = 0x00; - i2c_write((0x72 >> 1), 0x1A, 1, val, 1); - val[0] = 0x00; - i2c_write((0x72 >> 1), 0x1E, 1, val, 1); - val[0] = 0x81; - i2c_write((0x72 >> 1), 0xBC, 1, val, 1); - - /* 100ms delay */ - udelay(100000); - - val[0] = 0x1C; - i2c_write((0x72 >> 1), 0x0D, 1, val, 1); - val[0] = 0x04; - i2c_write((0x72 >> 1), 0x05, 1, val, 1); /* Auto reset on */ - val[0] = 0xFF; - i2c_write((0x72 >> 1), 0x74, 1, val, 1); - - i2c_read((0x72 >>1), 0x95, 1, val, 1); - val[0] &= ~(1 << 4); - i2c_write((0x72 >> 1), 0x95, 1, val, 1); - - val[0] = 0x01; - i2c_write((0x72 >> 1), 0xBC, 1, val, 1); - val[0] = 0xA1; - i2c_write((0x72 >> 1), 0xBD, 1, val, 1); - val[0] = 0x40; - i2c_write((0x72 >> 1), 0xBE, 1, val, 1); - val[0] = 0x01; - i2c_write((0xC8 >> 1), 0x21, 1, val, 1); - - val[0] = 0x01; - i2c_write((0x72 >> 1), 0xBC, 1, val, 1); - val[0] = 0xA1; - i2c_write((0x72 >> 1), 0xBD, 1, val, 1); - val[0] = 0x7C; - i2c_write((0x72 >> 1), 0xBE, 1, val, 1); - - val[0] = 0x01; - i2c_write((0x72 >> 1), 0xBC, 1, val, 1); - val[0] = 0x79; - i2c_write((0x72 >> 1), 0xBD, 1, val, 1); - - i2c_read((0x72 >>1), 0x95, 1, val, 1); - val[0] &= ~(1 << 4); - i2c_write((0x72 >> 1), 0x95, 1, val, 1); - - val[0] = 0x81; - i2c_write((0xC8 >> 1), 0x21, 1, val, 1); + /* check back */ + udelay(10000); + i2c_read((0x72 >> 1), 0x08, 1, val, 1); + printf("(0x08, [0x%x] expecting 0x35\n", val[0]); + + i2c_read((0x72 >> 1), 0xa0, 1, val, 1); + printf("(0xa0, [0x%x] expecting 0xd0\n", val[0]); + } void check_micro_usb(void)