|
struct mipi_dsi_device - DSI peripheral device @host: DSI host for this peripheral @dev: driver model device node for this peripheral @attached: the DSI device has been successfully attached
@channel: virtual channel assigned to the peripheral @format: pixel format for video mode @lanes: number of active data lanes @mode_flags: DSI operation mode related flags @hs_rate: maximum lane frequency for high speed mode in hertz, this should be set to the real limits of the hardware, zero is only accepted for legacy drivers @lp_rate: maximum lane frequency for low power mode in hertz, this should be set to the real limits of the hardware, zero is only accepted for legacy drivers @dsc: panel/bridge DSC pps payload to be sent
|
| #define | MIPI_DSI_MODULE_PREFIX "mipi-dsi:" |
| |
| #define | to_mipi_dsi_device(__dev) container_of_const(__dev, struct mipi_dsi_device, dev) |
| |
| #define | dev_is_mipi_dsi(dev) ((dev)->bus == &mipi_dsi_bus_type) |
| |
| #define | mipi_dsi_msleep(ctx, delay) |
| |
| #define | mipi_dsi_usleep_range(ctx, min, max) |
| |
| #define | MIPI_DSI_DCS_POWER_MODE_DISPLAY (1 << 2) |
| |
| #define | MIPI_DSI_DCS_POWER_MODE_NORMAL (1 << 3) |
| |
| #define | MIPI_DSI_DCS_POWER_MODE_SLEEP (1 << 4) |
| |
| #define | MIPI_DSI_DCS_POWER_MODE_PARTIAL (1 << 5) |
| |
| #define | MIPI_DSI_DCS_POWER_MODE_IDLE (1 << 6) |
| |
| #define | mipi_dsi_generic_write_seq_multi(ctx, seq...) |
| |
| #define | mipi_dsi_generic_write_var_seq_multi(ctx, seq...) |
| |
| #define | mipi_dsi_dcs_write_seq_multi(ctx, cmd, seq...) |
| |
| #define | mipi_dsi_dcs_write_var_seq_multi(ctx, cmd, seq...) |
| |
| #define | mipi_dsi_dual(_func, _ctx, _dsi1, _dsi2, ...) |
| |
| #define | mipi_dsi_dual_generic_write_seq_multi(_ctx, _dsi1, _dsi2, _seq...) |
| |
| #define | mipi_dsi_dual_dcs_write_seq_multi(_ctx, _dsi1, _dsi2, _cmd, _seq...) |
| |
| #define | mipi_dsi_driver_register(driver) mipi_dsi_driver_register_full(driver, THIS_MODULE) |
| |
| #define | module_mipi_dsi_driver(__mipi_dsi_driver) |
| |
| enum | mipi_dsi_compression_algo { MIPI_DSI_COMPRESSION_DSC = 0
, MIPI_DSI_COMPRESSION_VENDOR = 3
} |
| |
| enum | mipi_dsi_dcs_tear_mode { MIPI_DSI_DCS_TEAR_MODE_VBLANK
, MIPI_DSI_DCS_TEAR_MODE_VHBLANK
} |
| |
| const struct bus_type | mipi_dsi_bus_type |
| |
| struct mipi_dsi_device * | mipi_dsi_device_register_full (struct mipi_dsi_host *host, const struct mipi_dsi_device_info *info) |
| |
| void | mipi_dsi_device_unregister (struct mipi_dsi_device *dsi) |
| |
| struct mipi_dsi_device * | devm_mipi_dsi_device_register_full (struct device *dev, struct mipi_dsi_host *host, const struct mipi_dsi_device_info *info) |
| |
| struct mipi_dsi_device * | of_find_mipi_dsi_device_by_node (struct device_node *np) |
| |
| int | mipi_dsi_attach (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_detach (struct mipi_dsi_device *dsi) |
| |
| int | devm_mipi_dsi_attach (struct device *dev, struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_shutdown_peripheral (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_turn_on_peripheral (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_set_maximum_return_packet_size (struct mipi_dsi_device *dsi, u16 value) |
| |
| int | mipi_dsi_compression_mode (struct mipi_dsi_device *dsi, bool enable) |
| |
| int | mipi_dsi_compression_mode_ext (struct mipi_dsi_device *dsi, bool enable, enum mipi_dsi_compression_algo algo, unsigned int pps_selector) |
| |
| int | mipi_dsi_picture_parameter_set (struct mipi_dsi_device *dsi, const struct drm_dsc_picture_parameter_set *pps) |
| |
| void | mipi_dsi_compression_mode_ext_multi (struct mipi_dsi_multi_context *ctx, bool enable, enum mipi_dsi_compression_algo algo, unsigned int pps_selector) |
| |
| void | mipi_dsi_compression_mode_multi (struct mipi_dsi_multi_context *ctx, bool enable) |
| |
| void | mipi_dsi_picture_parameter_set_multi (struct mipi_dsi_multi_context *ctx, const struct drm_dsc_picture_parameter_set *pps) |
| |
| ssize_t | mipi_dsi_generic_write (struct mipi_dsi_device *dsi, const void *payload, size_t size) |
| |
| void | mipi_dsi_generic_write_multi (struct mipi_dsi_multi_context *ctx, const void *payload, size_t size) |
| |
| void | mipi_dsi_dual_generic_write_multi (struct mipi_dsi_multi_context *ctx, struct mipi_dsi_device *dsi1, struct mipi_dsi_device *dsi2, const void *payload, size_t size) |
| |
| ssize_t | mipi_dsi_generic_read (struct mipi_dsi_device *dsi, const void *params, size_t num_params, void *data, size_t size) |
| |
| u32 | drm_mipi_dsi_get_input_bus_fmt (enum mipi_dsi_pixel_format dsi_format) |
| |
| ssize_t | mipi_dsi_dcs_write_buffer (struct mipi_dsi_device *dsi, const void *data, size_t len) |
| |
| int | mipi_dsi_dcs_write_buffer_chatty (struct mipi_dsi_device *dsi, const void *data, size_t len) |
| |
| void | mipi_dsi_dcs_write_buffer_multi (struct mipi_dsi_multi_context *ctx, const void *data, size_t len) |
| |
| void | mipi_dsi_dual_dcs_write_buffer_multi (struct mipi_dsi_multi_context *ctx, struct mipi_dsi_device *dsi1, struct mipi_dsi_device *dsi2, const void *data, size_t len) |
| |
| ssize_t | mipi_dsi_dcs_write (struct mipi_dsi_device *dsi, u8 cmd, const void *data, size_t len) |
| |
| ssize_t | mipi_dsi_dcs_read (struct mipi_dsi_device *dsi, u8 cmd, void *data, size_t len) |
| |
| void | mipi_dsi_dcs_read_multi (struct mipi_dsi_multi_context *ctx, u8 cmd, void *data, size_t len) |
| |
| int | mipi_dsi_dcs_nop (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_dcs_soft_reset (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_dcs_get_power_mode (struct mipi_dsi_device *dsi, u8 *mode) |
| |
| int | mipi_dsi_dcs_get_pixel_format (struct mipi_dsi_device *dsi, u8 *format) |
| |
| int | mipi_dsi_dcs_enter_sleep_mode (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_dcs_exit_sleep_mode (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_dcs_set_display_off (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_dcs_set_display_on (struct mipi_dsi_device *dsi) |
| |
| int | mipi_dsi_dcs_set_column_address (struct mipi_dsi_device *dsi, u16 start, u16 end) |
| |
| int | mipi_dsi_dcs_set_page_address (struct mipi_dsi_device *dsi, u16 start, u16 end) |
| |
| int | mipi_dsi_dcs_set_tear_on (struct mipi_dsi_device *dsi, enum mipi_dsi_dcs_tear_mode mode) |
| |
| int | mipi_dsi_dcs_set_pixel_format (struct mipi_dsi_device *dsi, u8 format) |
| |
| int | mipi_dsi_dcs_set_tear_scanline (struct mipi_dsi_device *dsi, u16 scanline) |
| |
| int | mipi_dsi_dcs_set_display_brightness (struct mipi_dsi_device *dsi, u16 brightness) |
| |
| int | mipi_dsi_dcs_get_display_brightness (struct mipi_dsi_device *dsi, u16 *brightness) |
| |
| int | mipi_dsi_dcs_set_display_brightness_large (struct mipi_dsi_device *dsi, u16 brightness) |
| |
| int | mipi_dsi_dcs_get_display_brightness_large (struct mipi_dsi_device *dsi, u16 *brightness) |
| |
| void | mipi_dsi_dcs_nop_multi (struct mipi_dsi_multi_context *ctx) |
| |
| void | mipi_dsi_dcs_enter_sleep_mode_multi (struct mipi_dsi_multi_context *ctx) |
| |
| void | mipi_dsi_dcs_exit_sleep_mode_multi (struct mipi_dsi_multi_context *ctx) |
| |
| void | mipi_dsi_dcs_set_display_off_multi (struct mipi_dsi_multi_context *ctx) |
| |
| void | mipi_dsi_dcs_set_display_on_multi (struct mipi_dsi_multi_context *ctx) |
| |
| void | mipi_dsi_dcs_set_tear_on_multi (struct mipi_dsi_multi_context *ctx, enum mipi_dsi_dcs_tear_mode mode) |
| |
| void | mipi_dsi_turn_on_peripheral_multi (struct mipi_dsi_multi_context *ctx) |
| |
| void | mipi_dsi_dcs_soft_reset_multi (struct mipi_dsi_multi_context *ctx) |
| |
| void | mipi_dsi_dcs_set_display_brightness_multi (struct mipi_dsi_multi_context *ctx, u16 brightness) |
| |
| void | mipi_dsi_dcs_set_pixel_format_multi (struct mipi_dsi_multi_context *ctx, u8 format) |
| |
| void | mipi_dsi_dcs_set_column_address_multi (struct mipi_dsi_multi_context *ctx, u16 start, u16 end) |
| |
| void | mipi_dsi_dcs_set_page_address_multi (struct mipi_dsi_multi_context *ctx, u16 start, u16 end) |
| |
| void | mipi_dsi_dcs_set_tear_scanline_multi (struct mipi_dsi_multi_context *ctx, u16 scanline) |
| |
| void | mipi_dsi_dcs_set_tear_off_multi (struct mipi_dsi_multi_context *ctx) |
| |
| void | mipi_dsi_shutdown_peripheral_multi (struct mipi_dsi_multi_context *ctx) |
| |
| int | mipi_dsi_driver_register_full (struct mipi_dsi_driver *driver, struct module *owner) |
| |
| void | mipi_dsi_driver_unregister (struct mipi_dsi_driver *driver) |
| |
| #define mipi_dsi_dual |
( |
|
_func, |
|
|
|
_ctx, |
|
|
|
_dsi1, |
|
|
|
_dsi2, |
|
|
|
... |
|
) |
| |
Value: do { \
_ctxcpy->
dsi = (_dsi1); \
(_func)(_ctxcpy, ##__VA_ARGS__); \
_ctxcpy->
dsi = (_dsi2); \
(_func)(_ctxcpy, ##__VA_ARGS__); \
} while (0)
Definition drm_mipi_dsi.h:203
struct mipi_dsi_device * dsi
Definition drm_mipi_dsi.h:207
mipi_dsi_dual - send the same MIPI DSI command to two interfaces
This macro will send the specified MIPI DSI command twice, once per each of the two interfaces supplied. This is useful for reducing duplication of code in panel drivers which use two parallel serial interfaces.
Note that the _func parameter cannot accept a macro such as mipi_dsi_generic_write_multi() or mipi_dsi_dcs_write_buffer_multi(). See mipi_dsi_dual_generic_write_multi() and mipi_dsi_dual_dcs_write_buffer_multi() instead.
WARNING: This macro reuses the _func argument and the optional trailing arguments twice each, which may cause unintended side effects. For example, adding the postfix increment ++ operator to one of the arguments to be passed to _func will cause the variable to be incremented twice instead of once and the variable will be its original value + 1 when sent to _dsi2.
@_func: MIPI DSI function to pass context and arguments into @_ctx: Context for multiple DSI transactions @_dsi1: First DSI interface to act as recipient of the MIPI DSI command @_dsi2: Second DSI interface to act as recipient of the MIPI DSI command ...: Arguments to pass to MIPI DSI function or macro
| #define mipi_dsi_dual_dcs_write_seq_multi |
( |
|
_ctx, |
|
|
|
_dsi1, |
|
|
|
_dsi2, |
|
|
|
_cmd, |
|
|
|
_seq... |
|
) |
| |
Value: do { \
static const u8 d[] = { _cmd, _seq }; \
mipi_dsi_dual_dcs_write_buffer_multi(_ctx, _dsi1, _dsi2,
d, \
} while (0)
mipi_dsi_dual_dcs_write_seq_multi - transmit a DCS command with payload to two dsi interfaces, one after the other
This macro will send the specified DCS command with payload twice, once per each of the two interfaces supplied. This is useful for reducing duplication of code in panel drivers which use two parallel serial interfaces.
Note that if an error occurs while transmitting the payload to the first DSI interface, the payload will not be sent to the second DSI interface.
This macro will print errors for you and error handling is optimized for callers that call this multiple times in a row.
@_ctx: Context for multiple DSI transactions @_dsi1: First DSI interface to act as recipient of packet @_dsi2: Second DSI interface to act as recipient of packet @_cmd: Command @_seq: buffer containing the payload
| #define mipi_dsi_dual_generic_write_seq_multi |
( |
|
_ctx, |
|
|
|
_dsi1, |
|
|
|
_dsi2, |
|
|
|
_seq... |
|
) |
| |
Value: do { \
static const u8 d[] = { _seq }; \
mipi_dsi_dual_generic_write_multi(_ctx, _dsi1, _dsi2,
d, \
} while (0)
mipi_dsi_dual_generic_write_seq_multi - transmit data using a generic write packet to two dsi interfaces, one after the other
This macro will send the specified generic packet twice, once per each of the two interfaces supplied. This is useful for reducing duplication of code in panel drivers which use two parallel serial interfaces.
Note that if an error occurs while transmitting the packet to the first DSI interface, the packet will not be sent to the second DSI interface.
This macro will print errors for you and error handling is optimized for callers that call this multiple times in a row.
@_ctx: Context for multiple DSI transactions @_dsi1: First DSI interface to act as recipient of packet @_dsi2: Second DSI interface to act as recipient of packet @_seq: buffer containing the payload