Tester et valider un écran MSI-DSI (pilote LCD EK79007AD3+EK73217BCGA) dans Linux est possible en utilisant un modèle de superposition d’arborescence de périphériques.
Un pilote générique “simple-panel-dsi” disponible dans le noyau du système peut être utilisé sous Linux pour faire fonctionner la plupart des écrans MIPI. Grâce à la possibilité d’attribuer une séquence d’initialisation dans le champ “panel-init-sequence”, ce pilote peut être utilisé pour faire fonctionner la plupart des écrans sans qu’il soit nécessaire de préparer un pilote dédié. Une telle solution permet de reconfigurer rapidement l’affichage, sans avoir à compiler l’ensemble du noyau du système à chaque fois – la modification des paramètres de synchronisation ou du code d’initialisation est possible en recompilant commodément les fichiers DeviceTree. Voici un extrait de la description de DeviceTree concernant l’ajout de la prise en charge de l’affichage :
&dsi0 {
statut = “ok” ;
mipi_panel : panneau mipi {
compatible = “simple-panel-dsi” ;
reg = <0>;
enable-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;
bpc = <8>;
format de bus = <0x100a>;
largeur-mm = <154>;
hauteur-mm = <85>;
prepare-delay-ms = <10>;
reset-delay-ms = <20>;
init-delay-ms = <120>;
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM)>;
dsi,format = ;
dsi,lanes = <2>;
panel-init-sequence = [
15 00 02 87 5a
15 00 02 B2 10
15 00 02 80 4B
15 00 02 81 FF
15 00 02 82 1A
15 00 02 83 88
15 00 02 84 8F
15 00 02 85 35
15 00 02 86 B0
05 00 01 21
] ;
heures d’affichage {
native-mode = <&timing2>;
timing2 : timing2 {
fréquence d’horloge = <33000000>; //dclk
hactive = <1024>; //hactive
vactive = <600>; //vactive
hfront-porch = <60>; //hfp
hback-porch = <60>; //hbp
hsync-len = <10>; //hsa
vfront-porch = <5>; //vfp
vsync-len = <2>; //vsa
vback-porch = <10>; //vbp
hsync-active = <0>; //contrôle de la synchronisation active
vsync-active = <0>; //contrôle de la synchronisation active
de-active = <1>; //désactivation du contrôle actif
pixelclk-active = <0>; //dclk active control
} ;
} ;
} ;
} ;
La description ci-dessus doit être adaptée à la description de DeviceTree utilisée dans votre système, ainsi qu’aux types d’affichage (paramètres de synchronisation et séquence d’initialisation – si nécessaire). En outre, veillez à activer le pilote dans le noyau du système.