PebbleOS v4.43.0-131-ga855823dd
Loading...
Searching...
No Matches
JDI memory-in-pixel panel

Panel driver for JDI memory-in-pixel panels on the parallel interface. More...

Data Structures

struct  pbl_panel_jdi_mip
 JDI memory-in-pixel panel. More...
 

Macros

#define PBL_PANEL_JDI_MIP_DEFINE(sym, _name, _timing, _vddp, _vlcd, _vcom)
 Define a JDI memory-in-pixel panel.
 

Detailed Description

Panel driver for JDI memory-in-pixel panels on the parallel interface.

The panel takes its timing from the board, and has two supplies switched by GPIOs: VLCD, raised first, and VDDP. Its VCOM is inverted by a PWM output at the VCOM frequency, 50% duty cycle, while the image is on. Once powered down, the panel is kept off for 500 ms before it is powered again. The panel is powered down when it is set up.

static const struct pbl_panel_timing s_timing = {
.clock_hz = 746268, .hactive = 200, .hback_porch = 2, .hfront_porch = 6,
.vactive = 228, .vfront_porch = 6, .enable_start = 3, .enable_end = 99,
};
PBL_PANEL_JDI_MIP_DEFINE(s_panel, "panel", &s_timing, PBL_GPIO(SF32LB_GPIO1, 28, 0),
PBL_PWM(&s_lptim2.ctrl, 0, PBL_PWM_HZ(60), 0));
#define SF32LB_GPIO1
Port GPIO1 (PA).
Definition sf32lb.h:46
#define PBL_GPIO_ACTIVE_LOW
The pin is active when low.
Definition gpio.h:50
#define PBL_GPIO(_port, _pin, _flags)
Initializer for a struct pbl_gpio.
Definition gpio.h:148
#define PBL_PANEL_JDI_MIP_DEFINE(sym, _name, _timing, _vddp, _vlcd, _vcom)
Define a JDI memory-in-pixel panel.
Definition jdi_mip.h:70
uint32_t clock_hz
Horizontal clock frequency (HCK), in Hz.
Definition panel.h:44
Timing of a panel scanned by its controller.
Definition panel.h:42
#define PBL_PWM_HZ(hz)
Period of a hz Hz output, in nanoseconds.
Definition pwm.h:51
#define PBL_PWM(_ctrl, _channel, _period, _flags)
Initializer for a struct pbl_pwm.
Definition pwm.h:96

Data Structure Documentation

◆ pbl_panel_jdi_mip

struct pbl_panel_jdi_mip

JDI memory-in-pixel panel.

Data Fields
struct pbl_panel panel Panel.
struct pbl_panel_jdi_mip_state * state Driver runtime state.
struct pbl_pwm vcom VCOM inversion signal.
struct pbl_gpio vddp VDDP supply enable.
struct pbl_gpio vlcd VLCD supply enable.

Macro Definition Documentation

◆ PBL_PANEL_JDI_MIP_DEFINE

#define PBL_PANEL_JDI_MIP_DEFINE (   sym,
  _name,
  _timing,
  _vddp,
  _vlcd,
  _vcom 
)
Value:
static struct pbl_panel_jdi_mip_state sym##_jdi_state; \
const struct pbl_panel_jdi_mip sym = { \
.panel = PBL_PANEL_INIT(sym, _name, pbl_panel_jdi_mip_init, &pbl_panel_jdi_mip_ops, nullptr, \
.state = &sym##_jdi_state, \
.vddp = _vddp, \
.vlcd = _vlcd, \
.vcom = _vcom, \
}; \
PBL_DEVICE_REGISTER(sym, &sym.panel.dev)
#define PBL_DEVICE_STATE_DEFINE(sym)
Define the runtime state of device instance sym.
Definition device.h:109
struct pbl_panel panel
Panel.
Definition jdi_mip.h:44
struct pbl_gpio vddp
VDDP supply enable.
Definition jdi_mip.h:48
JDI memory-in-pixel panel.
Definition jdi_mip.h:42
struct pbl_device dev
Device.
Definition panel.h:83
#define PBL_PANEL_INIT(sym, _name, _init, _ops, _deps, _timing, _bus_format)
Initializer for the struct pbl_panel of panel sym, for the PBL_*_DEFINE() macro of a driver,...
Definition panel.h:104
@ 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,...
Definition panel.h:34

Define a JDI memory-in-pixel panel.

Parameters
symSymbol of the panel.
_nameName.
_timingTiming, a struct pbl_panel_timing.
_vddpVDDP supply enable, from PBL_GPIO().
_vlcdVLCD supply enable, from PBL_GPIO().
_vcomVCOM inversion signal, from PBL_PWM(), at the VCOM frequency.