| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * MIPI DSI Bus |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright (C) 2012-2013, Samsung Electronics, Co., Ltd. |
|---|
| 5 | 6 | * Andrzej Hajda <a.hajda@samsung.com> |
|---|
| 6 | | - * |
|---|
| 7 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 8 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 9 | | - * published by the Free Software Foundation. |
|---|
| 10 | 7 | */ |
|---|
| 11 | 8 | |
|---|
| 12 | 9 | #ifndef __DRM_MIPI_DSI_H__ |
|---|
| .. | .. |
|---|
| 16 | 13 | |
|---|
| 17 | 14 | struct mipi_dsi_host; |
|---|
| 18 | 15 | struct mipi_dsi_device; |
|---|
| 16 | +struct drm_dsc_picture_parameter_set; |
|---|
| 19 | 17 | |
|---|
| 20 | 18 | /* request ACK from peripheral */ |
|---|
| 21 | 19 | #define MIPI_DSI_MSG_REQ_ACK BIT(0) |
|---|
| .. | .. |
|---|
| 180 | 178 | * @format: pixel format for video mode |
|---|
| 181 | 179 | * @lanes: number of active data lanes |
|---|
| 182 | 180 | * @mode_flags: DSI operation mode related flags |
|---|
| 181 | + * @hs_rate: maximum lane frequency for high speed mode in hertz, this should |
|---|
| 182 | + * be set to the real limits of the hardware, zero is only accepted for |
|---|
| 183 | + * legacy drivers |
|---|
| 184 | + * @lp_rate: maximum lane frequency for low power mode in hertz, this should |
|---|
| 185 | + * be set to the real limits of the hardware, zero is only accepted for |
|---|
| 186 | + * legacy drivers |
|---|
| 183 | 187 | */ |
|---|
| 184 | 188 | struct mipi_dsi_device { |
|---|
| 185 | 189 | struct mipi_dsi_host *host; |
|---|
| .. | .. |
|---|
| 190 | 194 | unsigned int lanes; |
|---|
| 191 | 195 | enum mipi_dsi_pixel_format format; |
|---|
| 192 | 196 | unsigned long mode_flags; |
|---|
| 197 | + unsigned long hs_rate; |
|---|
| 198 | + unsigned long lp_rate; |
|---|
| 193 | 199 | }; |
|---|
| 194 | 200 | |
|---|
| 195 | 201 | #define MIPI_DSI_MODULE_PREFIX "mipi-dsi:" |
|---|
| .. | .. |
|---|
| 235 | 241 | int mipi_dsi_turn_on_peripheral(struct mipi_dsi_device *dsi); |
|---|
| 236 | 242 | int mipi_dsi_set_maximum_return_packet_size(struct mipi_dsi_device *dsi, |
|---|
| 237 | 243 | u16 value); |
|---|
| 244 | +ssize_t mipi_dsi_compression_mode(struct mipi_dsi_device *dsi, bool enable); |
|---|
| 245 | +ssize_t mipi_dsi_picture_parameter_set(struct mipi_dsi_device *dsi, |
|---|
| 246 | + const struct drm_dsc_picture_parameter_set *pps); |
|---|
| 238 | 247 | |
|---|
| 239 | 248 | ssize_t mipi_dsi_generic_write(struct mipi_dsi_device *dsi, const void *payload, |
|---|
| 240 | 249 | size_t size); |
|---|
| .. | .. |
|---|
| 286 | 295 | u16 brightness); |
|---|
| 287 | 296 | int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi, |
|---|
| 288 | 297 | u16 *brightness); |
|---|
| 298 | +int mipi_dsi_dcs_set_display_brightness_large(struct mipi_dsi_device *dsi, |
|---|
| 299 | + u16 brightness); |
|---|
| 300 | +int mipi_dsi_dcs_get_display_brightness_large(struct mipi_dsi_device *dsi, |
|---|
| 301 | + u16 *brightness); |
|---|
| 289 | 302 | |
|---|
| 290 | 303 | /** |
|---|
| 291 | 304 | * struct mipi_dsi_driver - DSI driver |
|---|