|
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_ti=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_ti=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 | +inti=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 | #ifCONFIG_LCD_ENABLE_DEBUG_LOG |
174 | 215 | printf("pclk_hz=%lu\n",self->bus_config.pclk_hz); |
|