Come impostare il display MIPI da 7″ Riverdi in Linux?

È possibile testare e convalidare un display MSI-DSI (driver LCD EK79007AD3+EK73217BCGA) in Linux utilizzando un modello di sovrapposizione dell’albero dei dispositivi.

Per far funzionare la maggior parte dei display MIPI è possibile utilizzare in Linux un driver generico “simple-panel-dsi” disponibile nel kernel di sistema che, grazie alla possibilità di assegnare una sequenza di inizializzazione nel campo “panel-init-sequence”, può essere utilizzato per far funzionare la maggior parte dei display senza la necessità di preparare un driver dedicato. Questa soluzione consente di riconfigurare rapidamente il display, senza dover compilare ogni volta l’intero kernel del sistema: la modifica dei parametri di temporizzazione o del codice di inizializzazione è possibile ricompilando comodamente i file DeviceTree. Di seguito viene riportato un estratto della descrizione di DeviceTree relativa all’aggiunta del supporto per i display:

&dsi0 {

status = “ok”;

mipi_panel: mipi-panel {

compatibile = “simple-panel-dsi”;

reg = <0>;

enable-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;

reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;

bpc = <8>;

bus-format = <0x100a>;

width-mm = <154>;

altezza-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, formato = ;

dsi,corsie = <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

];

visualizza-tempi {

native-mode = <&timing2>;

timing2: timing2 {

frequenza di clock = <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>; /controllo dell’hync attivo

vsync-active = <0>; //controllo divsync attivo

de-active = <1>; //den controllo attivo

pixelclk-active = <0>; // controllo attivo del dclk

};

};

};

};

La descrizione di cui sopra deve essere adattata alla descrizione del DeviceTree utilizzata nel sistema, nonché ai tipi di visualizzazione (parametri di temporizzazione e sequenza di inizializzazione, se necessario). Inoltre, assicurarsi di abilitare il driver nel kernel di sistema.

Go to Top