diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index 42781bcdf9..eddd22236d 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -73,6 +73,12 @@ INPUT = \ $(PROJECT_PATH)/components/esp_eth/include/esp_eth_mac.h \ $(PROJECT_PATH)/components/esp_eth/include/esp_eth_phy.h \ $(PROJECT_PATH)/components/esp_eth/include/esp_eth_netif_glue.h \ + $(PROJECT_PATH)/components/esp_lcd/include/esp_lcd_panel_io.h \ + $(PROJECT_PATH)/components/esp_lcd/include/esp_lcd_panel_ops.h \ + $(PROJECT_PATH)/components/esp_lcd/include/esp_lcd_panel_rgb.h \ + $(PROJECT_PATH)/components/esp_lcd/include/esp_lcd_panel_vendor.h \ + $(PROJECT_PATH)/components/esp_lcd/include/esp_lcd_types.h \ + $(PROJECT_PATH)/components/hal/include/hal/lcd_types.h \ $(PROJECT_PATH)/components/hal/include/hal/adc_types.h \ $(PROJECT_PATH)/components/soc/$(IDF_TARGET)/include/soc/adc_channel.h \ $(PROJECT_PATH)/components/driver/include/driver/adc_common.h \ diff --git a/docs/en/api-reference/peripherals/index.rst b/docs/en/api-reference/peripherals/index.rst index 730983ee9d..7f31970323 100644 --- a/docs/en/api-reference/peripherals/index.rst +++ b/docs/en/api-reference/peripherals/index.rst @@ -15,6 +15,7 @@ Peripherals API :SOC_DIG_SIGN_SUPPORTED: ds i2c i2s + lcd ledc :SOC_MCPWM_SUPPORTED: mcpwm :SOC_PCNT_SUPPORTED: pcnt diff --git a/docs/en/api-reference/peripherals/lcd.rst b/docs/en/api-reference/peripherals/lcd.rst new file mode 100644 index 0000000000..09d5160b68 --- /dev/null +++ b/docs/en/api-reference/peripherals/lcd.rst @@ -0,0 +1,36 @@ +LCD +=== + +Introduction +------------ + +ESP chips can generate various kinds of timings that needed by common LCDs on the market, like SPI LCD, I80 LCD (a.k.a Intel 8080 parallel LCD), RGB LCD, I2C LCD, etc. The ``esp_lcd`` component is officially to support those LCDs with a group of universal APIs across chips. + +Functional Overview +------------------- + +In ``esp_lcd``, an LCD panel is represented by :c:type:`esp_lcd_panel_handle_t`, which plays the role of an **abstract frame buffer**, regardless of the frame memory is allocated inside ESP chip or in external LCD controller. Based on the location of the frame buffer, the LCD panel allocation functions are mainly grouped into the following categories: + +- ``RGB LCD panel`` - is simply based on a group of specific synchronous signals indicating where to start and stop a frame. + +- ``Controller based LCD panel`` involves multiple steps to get a panel handle, like bus allocation, IO device registration and controller driver install. + +After we get the LCD handle, the remaining LCD operations are the same for different LCD interfaces and vendors. + +Application Example +------------------- + +LCD examples are located under: :example:`peripherals/lcd`: + +* Jpeg decoding and LCD display - :example:`peripherals/lcd/tjpgd` +* LVGL porting and animation UI - :example:`peripherals/lcd/lvgl` + +API Reference +------------- + +.. include-build-file:: inc/lcd_types.inc +.. include-build-file:: inc/esp_lcd_types.inc +.. include-build-file:: inc/esp_lcd_panel_io.inc +.. include-build-file:: inc/esp_lcd_panel_ops.inc +.. include-build-file:: inc/esp_lcd_panel_rgb.inc +.. include-build-file:: inc/esp_lcd_panel_vendor.inc diff --git a/docs/zh_CN/api-reference/peripherals/index.rst b/docs/zh_CN/api-reference/peripherals/index.rst index 3089a2a45e..54ac56de2e 100644 --- a/docs/zh_CN/api-reference/peripherals/index.rst +++ b/docs/zh_CN/api-reference/peripherals/index.rst @@ -15,6 +15,7 @@ :SOC_DIG_SIGN_SUPPORTED: ds i2c i2s + lcd ledc :SOC_MCPWM_SUPPORTED: mcpwm :SOC_PCNT_SUPPORTED: pcnt diff --git a/docs/zh_CN/api-reference/peripherals/lcd.rst b/docs/zh_CN/api-reference/peripherals/lcd.rst new file mode 100644 index 0000000000..88fae23152 --- /dev/null +++ b/docs/zh_CN/api-reference/peripherals/lcd.rst @@ -0,0 +1 @@ +.. include:: ../../../en/api-reference/peripherals/lcd.rst