主题中讨论的其他器件:ALP
我们使用串行器 DS90UB949 EVM 和解串器、EEPROM 通过0x50 (7位)地址连接到该解串器。
问题:我们希望将存储在 EEPROM 中的 EDID 加载到串行器的 SRAM 中、但我们能够在 SRAM 中看到内部预编程的 EDID。 这表明存储在 EEPROM 中的 EDID 未加载到 SRAM。
模式选择配置设置:
对于 外部远程 EDID 配置、我们将 MODE_SEL0保持为1、将 MODE_SEL1保持为4。
下面是串行器(0x0c)和解串器(0x2C)的寄存器转储、
===================================================================================================
msm8996:/data #./i2cdump -f -y 8 0x0c
/i2cdump -f -y 8 0x0c
未指定大小(使用字节数据访问)
0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:18 00 00 da 80 00 58 50 00 04 00 07 25 30 03 ?????????????????????????
10:00 00 00 00 A8 00 00 fe 1e 7f 01 00 00 01 00 0100... ??????? ...?
20:0b 00 25 00 00 00 00 01 20 20 a0 00 A5 5a ?%… ? ????Z
30:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40:14 55 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?u..
50:97 a0 1e 00 28 0c 00 00 00 dd a0 02 06 44 48 ???(????????DH
60:22 02 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 “…………………………………………
70:78 28 a0 00 00 00 78 28 a0 00 00 00 00 00 00 00 x (?... x (?...
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C0:00 00 A8 00 28 00 60 c0 00 00 00 00 00 00 00 00 00 ff 00 ………(`………………
D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E0:00 00 A8 00 28 38 00 00 00 00 00 00 00 00 00 00 00 00 ...(8个)
F0:5F 55 42 39 34 39 00 00 00 00 00 00 00 00 00 _UB949 .........
msm8996:/data #
msm8996:/data #
msm8996:/data #./i2cdump -f -y 8 0x2C
/i2cdump -f -y 8 0x2C
未指定大小(使用字节数据访问)
0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:58 04 00 f0 fe 1e 00 18 00 00 00 00 00 00 00 00 X ??????
10:00 00 00 00 00 00 00 00 01 00 0b 13 50 05 ????P?
20:00 00 40 28 08 00 83 84 01 00 00 00 00 00 00 00 00 00.. @(?????……
30:00 00 90 25 01 00 9e 00 00 00 01 20 e0 23 00 ..?%?...? ?#。
40:43 03 00 60 88 00 0f 82 00 08 00 63 00 C????`??????????????
50:03 10 00 01 80 00 00 00 00 7f 20 00 00 00 00 00 00 00 ???????? …
60:00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ……?…
70:00 00 00 07 08 00 00 00 00 00 00 5d 02 00 00 00 00 ...??? ]?...
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0:00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00... ?..........
B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C0:00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 ?。
D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
F0:5F 55 42 39 34 38 00 00 00 00 00 00 00 00 00 00 _UB948 .........
msm8996:/data #
===================================================================================================
下面是从数据表中获取的串行器的0x4f 寄存器设置、
从这里我们可以看到0x4f[0]是只读的、所有其他都是 RW 位、但我们可以写入0x4f[0][3][4]位、无法写入0x4f[1][2]位。
我们还进行了一些其他实验、以确保支持的其他 EDID 配置正常工作。 以下是实验结果、
费用1:将 EEPROM 连接到 DDC I2C:
外部本地 EDID (EEPROM): 我们能够以十六进制格式从“/sys/devices/virtual/graphics/fb1/edid_raw_data”节点读取 EEPROM 中存储的 EDID。
2. 内部 EDID (SRAM): 我们能够以 ASCII 格式从“/sys/devices/virtual/graphics/fb1/edid_raw_data”和“/sys/devices/virtual/graphics/fb1/edid”节点读取 EEPROM 中存储的 EDID。
在这两种情况下、我们都能够读取 EDID 的某些部分、而不是我们在 EEPROM 上写入的完整256字节。
exp2:将 EEPROM 连接到 I2C (BLSP_8):
外部本地 EDID (EEPROM): 我们无法从“EDID”或“EDID_RAW_DATA”节点读取任何 EDID。
2. 内部 EDID (SRAM): 在本例中、我们能够读取内部预编程 EDID。
您能不能调试这个问题?










