Lines Matching refs:dev_data
80 struct mcux_elcdif_data *dev_data = dev->data; in mcux_elcdif_write() local
87 __ASSERT((dev_data->pixel_bytes * desc->pitch * desc->height) <= desc->buf_size, in mcux_elcdif_write()
95 LOG_DBG("Setting FB from %p->%p", (void *)dev_data->active_fb, (void *)buf); in mcux_elcdif_write()
96 dev_data->active_fb = buf; in mcux_elcdif_write()
104 LOG_DBG("Setting FB from %p->%p", (void *)dev_data->active_fb, (void *)buf); in mcux_elcdif_write()
105 dev_data->active_fb = buf; in mcux_elcdif_write()
112 } else if (dev_data->active_fb != dev_data->fb[dev_data->next_idx]) { in mcux_elcdif_write()
118 src = dev_data->active_fb; in mcux_elcdif_write()
119 dst = dev_data->fb[dev_data->next_idx]; in mcux_elcdif_write()
120 memcpy(dst, src, dev_data->fb_bytes); in mcux_elcdif_write()
124 dst = dev_data->fb[dev_data->next_idx]; in mcux_elcdif_write()
125 dst += dev_data->pixel_bytes * (y * config->rgb_mode.panelWidth + x); in mcux_elcdif_write()
128 memcpy(dst, src, dev_data->pixel_bytes * desc->width); in mcux_elcdif_write()
129 src += dev_data->pixel_bytes * desc->pitch; in mcux_elcdif_write()
130 dst += dev_data->pixel_bytes * config->rgb_mode.panelWidth; in mcux_elcdif_write()
133 LOG_DBG("Setting FB from %p->%p", (void *)dev_data->active_fb, in mcux_elcdif_write()
134 (void *)dev_data->fb[dev_data->next_idx]); in mcux_elcdif_write()
136 dev_data->active_fb = dev_data->fb[dev_data->next_idx]; in mcux_elcdif_write()
140 DCACHE_CleanByRange((uint32_t)dev_data->active_fb, dev_data->fb_bytes); in mcux_elcdif_write()
152 dev_data->active_fb = dev_data->fb[dev_data->next_idx]; in mcux_elcdif_write()
154 pxp_block.dest_address = (uint32_t)dev_data->active_fb; in mcux_elcdif_write()
158 if (dev_data->pixel_format == PIXEL_FORMAT_RGB_565) { in mcux_elcdif_write()
160 } else if (dev_data->pixel_format == PIXEL_FORMAT_RGB_888) { in mcux_elcdif_write()
162 } else if (dev_data->pixel_format == PIXEL_FORMAT_ARGB_8888) { in mcux_elcdif_write()
190 pxp_dma.source_data_size = desc->width * dev_data->pixel_bytes; in mcux_elcdif_write()
191 pxp_dma.dest_data_size = config->rgb_mode.panelWidth * dev_data->pixel_bytes; in mcux_elcdif_write()
197 pxp_dma.user_data = dev_data; in mcux_elcdif_write()
207 k_sem_take(&dev_data->pxp_done, K_FOREVER); in mcux_elcdif_write()
215 ELCDIF_SetNextBufferAddr(config->base, (uint32_t)dev_data->active_fb); in mcux_elcdif_write()
219 dev_data->next_idx = (dev_data->next_idx + 1) % CONFIG_MCUX_ELCDIF_FB_NUM; in mcux_elcdif_write()
223 if (unlikely(!dev_data->running)) { in mcux_elcdif_write()
225 dev_data->running = true; in mcux_elcdif_write()
232 k_sem_take(&dev_data->sem, K_FOREVER); in mcux_elcdif_write()
263 struct mcux_elcdif_data *dev_data = dev->data; in mcux_elcdif_set_pixel_format() local
271 dev_data->pixel_format = pixel_format; in mcux_elcdif_set_pixel_format()
272 dev_data->pixel_bytes = DISPLAY_BITS_PER_PIXEL(pixel_format) / BITS_PER_BYTE; in mcux_elcdif_set_pixel_format()
273 dev_data->fb_bytes = in mcux_elcdif_set_pixel_format()
274 config->rgb_mode.panelWidth * config->rgb_mode.panelHeight * dev_data->pixel_bytes; in mcux_elcdif_set_pixel_format()
277 k_heap_free(&display_heap, dev_data->fb[i]); in mcux_elcdif_set_pixel_format()
278 dev_data->fb[i] = in mcux_elcdif_set_pixel_format()
279 k_heap_aligned_alloc(&display_heap, 64, dev_data->fb_bytes, K_FOREVER); in mcux_elcdif_set_pixel_format()
280 if (dev_data->fb[i] == NULL) { in mcux_elcdif_set_pixel_format()
284 memset(dev_data->fb[i], 0, dev_data->fb_bytes); in mcux_elcdif_set_pixel_format()
287 dev_data->rgb_mode = config->rgb_mode; in mcux_elcdif_set_pixel_format()
289 dev_data->rgb_mode.pixelFormat = kELCDIF_PixelFormatRGB565; in mcux_elcdif_set_pixel_format()
291 dev_data->rgb_mode.pixelFormat = kELCDIF_PixelFormatRGB888; in mcux_elcdif_set_pixel_format()
293 dev_data->rgb_mode.pixelFormat = kELCDIF_PixelFormatXRGB8888; in mcux_elcdif_set_pixel_format()
296 ELCDIF_RgbModeSetPixelFormat(config->base, dev_data->rgb_mode.pixelFormat); in mcux_elcdif_set_pixel_format()
327 struct mcux_elcdif_data *dev_data = dev->data; in mcux_elcdif_isr() local
332 if (config->base->CUR_BUF == ((uint32_t)dev_data->active_fb)) { in mcux_elcdif_isr()
337 k_sem_give(&dev_data->sem); in mcux_elcdif_isr()
344 struct mcux_elcdif_data *dev_data = dev->data; in mcux_elcdif_init() local
361 k_sem_init(&dev_data->sem, 0, 1); in mcux_elcdif_init()
363 k_sem_init(&dev_data->pxp_done, 0, 1); in mcux_elcdif_init()
373 mcux_elcdif_set_pixel_format(dev, dev_data->pixel_format); in mcux_elcdif_init()
376 dev_data->active_fb = dev_data->fb[0]; in mcux_elcdif_init()
377 dev_data->rgb_mode.bufferAddr = (uint32_t)dev_data->active_fb; in mcux_elcdif_init()
380 ELCDIF_RgbModeInit(config->base, &dev_data->rgb_mode); in mcux_elcdif_init()