Skip to content

Commit 8eed5c9

Browse files
committed
code cleanup and some memory optimizations.
1 parent e111d54 commit 8eed5c9

File tree

24 files changed

+273
-638
lines changed

24 files changed

+273
-638
lines changed

ext_mod/lcd_bus/common_include/i2c_bus.h

Lines changed: 0 additions & 34 deletions
This file was deleted.

ext_mod/lcd_bus/common_include/i80_bus.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
bool trans_done;
2727
bool rgb565_byte_swap;
2828

29+
uint8_t lane_count;
30+
2931
lcd_panel_io_t panel_io_handle;
3032

3133
void *panel_io_config;

ext_mod/lcd_bus/common_include/rgb_bus.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
bool trans_done;
2222
bool rgb565_byte_swap;
2323

24+
uint8_t lane_count;
25+
2426
lcd_panel_io_t panel_io_handle;
2527

2628
void *panel_io_config;

ext_mod/lcd_bus/common_include/spi_bus.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
bool trans_done;
2626
bool rgb565_byte_swap;
2727

28+
uint8_t lane_count;
29+
2830
lcd_panel_io_t panel_io_handle;
2931
void * panel_io_config;
3032

ext_mod/lcd_bus/common_src/i2c_bus.c

Lines changed: 0 additions & 33 deletions
This file was deleted.

ext_mod/lcd_bus/common_src/i80_bus.c

Lines changed: 9 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@
7979
mp_lcd_err_t i80_tx_color(mp_obj_t obj, int lcd_cmd, void *color, size_t color_size, int x_start, int y_start, int x_end, int y_end);
8080
mp_lcd_err_t i80_del(mp_obj_t obj);
8181
mp_lcd_err_t i80_init(mp_obj_t obj, uint16_t width, uint16_t height, uint8_t bpp, uint32_t buffer_size, bool rgb565_byte_swap, uint8_t cmd_bits, uint8_t param_bits);
82-
mp_lcd_err_t i80_get_lane_count(mp_obj_t obj, uint8_t *lane_count);
8382

8483
void write_color8(mp_lcd_i80_bus_obj_t *self, void *color, size_t color_size);
8584
void write_color16(mp_lcd_i80_bus_obj_t *self, void *color, size_t color_size);
@@ -103,22 +102,7 @@
103102
enum {
104103
ARG_dc,
105104
ARG_wr,
106-
ARG_data0,
107-
ARG_data1,
108-
ARG_data2,
109-
ARG_data3,
110-
ARG_data4,
111-
ARG_data5,
112-
ARG_data6,
113-
ARG_data7,
114-
ARG_data8,
115-
ARG_data9,
116-
ARG_data10,
117-
ARG_data11,
118-
ARG_data12,
119-
ARG_data13,
120-
ARG_data14,
121-
ARG_data15,
105+
ARG_data_pins,
122106
ARG_cs,
123107
ARG_freq,
124108
ARG_dc_idle_high,
@@ -129,7 +113,6 @@
129113
ARG_param_bits,
130114
ARG_cs_active_high,
131115
ARG_reverse_color_bits,
132-
ARG_swap_color_bytes,
133116
ARG_pclk_active_low,
134117
ARG_pclk_idle_low,
135118
};
@@ -151,22 +134,7 @@
151134
const mp_arg_t make_new_args[] = {
152135
{ MP_QSTR_dc, MP_ARG_OBJ | MP_ARG_REQUIRED },
153136
{ MP_QSTR_wr, MP_ARG_OBJ | MP_ARG_REQUIRED },
154-
{ MP_QSTR_data0, MP_ARG_OBJ | MP_ARG_REQUIRED },
155-
{ MP_QSTR_data1, MP_ARG_OBJ | MP_ARG_REQUIRED },
156-
{ MP_QSTR_data2, MP_ARG_OBJ | MP_ARG_REQUIRED },
157-
{ MP_QSTR_data3, MP_ARG_OBJ | MP_ARG_REQUIRED },
158-
{ MP_QSTR_data4, MP_ARG_OBJ | MP_ARG_REQUIRED },
159-
{ MP_QSTR_data5, MP_ARG_OBJ | MP_ARG_REQUIRED },
160-
{ MP_QSTR_data6, MP_ARG_OBJ | MP_ARG_REQUIRED },
161-
{ MP_QSTR_data7, MP_ARG_OBJ | MP_ARG_REQUIRED },
162-
{ MP_QSTR_data8, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
163-
{ MP_QSTR_data9, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
164-
{ MP_QSTR_data10, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
165-
{ MP_QSTR_data11, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
166-
{ MP_QSTR_data12, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
167-
{ MP_QSTR_data13, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
168-
{ MP_QSTR_data14, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
169-
{ MP_QSTR_data15, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
137+
{ MP_QSTR_data_pins, MP_ARG_OBJ | MP_ARG_REQUIRED },
170138
{ MP_QSTR_cs, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
171139
{ MP_QSTR_freq, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 10000000 } },
172140
{ MP_QSTR_dc_idle_high, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
@@ -175,7 +143,6 @@
175143
{ MP_QSTR_dc_data_high, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = true } },
176144
{ MP_QSTR_cs_active_high, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
177145
{ MP_QSTR_reverse_color_bits, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
178-
{ MP_QSTR_swap_color_bytes, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
179146
{ MP_QSTR_pclk_active_low, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
180147
{ MP_QSTR_pclk_idle_low, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } }
181148
};
@@ -219,28 +186,15 @@
219186
mp_hal_pin_write(self->bus_config.dc_gpio_num, self->panel_io_config.dc_levels.dc_data_level);
220187
mp_hal_pin_write(self->bus_config.wr_gpio_num, 0);
221188

222-
self->bus_config.data_gpio_nums[0] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data0].u_obj);
223-
self->bus_config.data_gpio_nums[1] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data1].u_obj);
224-
self->bus_config.data_gpio_nums[2] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data2].u_obj);
225-
self->bus_config.data_gpio_nums[3] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data3].u_obj);
226-
self->bus_config.data_gpio_nums[4] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data4].u_obj);
227-
self->bus_config.data_gpio_nums[5] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data5].u_obj);
228-
self->bus_config.data_gpio_nums[6] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data6].u_obj);
229-
self->bus_config.data_gpio_nums[7] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data7].u_obj);
230-
if (args[ARG_data8].u_obj == mp_const_none) {
231-
self->bus_config.bus_width = 8;
232-
} else {
233-
self->bus_config.data_gpio_nums[8] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data8].u_obj);
234-
self->bus_config.data_gpio_nums[9] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data9].u_obj);
235-
self->bus_config.data_gpio_nums[10] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data10].u_obj);
236-
self->bus_config.data_gpio_nums[11] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data11].u_obj);
237-
self->bus_config.data_gpio_nums[12] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data12].u_obj);
238-
self->bus_config.data_gpio_nums[13] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data13].u_obj);
239-
self->bus_config.data_gpio_nums[14] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data14].u_obj);
240-
self->bus_config.data_gpio_nums[15] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(args[ARG_data15].u_obj);
241-
self->bus_config.bus_width = 16;
189+
mp_obj_tuple_t *data_pins = (mp_obj_tuple_t *)MP_OBJ_TO_PTR(args[ARG_data_pins].u_obj);
190+
191+
for (size_t i = 0; i < data_pins->len; i++) {
192+
self->bus_config.data_gpio_nums[i] = (mp_hal_pin_obj_t)mp_hal_get_pin_obj(data_pins->items[i]);
242193
}
243194

195+
self->bus_config.bus_width = (size_t)data_pins->len;
196+
self->lane_count = (uint8_t)self->bus_config.bus_width;
197+
244198
mp_hal_pin_obj_t pin;
245199

246200
for ( uint8_t i = 0; i < self->bus_config.bus_width; i++) {
@@ -269,7 +223,6 @@
269223
self->panel_io_handle.rx_param = i80_rx_param;
270224
self->panel_io_handle.del = i80_del;
271225
self->panel_io_handle.init = i80_init;
272-
self->panel_io_handle.get_lane_count = i80_get_lane_count;
273226
#endif /* defined(mp_hal_pin_output) || defined(IDF_VER) */
274227

275228
return MP_OBJ_FROM_PTR(self);
@@ -437,15 +390,6 @@
437390
return LCD_OK;
438391
}
439392

440-
441-
mp_lcd_err_t i80_get_lane_count(mp_obj_t obj, uint8_t *lane_count)
442-
{
443-
mp_lcd_i80_bus_obj_t *self = MP_OBJ_TO_PTR(obj);
444-
*lane_count = (uint8_t)self->bus_config.bus_width;
445-
return LCD_OK;
446-
}
447-
448-
449393
/* transfer functions */
450394
void write_color8(mp_lcd_i80_bus_obj_t *self, void *color, size_t color_size)
451395
{

ext_mod/lcd_bus/common_src/spi_bus.c

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@
7676
/* forward declarations */
7777
mp_lcd_err_t s_spi_del(mp_obj_t obj);
7878
mp_lcd_err_t s_spi_init(mp_obj_t obj, uint16_t width, uint16_t height, uint8_t bpp, uint32_t buffer_size, bool rgb565_byte_swap, uint8_t cmd_bits, uint8_t param_bits);
79-
mp_lcd_err_t s_spi_get_lane_count(mp_obj_t obj, uint8_t *lane_count);
8079
mp_lcd_err_t s_spi_rx_param(mp_obj_t obj, int lcd_cmd, void *param, size_t param_size);
8180
mp_lcd_err_t s_spi_tx_param(mp_obj_t obj, int lcd_cmd, void *param, size_t param_size);
8281
mp_lcd_err_t s_spi_tx_color(mp_obj_t obj, int lcd_cmd, void *color, size_t color_size, int x_start, int y_start, int x_end, int y_end);
@@ -143,7 +142,7 @@
143142
}
144143

145144
self->callback = mp_const_none;
146-
145+
self->lane_count = 1;
147146
self->host = (int)self->spi_bus->spi_bus->host;
148147

149148
self->panel_io_config.cs_gpio = args[ARG_cs].u_obj;
@@ -165,7 +164,6 @@
165164
self->panel_io_handle.tx_param = s_spi_tx_param;
166165
self->panel_io_handle.rx_param = s_spi_rx_param;
167166
self->panel_io_handle.tx_color = s_spi_tx_color;
168-
self->panel_io_handle.get_lane_count = s_spi_get_lane_count;
169167

170168
#endif /* !defined(IDF_VER) */
171169

@@ -230,14 +228,6 @@
230228
}
231229

232230

233-
mp_lcd_err_t s_spi_get_lane_count(mp_obj_t obj, uint8_t *lane_count)
234-
{
235-
LCD_UNUSED(obj);
236-
*lane_count = 1;
237-
return LCD_OK;
238-
}
239-
240-
241231
mp_lcd_err_t s_spi_rx_param(mp_obj_t obj, int lcd_cmd, void *param, size_t param_size)
242232
{
243233
mp_lcd_spi_bus_obj_t *self = MP_OBJ_TO_PTR(obj);

ext_mod/lcd_bus/esp32_include/dsi_bus.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
bool trans_done;
3434
bool rgb565_byte_swap;
3535

36+
uint8_t lane_count;
37+
3638
lcd_panel_io_t panel_io_handle;
3739

3840
esp_lcd_dbi_io_config_t panel_io_config;

ext_mod/lcd_bus/esp32_include/i2c_bus.h

Lines changed: 0 additions & 38 deletions
This file was deleted.

ext_mod/lcd_bus/esp32_include/i80_bus.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@
2929
bool trans_done;
3030
bool rgb565_byte_swap;
3131

32+
uint8_t lane_count;
33+
3234
lcd_panel_io_t panel_io_handle;
3335

34-
esp_lcd_panel_io_i80_config_t panel_io_config;
35-
esp_lcd_i80_bus_config_t bus_config;
36+
esp_lcd_panel_io_i80_config_t *panel_io_config;
37+
esp_lcd_i80_bus_config_t *bus_config;
3638
esp_lcd_i80_bus_handle_t bus_handle;
3739
} mp_lcd_i80_bus_obj_t;
3840

0 commit comments

Comments
 (0)