|
PebbleOS v4.43.0-131-ga855823dd
|
Display driver for the SF32LB LCD controller scanning out to a panel. More...
Data Structures | |
| struct | pbl_display_sf32lb_lcdc |
| SF32LB LCD controller. More... | |
Macros | |
| #define | PBL_DISPLAY_SF32LB_LCDC_DEFINE(sym, _name, _base, _irqn, _clk, _rst, _panel, _width, _height, _rotated, _pinctrl, _discharge, _num_discharge) |
| Define an SF32LB LCD controller display. | |
Functions | |
| void | pbl_display_sf32lb_lcdc_irq_handler (const struct pbl_display_sf32lb_lcdc *lcdc) |
| Controller interrupt handler, to connect with PBL_IRQ_CONNECT(). | |
| void | pbl_display_sf32lb_lcdc_test_drop_next_complete (void) |
| Drop the next transfer-complete interrupt. | |
Display driver for the SF32LB LCD controller scanning out to a panel.
Drives a Panel on the JDI memory-in-pixel parallel interface, with the panel's timing. Takes PBL_DISPLAY_FORMAT_ARGB2222 rows, converted in place to the controller's RGB332 while an update runs. Updates complete from the controller's interrupt, connected by the board.
| struct pbl_display_sf32lb_lcdc |
SF32LB LCD controller.
| Data Fields | ||
|---|---|---|
| uintptr_t | base | Controller registers. |
| struct pbl_clk | clk | Controller clock. |
| const struct pbl_gpio * | discharge | Panel inputs driven low, as GPIOs, while the panel is power cycled at init. |
| struct pbl_display | disp | Display. |
| pbl_irq_t | irqn | Controller interrupt. |
| uint8_t | num_discharge | Number of discharge pins. |
| const struct pbl_panel * | panel | Panel. |
| struct pbl_pinctrl | pinctrl | Panel interface pins. |
| struct pbl_reset | rst | Controller reset. |
| struct pbl_display_sf32lb_lcdc_state * | state | Driver runtime state. |
| #define PBL_DISPLAY_SF32LB_LCDC_DEFINE | ( | sym, | |
| _name, | |||
| _base, | |||
| _irqn, | |||
| _clk, | |||
| _rst, | |||
| _panel, | |||
| _width, | |||
| _height, | |||
| _rotated, | |||
| _pinctrl, | |||
| _discharge, | |||
| _num_discharge | |||
| ) |
Define an SF32LB LCD controller display.
| sym | Symbol of the display. |
| _name | Name. |
| _base | Controller registers. |
| _irqn | Controller interrupt, from PBL_IRQN(). |
| _clk | Controller clock, from PBL_CLK(). |
| _rst | Controller reset, from PBL_RESET(). |
| _panel | Panel. |
| _width | Width, in pixels, the panel's visible columns. |
| _height | Height, in pixels, the panel's visible lines. |
| _rotated | Panel mounted upside down. |
| _pinctrl | Panel interface pins, from PBL_PINCTRL(). |
| _discharge | Pins driven low while the panel is power cycled, or NULL. |
| _num_discharge | Number of _discharge pins. |
| void pbl_display_sf32lb_lcdc_irq_handler | ( | const struct pbl_display_sf32lb_lcdc * | lcdc | ) |
Controller interrupt handler, to connect with PBL_IRQ_CONNECT().
| lcdc | Display. |
| void pbl_display_sf32lb_lcdc_test_drop_next_complete | ( | void | ) |
Drop the next transfer-complete interrupt.
Test hook simulating a lost completion. The silent-loss timer then fires about 500 ms later and crashes the system, producing a coredump. Not available in release builds.