Difference between revisions of "AIMLinux/BSP/Linux/MT8395/add edid"
From ESS-WIKI
(Created page with "{{DISPLAYTITLE:How to add EDID for LVDS panel}} == Prerequisites == * PTN3460 Programming Guide * EDID config (128 bytes) * i2c-tools installed <syntaxhighlight lang="bash">...") |
(→Step-by-step procedures) |
||
Line 12: | Line 12: | ||
== Step-by-step procedures == | == Step-by-step procedures == | ||
(use EDID 6 and panel G070VW01V0 as example) | (use EDID 6 and panel G070VW01V0 as example) | ||
+ | |||
+ | === On U-Boot === | ||
+ | Press any key to stop auto boot, and set matched device tree overlay (dtbo) | ||
+ | * Multi-display (HDMI + LVDS) | ||
+ | : The LVDS is always major display that has nothing to do with the specified order. | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | setenv DISPLAY hdmi.dtbo lvds6.dtbo | ||
+ | saveenv | ||
+ | reset | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * LVDS only | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | setenv DISPLAY lvds6.dtbo | ||
+ | saveenv | ||
+ | reset | ||
+ | </syntaxhighlight> | ||
+ | |||
=== On Ubuntu === | === On Ubuntu === | ||
create the setup script from EDID config | create the setup script from EDID config | ||
Line 49: | Line 67: | ||
sudo $SCRIPT | sudo $SCRIPT | ||
sudo reboot | sudo reboot | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 10:03, 3 January 2024
Contents
Prerequisites
- PTN3460 Programming Guide
- EDID config (128 bytes)
- i2c-tools installed
sudo apt update
sudo apt install i2c-tools
Step-by-step procedures
(use EDID 6 and panel G070VW01V0 as example)
On U-Boot
Press any key to stop auto boot, and set matched device tree overlay (dtbo)
- Multi-display (HDMI + LVDS)
- The LVDS is always major display that has nothing to do with the specified order.
setenv DISPLAY hdmi.dtbo lvds6.dtbo
saveenv
reset
- LVDS only
setenv DISPLAY lvds6.dtbo
saveenv
reset
On Ubuntu
create the setup script from EDID config
EDIDNEW=6
EDIDBIN=g070vw01v0.bin
SCRIPT=~/set_edid_${EDIDNEW}.sh
REG81=$(printf "0x%02x" 0) # Please refer to the PTN3460 Programming Guide to set correct value
REG84=$(printf "0x%02x" $((2*EDIDNEW + 1)))
REG85=$(printf "0x%02x" $EDIDNEW)
echo -e "REG81:$REG81\nREG84:$REG84\nREG85:$REG85\n"
cat << EOT > $SCRIPT
#!/bin/bash
i2cset -f -y 2 0x20 0x85 $REG85 b
$(
xxd -c 16 -ps $EDIDBIN |
sed "s/../0x& /g; s/ *$//" |
for ADDR in `seq 0x00 0x10 0x70`; do
read
echo i2cset -f -y 2 0x20 `printf "0x%02x" $ADDR` $REPLY i
done
)
i2cset -f -y 2 0x20 0x81 $REG81 b
i2cset -f -y 2 0x20 0x84 $REG84 b
i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
EOT
chmod +x $SCRIPT
run the script and reboot
sudo $SCRIPT
sudo reboot
Appendix
How to fetch and store EDID config
(use the pre-set EDID 2, panel G070VW01V0, as example)
EDID=2
EDIDBIN=g070vw01v0.bin
sudo i2cset -f -y 2 0x20 0x85 $EDID b
for DA in $(seq 0 0x10 0x70); do
sudo i2cget -f -y 2 0x20 $DA i 0x10
done | xxd -r -p > $EDIDBIN