|
84 | 84 | ARG_vsync, |
85 | 85 | ARG_de, |
86 | 86 | ARG_pclk, |
87 | | - ARG_data_pins, |
| 87 | + ARG_data0, |
| 88 | + ARG_data1, |
| 89 | + ARG_data2, |
| 90 | + ARG_data3, |
| 91 | + ARG_data4, |
| 92 | + ARG_data5, |
| 93 | + ARG_data6, |
| 94 | + ARG_data7, |
| 95 | + ARG_data8, |
| 96 | + ARG_data9, |
| 97 | + ARG_data10, |
| 98 | + ARG_data11, |
| 99 | + ARG_data12, |
| 100 | + ARG_data13, |
| 101 | + ARG_data14, |
| 102 | + ARG_data15, |
88 | 103 | ARG_freq, |
89 | 104 | ARG_hsync_front_porch, |
90 | 105 | ARG_hsync_back_porch, |
|
105 | 120 | { MP_QSTR_vsync, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
106 | 121 | { MP_QSTR_de, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
107 | 122 | { MP_QSTR_pclk, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
108 | | - { MP_QSTR_data_pins, MP_ARG_OBJ | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 123 | + { MP_QSTR_data0, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 124 | + { MP_QSTR_data1, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 125 | + { MP_QSTR_data2, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 126 | + { MP_QSTR_data3, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 127 | + { MP_QSTR_data4, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 128 | + { MP_QSTR_data5, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 129 | + { MP_QSTR_data6, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 130 | + { MP_QSTR_data7, MP_ARG_INT | MP_ARG_KW_ONLY | MP_ARG_REQUIRED }, |
| 131 | + { MP_QSTR_data8, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = -1 } }, |
| 132 | + { MP_QSTR_data9, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = -1 } }, |
| 133 | + { MP_QSTR_data10, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = -1 } }, |
| 134 | + { MP_QSTR_data11, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = -1 } }, |
| 135 | + { MP_QSTR_data12, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = -1 } }, |
| 136 | + { MP_QSTR_data13, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = -1 } }, |
| 137 | + { MP_QSTR_data14, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = -1 } }, |
| 138 | + { MP_QSTR_data15, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = -1 } }, |
109 | 139 | { MP_QSTR_freq, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 8000000 } }, |
110 | 140 | { MP_QSTR_hsync_front_porch, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 0 } }, |
111 | 141 | { MP_QSTR_hsync_back_porch, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 0 } }, |
|
149 | 179 | self->panel_io_config.vsync_gpio_num = (int)args[ARG_vsync].u_int; |
150 | 180 | self->panel_io_config.de_gpio_num = (int)args[ARG_de].u_int; |
151 | 181 | self->panel_io_config.pclk_gpio_num = (int)args[ARG_pclk].u_int; |
152 | | - |
153 | | - mp_obj_tuple_t *data_pins = MP_OBJ_TO_PTR(args[ARG_data_pins].u_obj); |
154 | | - |
155 | | - for (size_t i = 0; i < data_pins->len; i++) { |
156 | | - self->panel_io_config.data_gpio_nums[i] = (int)mp_obj_get_int(data_pins->items[i]); |
157 | | - } |
158 | | - |
159 | | - for (size_t i = data_pins->len; i < 16; i++) { |
160 | | - self->panel_io_config.data_gpio_nums[i] = -1; |
161 | | - } |
162 | | - |
163 | | - self->panel_io_config.data_width = (size_t)data_pins->len; |
164 | | - |
| 182 | + self->panel_io_config.data_gpio_nums[0] = (int)args[ARG_data0].u_int; |
| 183 | + self->panel_io_config.data_gpio_nums[1] = (int)args[ARG_data1].u_int; |
| 184 | + self->panel_io_config.data_gpio_nums[2] = (int)args[ARG_data2].u_int; |
| 185 | + self->panel_io_config.data_gpio_nums[3] = (int)args[ARG_data3].u_int; |
| 186 | + self->panel_io_config.data_gpio_nums[4] = (int)args[ARG_data4].u_int; |
| 187 | + self->panel_io_config.data_gpio_nums[5] = (int)args[ARG_data5].u_int; |
| 188 | + self->panel_io_config.data_gpio_nums[6] = (int)args[ARG_data6].u_int; |
| 189 | + self->panel_io_config.data_gpio_nums[7] = (int)args[ARG_data7].u_int; |
| 190 | + self->panel_io_config.data_gpio_nums[8] = (int)args[ARG_data8].u_int; |
| 191 | + self->panel_io_config.data_gpio_nums[9] = (int)args[ARG_data9].u_int; |
| 192 | + self->panel_io_config.data_gpio_nums[10] = (int)args[ARG_data10].u_int; |
| 193 | + self->panel_io_config.data_gpio_nums[11] = (int)args[ARG_data11].u_int; |
| 194 | + self->panel_io_config.data_gpio_nums[12] = (int)args[ARG_data12].u_int; |
| 195 | + self->panel_io_config.data_gpio_nums[13] = (int)args[ARG_data13].u_int; |
| 196 | + self->panel_io_config.data_gpio_nums[14] = (int)args[ARG_data14].u_int; |
| 197 | + self->panel_io_config.data_gpio_nums[15] = (int)args[ARG_data15].u_int; |
| 198 | + self->panel_io_config.disp_gpio_num = (int)args[ARG_disp].u_int; |
165 | 199 | self->panel_io_config.sram_trans_align = 8; |
166 | 200 | self->panel_io_config.psram_trans_align = 64; |
167 | 201 | self->panel_io_config.flags.refresh_on_demand = (uint32_t)args[ARG_refresh_on_demand].u_bool; |
168 | 202 | self->panel_io_config.flags.fb_in_psram = 0; |
169 | 203 | self->panel_io_config.flags.double_fb = 0; |
170 | 204 |
|
| 205 | + int i = 0; |
| 206 | + for (; i < 16; i++) { |
| 207 | + if (self->panel_io_config.data_gpio_nums[i] == -1) { |
| 208 | + break; |
| 209 | + } |
| 210 | + } |
171 | 211 |
|
| 212 | + self->panel_io_config.data_width = (size_t) i; |
172 | 213 |
|
173 | 214 | #if CONFIG_LCD_ENABLE_DEBUG_LOG |
174 | 215 | printf("pclk_hz=%lu\n", self->bus_config.pclk_hz); |
|
0 commit comments