Hi,
I,m using the OPI 4 LTS in a project with a touchscreen connect to HDMI port.
The screen detection failed most of the time, checking for the reason I reviewed the schematics of the i2c7 bus and
found a design flaw on the level shifter 5V side! The pull-ups on SDA / SCL are 2k ohm, far to strong. (picture attached)
I replaced them with a 6.8k resistor fix the problem and the EDID read out first time not show any Checksum errors.
Additionally I changed the DTS defines for i2c7 pinctrl using a weak pull-up show below.
root@joyai6:/home/orangepi# get-edid -b 7 | parse-edid
7
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Only trying 7 as per your request.
256-byte EDID successfully retrieved from i2c bus 7
Looks like i2c was successful. Have a good day.
Checksum Correct
Section "Monitor"
Identifier "MPI7002"
ModelName "MPI7002"
VendorName "MPI"
# Monitor Manufactured week 1 of 2007
# EDID version 1.3
# Digital Display
DisplaySize 180 130
Gamma 1.00
Option "DPMS" "false"
#Not giving standard mode: 800x450, 60Hz
#Not giving standard mode: 1024x576, 60Hz
#Not giving standard mode: 1152x648, 60Hz
#Not giving standard mode: 1280x720, 60Hz
#Not giving standard mode: 1360x765, 60Hz
#Not giving standard mode: 1440x810, 60Hz
#Not giving standard mode: 1600x900, 60Hz
#Not giving standard mode: 1920x1080, 60Hz
#Extension block found. Parsing...
Modeline "Mode 1"
Modeline "Mode 0" -hsync +vsync
Option "PreferredMode" "Mode 1"
EndSection
i2c7 {
i2c7_xfer_up: i2c7-xfer-up {
rockchip,pins =
<2 RK_PB0 2 &pcfg_pull_up_2ma>,
<2 RK_PA7 2 &pcfg_pull_up_2ma>;
};
};
/* hdmi i2c */
&i2c7 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c7_xfer_up>;
clock-frequency = <50000>;
};