lcd_cam: new csv header file

This commit is contained in:
morris 2021-06-17 21:41:03 +08:00
parent 8a6fa2f86c
commit 6352a7ee07
5 changed files with 1798 additions and 1093 deletions

View File

@ -128,7 +128,7 @@ esp_err_t esp_lcd_new_i80_bus(const esp_lcd_i80_bus_config_t *bus_config, esp_lc
// interrupt is disabled by default
int isr_flags = ESP_INTR_FLAG_INTRDISABLED;
ret = esp_intr_alloc_intrstatus(lcd_periph_signals.buses[bus_id].irq_id, isr_flags,
lcd_ll_get_interrupt_status_reg(bus->hal.dev),
(uint32_t)lcd_ll_get_interrupt_status_reg(bus->hal.dev),
LCD_LL_EVENT_TRANS_DONE, lcd_default_isr_handler, bus, &bus->intr);
ESP_GOTO_ON_ERROR(ret, no_int, TAG, "install interrupt failed");
lcd_ll_enable_interrupt(bus->hal.dev, LCD_LL_EVENT_TRANS_DONE, false); // disable all interrupts

View File

@ -115,7 +115,7 @@ esp_err_t esp_lcd_new_rgb_panel(const esp_lcd_rgb_panel_config_t *rgb_panel_conf
// install interrupt service, (LCD peripheral shares the interrupt source with Camera by different mask)
int isr_flags = 0;
ret = esp_intr_alloc_intrstatus(lcd_periph_signals.panels[panel_id].irq_id, isr_flags,
lcd_ll_get_interrupt_status_reg(rgb_panel->hal.dev),
(uint32_t)lcd_ll_get_interrupt_status_reg(rgb_panel->hal.dev),
LCD_LL_EVENT_VSYNC_END, lcd_default_isr_handler, rgb_panel, &rgb_panel->intr);
ESP_GOTO_ON_ERROR(ret, no_int, TAG, "install interrupt failed");
lcd_ll_enable_interrupt(rgb_panel->hal.dev, LCD_LL_EVENT_VSYNC_END, false); // disable all interrupts

View File

@ -165,12 +165,10 @@ static inline void lcd_ll_set_command(lcd_cam_dev_t *dev, uint32_t data_width, u
{
// if command phase has two cycles, in the first cycle, command[15:0] is sent out via lcd_data_out[15:0]
// in the second cycle, command[31:16] is sent out via lcd_data_out[15:0]
// no matter the LCD is in 8bit mode or 16bit mode
// so this is a workaround especially for 8bit mode
if (data_width == 8) {
command = (command & 0xFF) | (command & 0xFF00) << 8;
}
dev->lcd_cmd_val = command;
dev->lcd_cmd_val.lcd_cmd_value = command;
}
static inline void lcd_ll_enable_rgb_mode(lcd_cam_dev_t *dev, bool en)
@ -252,9 +250,9 @@ static inline void lcd_ll_clear_interrupt_status(lcd_cam_dev_t *dev, uint32_t ma
dev->lc_dma_int_clr.val = mask & 0x03;
}
static inline uint32_t lcd_ll_get_interrupt_status_reg(lcd_cam_dev_t *dev)
static inline volatile void *lcd_ll_get_interrupt_status_reg(lcd_cam_dev_t *dev)
{
return (uint32_t)(&dev->lc_dma_int_st);
return &dev->lc_dma_int_st;
}
#ifdef __cplusplus

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff