|
78 | 78 | mp_lcd_err_t i80_tx_param(mp_obj_t obj, int lcd_cmd, void *param, size_t param_size);
|
79 | 79 | 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);
|
80 | 80 | mp_lcd_err_t i80_del(mp_obj_t obj);
|
81 |
| - 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); |
| 81 | + 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 | 82 | mp_lcd_err_t i80_get_lane_count(mp_obj_t obj, uint8_t *lane_count);
|
83 | 83 |
|
84 | 84 | void write_color8(mp_lcd_i80_bus_obj_t *self, void *color, size_t color_size);
|
|
173 | 173 | { MP_QSTR_dc_cmd_high, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
|
174 | 174 | { MP_QSTR_dc_dummy_high, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
|
175 | 175 | { MP_QSTR_dc_data_high, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = true } },
|
176 |
| - { MP_QSTR_cmd_bits, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 8 } }, |
177 |
| - { MP_QSTR_param_bits, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 8 } }, |
178 | 176 | { MP_QSTR_cs_active_high, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
|
179 | 177 | { MP_QSTR_reverse_color_bits, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
|
180 | 178 | { MP_QSTR_swap_color_bytes, MP_ARG_BOOL | MP_ARG_KW_ONLY, { .u_bool = false } },
|
|
202 | 200 | mp_raise_msg(&mp_type_NotImplementedError, MP_ERROR_TEXT("LCD I80 but is not available for this MCU"));
|
203 | 201 | #else
|
204 | 202 | self->panel_io_config.user_ctx = self;
|
205 |
| - self->panel_io_config.lcd_cmd_bits = (int)args[ARG_cmd_bits].u_int; |
206 |
| - self->panel_io_config.lcd_param_bits = (int)args[ARG_param_bits].u_int; |
207 | 203 | self->panel_io_config.dc_levels.dc_cmd_level = (unsigned int)args[ARG_dc_cmd_high].u_bool;
|
208 | 204 | self->panel_io_config.dc_levels.dc_data_level = (unsigned int)args[ARG_dc_data_high].u_bool;
|
209 | 205 | self->panel_io_config.flags.cs_active_high = (unsigned int)args[ARG_cs_active_high].u_bool;
|
|
398 | 394 |
|
399 | 395 | }
|
400 | 396 |
|
401 |
| - 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) |
| 397 | + 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) |
402 | 398 | {
|
403 | 399 | mp_lcd_i80_bus_obj_t *self = MP_OBJ_TO_PTR(obj);
|
404 | 400 | LCD_UNUSED(rgb565_byte_swap);
|
405 | 401 |
|
406 | 402 | self->buffer_size = buffer_size;
|
407 | 403 | self->bpp = bpp;
|
| 404 | + self->panel_io_config.lcd_cmd_bits = (int)cmd_bits; |
| 405 | + self->panel_io_config.lcd_param_bits = (int)param_bits; |
408 | 406 |
|
409 | 407 | if (self->rgb565_byte_swap) {
|
410 | 408 | if (self->bus_config.bus_width == 8) {
|
|
0 commit comments