Skip to content

Commit 8566076

Browse files
leonardocavagnisfacchinm
authored andcommitted
refactoring dsi module
1 parent ff0bd6f commit 8566076

File tree

4 files changed

+150
-206
lines changed

4 files changed

+150
-206
lines changed

libraries/H7_Video/src/H7_Video.cpp

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -37,50 +37,50 @@ int H7_Video::begin(bool landscape) {
3737

3838
#if defined(ARDUINO_PORTENTA_H7_M7)
3939
if (_shield == NONE_SHIELD) {
40-
struct edid recognized_edid;
41-
int err_code = 0;
40+
struct edid recognized_edid;
41+
int err_code = 0;
4242

43-
//Initialization of ANX7625
44-
err_code = anx7625_init(0);
45-
if(err_code < 0) {
46-
return err_code;
47-
}
43+
//Initialization of ANX7625
44+
err_code = anx7625_init(0);
45+
if(err_code < 0) {
46+
return err_code;
47+
}
4848

49-
//Checking HDMI plug event
50-
anx7625_wait_hpd_event(0);
49+
//Checking HDMI plug event
50+
anx7625_wait_hpd_event(0);
5151

52-
//Read EDID
53-
anx7625_dp_get_edid(0, &recognized_edid);
52+
//Read EDID
53+
anx7625_dp_get_edid(0, &recognized_edid);
5454

55-
//DSI Configuration
56-
anx7625_dp_start(0, &recognized_edid, EDID_MODE_720x480_60Hz);
55+
//DSI Configuration
56+
anx7625_dp_start(0, &recognized_edid, EDID_MODE_720x480_60Hz);
5757

58-
//Configure SDRAM
59-
SDRAM.begin(getFramebufferEnd());
58+
//Configure SDRAM
59+
SDRAM.begin(dsi_getFramebufferEnd());
6060
} else if (_shield == GIGA_DISPLAY_SHIELD) {
61-
#define EDID_MODE_SELECTED EDID_MODE_480x800_60Hz
62-
struct edid _edid;
63-
struct display_timing dt;
64-
65-
//DSI Configuration
66-
dt.pixelclock = envie_known_modes[EDID_MODE_SELECTED].pixel_clock;
67-
dt.hactive = envie_known_modes[EDID_MODE_SELECTED].hactive;
68-
dt.hsync_len = envie_known_modes[EDID_MODE_SELECTED].hsync_len;
69-
dt.hback_porch = envie_known_modes[EDID_MODE_SELECTED].hback_porch;
70-
dt.hfront_porch = envie_known_modes[EDID_MODE_SELECTED].hfront_porch;
71-
dt.vactive = envie_known_modes[EDID_MODE_SELECTED].vactive;
72-
dt.vsync_len = envie_known_modes[EDID_MODE_SELECTED].vsync_len;
73-
dt.vback_porch = envie_known_modes[EDID_MODE_SELECTED].vback_porch;
74-
dt.vfront_porch = envie_known_modes[EDID_MODE_SELECTED].vfront_porch;
75-
dt.hpol = envie_known_modes[EDID_MODE_SELECTED].hpol;
76-
dt.vpol = envie_known_modes[EDID_MODE_SELECTED].vpol;
77-
stm32_dsi_config(0, &_edid, &dt);
78-
79-
//Configure SDRAM
80-
SDRAM.begin();
81-
82-
//Init LCD Controller
83-
st7701_init();
61+
#define EDID_MODE_SELECTED EDID_MODE_480x800_60Hz
62+
struct edid _edid;
63+
struct display_timing dt;
64+
65+
//DSI Configuration
66+
dt.pixelclock = envie_known_modes[EDID_MODE_SELECTED].pixel_clock;
67+
dt.hactive = envie_known_modes[EDID_MODE_SELECTED].hactive;
68+
dt.hsync_len = envie_known_modes[EDID_MODE_SELECTED].hsync_len;
69+
dt.hback_porch = envie_known_modes[EDID_MODE_SELECTED].hback_porch;
70+
dt.hfront_porch = envie_known_modes[EDID_MODE_SELECTED].hfront_porch;
71+
dt.vactive = envie_known_modes[EDID_MODE_SELECTED].vactive;
72+
dt.vsync_len = envie_known_modes[EDID_MODE_SELECTED].vsync_len;
73+
dt.vback_porch = envie_known_modes[EDID_MODE_SELECTED].vback_porch;
74+
dt.vfront_porch = envie_known_modes[EDID_MODE_SELECTED].vfront_porch;
75+
dt.hpol = envie_known_modes[EDID_MODE_SELECTED].hpol;
76+
dt.vpol = envie_known_modes[EDID_MODE_SELECTED].vpol;
77+
dsi_init(0, &_edid, &dt);
78+
79+
//Configure SDRAM
80+
SDRAM.begin();
81+
82+
//Init LCD Controller
83+
st7701_init();
8484
}
8585
#elif defined(ARDUINO_GIGA)
8686
#define EDID_MODE_SELECTED EDID_MODE_480x800_60Hz
@@ -99,7 +99,7 @@ int H7_Video::begin(bool landscape) {
9999
dt.vfront_porch = envie_known_modes[EDID_MODE_SELECTED].vfront_porch;
100100
dt.hpol = envie_known_modes[EDID_MODE_SELECTED].hpol;
101101
dt.vpol = envie_known_modes[EDID_MODE_SELECTED].vpol;
102-
stm32_dsi_config(0, &_edid, &dt);
102+
dsi_init(0, &_edid, &dt);
103103

104104
//Configure SDRAM
105105
SDRAM.begin();
@@ -112,10 +112,10 @@ int H7_Video::begin(bool landscape) {
112112

113113
_landscape = landscape;
114114

115-
stm32_LCD_Clear(0);
115+
dsi_lcdClear(0);
116116

117117
#if __has_include("lvgl.h")
118-
getNextFrameBuffer();
118+
dsi_getNextFrameBuffer();
119119

120120
/* Initiliaze LVGL library */
121121
lv_init();
@@ -149,21 +149,21 @@ void H7_Video::beginDraw() {
149149
ArduinoGraphics::beginDraw();
150150

151151
#if __has_include("lvgl.h")
152-
getNextFrameBuffer();
152+
dsi_getNextFrameBuffer();
153153
#endif
154154

155-
stm32_LCD_Clear(0);
155+
dsi_lcdClear(0);
156156
}
157157

158158
void H7_Video::endDraw() {
159159
ArduinoGraphics::endDraw();
160160

161-
getNextFrameBuffer();
161+
dsi_getNextFrameBuffer();
162162
}
163163

164164
void H7_Video::clear(){
165165
uint32_t bg = ArduinoGraphics::background();
166-
stm32_LCD_Clear(bg);
166+
dsi_lcdClear(bg);
167167
}
168168

169169
void H7_Video::set(int x, int y, uint8_t r, uint8_t g, uint8_t b) {
@@ -178,7 +178,7 @@ void H7_Video::set(int x, int y, uint8_t r, uint8_t g, uint8_t b) {
178178
}
179179

180180
uint32_t color = (uint32_t)((uint32_t)(r << 16) | (uint32_t)(g << 8) | (uint32_t)(b << 0));
181-
stm32_LCD_FillArea((void *)(getCurrentFrameBuffer() + ((x_rot + (width() * y_rot)) * sizeof(uint16_t))), 1, 1, color);
181+
dsi_lcdFillArea((void *)(dsi_getCurrentFrameBuffer() + ((x_rot + (width() * y_rot)) * sizeof(uint16_t))), 1, 1, color);
182182
}
183183

184184
#if __has_include("lvgl.h")
@@ -187,7 +187,7 @@ void lvgl_displayFlushing(lv_disp_drv_t * disp, const lv_area_t * area, lv_color
187187
uint32_t height = lv_area_get_height(area);
188188
uint32_t offsetPos = (area->x1 + (disp->hor_res * area->y1)) * sizeof(uint16_t);
189189

190-
stm32_LCD_DrawImage((void *) color_p, (void *)(getCurrentFrameBuffer() + offsetPos), width, height, DMA2D_INPUT_RGB565);
190+
dsi_lcdDrawImage((void *) color_p, (void *)(dsi_getCurrentFrameBuffer() + offsetPos), width, height, DMA2D_INPUT_RGB565);
191191
lv_disp_flush_ready(disp); /* Indicate you are ready with the flushing*/
192192
}
193193

libraries/H7_Video/src/anx7625.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@
3535
#define FLASH_LOAD_STA 0x05
3636
#define FLASH_LOAD_STA_CHK (1 << 7)
3737

38-
extern struct envie_edid_mode envie_known_modes[];
39-
4038
static mbed::DigitalOut video_on(PK_2, 0);
4139
static mbed::DigitalOut video_rst(PJ_3, 0);
4240
static mbed::DigitalInOut otg_on(PJ_6, PIN_INPUT, PullUp, 0);
@@ -841,7 +839,7 @@ int anx7625_dp_start(uint8_t bus, const struct edid *edid, enum edid_modes mode)
841839
dt.vpol = envie_known_modes[mode].vpol;
842840
}
843841

844-
stm32_dsi_config(bus, (struct edid *)edid, &dt);
842+
dsi_init(bus, (struct edid *)edid, &dt);
845843

846844
ret = anx7625_dsi_config(bus, &dt);
847845
if (ret < 0)

0 commit comments

Comments
 (0)