Panel class.
More...
Panel class.
A panel is the glass behind a display controller: a struct pbl_panel device owning the panel's supplies and drive signals, and describing what the controller has to generate, its timing and bus format. As in Linux, the controller brings the panel up and down in steps around its own:
Calls are made by the controller, from task context, and return 0 or a negative errno, -ENODEV if the panel is not ready.
◆ pbl_panel_timing
Timing of a panel scanned by its controller.
Horizontal values are in clock periods, vertical values in lines.
| Data Fields |
|
uint32_t |
clock_hz |
Horizontal clock frequency (HCK), in Hz. |
|
uint16_t |
enable_end |
Last column of the write enable (ENB) pulse. |
|
uint16_t |
enable_start |
First column of the write enable (ENB) pulse. |
|
uint16_t |
hactive |
Visible columns. |
|
uint16_t |
hback_porch |
Columns before the visible ones. |
|
uint16_t |
hfront_porch |
Columns after the visible ones. |
|
uint16_t |
vactive |
Visible lines. |
|
uint16_t |
vback_porch |
Lines before the visible ones. |
|
uint16_t |
vfront_porch |
Lines after the visible ones. |
◆ pbl_panel
◆ PBL_PANEL_INIT
| #define PBL_PANEL_INIT |
( |
|
sym, |
|
|
|
_name, |
|
|
|
_init, |
|
|
|
_ops, |
|
|
|
_deps, |
|
|
|
_timing, |
|
|
|
_bus_format |
|
) |
| |
Value: { \
.ops = (_ops), \
.timing = (_timing), \
.bus_format = (_bus_format), \
}
#define PBL_DEVICE_INIT_CLASS(sym, _name, _init, _parent, _deps, _cls)
Initializer for the struct pbl_device of device instance sym, in class _cls.
Definition device.h:123
const struct pbl_device_class pbl_panel_class
Class of the panels.
Initializer for the struct pbl_panel of panel sym, for the PBL_*_DEFINE() macro of a driver, with its device state defined by PBL_DEVICE_STATE_DEFINE().
- Parameters
-
| sym | Symbol of the panel instance. |
| _name | Name. |
| _init | Driver device init. |
| _ops | Driver operations. |
| _deps | Dependencies from PBL_DEVICE_DEPS(), or NULL. |
| _timing | Timing. |
| _bus_format | Bus format. |
◆ pbl_panel_bus_format
Bus formats.
| Enumerator |
|---|
| PBL_PANEL_BUS_FORMAT_JDI_RGB222 | JDI memory-in-pixel parallel interface: 2 bits per color on the R1/R2, G1/G2 and B1/B2 lines, with HST/HCK, VST/VCK, ENB and XRST.
|
◆ pbl_panel_disable()
| int pbl_panel_disable |
( |
const struct pbl_panel * |
panel | ) |
|
Turn a panel's image off.
- Parameters
-
- Returns
- 0 or a negative errno.
◆ pbl_panel_enable()
| int pbl_panel_enable |
( |
const struct pbl_panel * |
panel | ) |
|
Turn a panel's image on.
- Parameters
-
- Returns
- 0 or a negative errno.
◆ pbl_panel_prepare()
| int pbl_panel_prepare |
( |
const struct pbl_panel * |
panel | ) |
|
Power a panel up.
- Parameters
-
- Returns
- 0 or a negative errno.
◆ pbl_panel_unprepare()
| int pbl_panel_unprepare |
( |
const struct pbl_panel * |
panel | ) |
|
Power a panel down.
- Parameters
-
- Returns
- 0 or a negative errno.
◆ pbl_panel_class