blob: 24290c86302c2ec216f2305aac4d53b232646833 [file] [log] [blame]
Dhaval Patel4dc93492016-10-27 23:51:22 -07001QTI mdss-dsi-panel
2
3mdss-dsi-panel is a dsi panel device which supports panels that
4are compatible with MIPI display serial interface specification.
5
6Required properties:
7- compatible: This property applies to DSI V2 panels only.
8 This property should not be added for panels
9 that work based on version "V6.0"
10 DSI panels that are of different versions
11 are initialized by the drivers for dsi controller.
12 This property specifies the version
13 for DSI HW that this panel will work with
14 "qcom,dsi-panel-v2" = DSI V2.0
15- status: This property applies to DSI V2 panels only.
16 This property should not be added for panels
17 that work based on version "V6.0"
18 DSI panels that are of different versions
19 are initialized by the drivers for dsi controller.
20 A string that has to be set to "okay/ok"
21 to enable the panel driver. By default this property
22 will be set to "disable". Will be set to "ok/okay"
23 status for specific platforms.
24- qcom,mdss-dsi-panel-controller: Specifies the phandle for the DSI controller that
25 this panel will be mapped to.
26- qcom,mdss-dsi-panel-width: Specifies panel width in pixels.
27- qcom,mdss-dsi-panel-height: Specifies panel height in pixels.
28- qcom,mdss-dsi-bpp: Specifies the panel bits per pixel.
29 3 = for rgb111
30 8 = for rgb332
31 12 = for rgb444
32 16 = for rgb565
33 18 = for rgb666
34 24 = for rgb888
35- qcom,mdss-dsi-panel-destination: A string that specifies the destination display for the panel.
36 "display_1" = DISPLAY_1
37 "display_2" = DISPLAY_2
Shashank Babu Chinta Venkata690e6a02017-05-02 10:58:01 -070038- qcom,mdss-dsi-panel-phy-timings: An array of length 12 that specifies the PHY
Dhaval Patel4dc93492016-10-27 23:51:22 -070039 timing settings for the panel.
40- qcom,mdss-dsi-panel-timings-8996: An array of length 40 char that specifies the 8996 PHY lane
41 timing settings for the panel.
42- qcom,mdss-dsi-on-command: A byte stream formed by multiple dcs packets base on
43 qcom dsi controller protocol.
44 byte 0: dcs data type
45 byte 1: set to indicate this is an individual packet
46 (no chain)
47 byte 2: virtual channel number
48 byte 3: expect ack from client (dcs read command)
49 byte 4: wait number of specified ms after dcs command
50 transmitted
51 byte 5, 6: 16 bits length in network byte order
52 byte 7 and beyond: number byte of payload
53- qcom,mdss-dsi-off-command: A byte stream formed by multiple dcs packets base on
54 qcom dsi controller protocol.
55 byte 0: dcs data type
56 byte 1: set to indicate this is an individual packet
57 (no chain)
58 byte 2: virtual channel number
59 byte 3: expect ack from client (dcs read command)
60 byte 4: wait number of specified ms after dcs command
61 transmitted
62 byte 5, 6: 16 bits length in network byte order
63 byte 7 and beyond: number byte of payload
64- qcom,mdss-dsi-post-panel-on-command: same as "qcom,mdss-dsi-on-command" except commands are
65 sent after displaying an image.
66
67Note, if a short DCS packet(i.e packet with Byte 0:dcs data type as 05) mentioned in
68qcom,mdss-dsi-on-command/qcom,mdss-dsi-off-command stream fails to transmit,
69then 3 options can be tried.
70 1. Send the packet as a long packet instead
71 Byte 0: dcs data type = 05 (DCS short Packet)
72 Byte 0: dcs data type = 29 (DCS long Packet)
73 2. Send the packet in one burst by prepending with the next packet in packet stream
74 Byte 1 = 01 (indicates this is an individual packet)
75 Byte 1 = 00 (indicates this will be appended to the next
76 individual packet in the packet stream)
77 3. Prepend a NULL packet to the short packet and send both in one burst instead of
78 combining multiple short packets and sending them in one burst.
79
80Optional properties:
81- qcom,mdss-dsi-panel-name: A string used as a descriptive name of the panel
Padmanabhan Komanduruee89d212016-12-19 12:51:31 +053082- qcom,mdss-dsi-panel-phy-timings: An array of length 'n' char that specifies the DSI PHY lane
83 timing settings for the panel. This is specific to SDE DRM driver.
84 The value of 'n' depends on the DSI PHY h/w revision and parsing this
85 property properly will be taken care in the DSI PHY DRM driver.
Dhaval Patel4dc93492016-10-27 23:51:22 -070086- qcom,cmd-sync-wait-broadcast: Boolean used to broadcast dcs command to panels.
87- qcom,mdss-dsi-fbc-enable: Boolean used to enable frame buffer compression mode.
88- qcom,mdss-dsi-fbc-slice-height: Slice height(in lines) of compressed block.
89 Expressed as power of 2. To set as 128 lines,
90 this should be set to 7.
91- qcom,mdss-dsi-fbc-2d-pred-mode: Boolean to enable 2D map prediction.
92- qcom,mdss-dsi-fbc-ver2-mode: Boolean to enable FBC 2.0 that supports 1/3
93 compression.
94- qcom,mdss-dsi-fbc-bpp: Compressed bpp supported by the panel.
95 Specified color order is used as default value.
96- qcom,mdss-dsi-fbc-packing: Component packing.
97 0 = default value.
98- qcom,mdss-dsi-fbc-quant-error: Boolean used to enable quantization error calculation.
99- qcom,mdss-dsi-fbc-bias: Bias for CD.
100 0 = default value.
101- qcom,mdss-dsi-fbc-pat-mode: Boolean used to enable PAT mode.
102- qcom,mdss-dsi-fbc-vlc-mode: Boolean used to enable VLC mode.
103- qcom,mdss-dsi-fbc-bflc-mode: Boolean used to enable BFLC mode.
104- qcom,mdss-dsi-fbc-h-line-budget: Per line extra budget.
105 0 = default value.
106- qcom,mdss-dsi-fbc-budget-ctrl: Extra budget level.
107 0 = default value.
108- qcom,mdss-dsi-fbc-block-budget: Per block budget.
109 0 = default value.
110- qcom,mdss-dsi-fbc-lossless-threshold: Lossless mode threshold.
111 0 = default value.
112- qcom,mdss-dsi-fbc-lossy-threshold: Lossy mode threshold.
113 0 = default value.
114- qcom,mdss-dsi-fbc-rgb-threshold: Lossy RGB threshold.
115 0 = default value.
116- qcom,mdss-dsi-fbc-lossy-mode-idx: Lossy mode index value.
117 0 = default value.
118- qcom,mdss-dsi-fbc-max-pred-err: Max quantization prediction error.
119 0 = default value
120- qcom,mdss-dsi-h-back-porch: Horizontal back porch value in pixel.
121 6 = default value.
122- qcom,mdss-dsi-h-front-porch: Horizontal front porch value in pixel.
123 6 = default value.
124- qcom,mdss-dsi-h-pulse-width: Horizontal pulse width.
125 2 = default value.
126- qcom,mdss-dsi-h-sync-skew: Horizontal sync skew value.
127 0 = default value.
128- qcom,mdss-dsi-v-back-porch: Vertical back porch value in pixel.
129 6 = default value.
130- qcom,mdss-dsi-v-front-porch: Vertical front porch value in pixel.
131 6 = default value.
132- qcom,mdss-dsi-v-pulse-width: Vertical pulse width.
133 2 = default value.
134- qcom,mdss-dsi-h-left-border: Horizontal left border in pixel.
135 0 = default value
136- qcom,mdss-dsi-h-right-border: Horizontal right border in pixel.
137 0 = default value
138- qcom,mdss-dsi-v-top-border: Vertical top border in pixel.
139 0 = default value
140- qcom,mdss-dsi-v-bottom-border: Vertical bottom border in pixel.
141 0 = default value
142- qcom,mdss-dsi-underflow-color: Specifies the controller settings for the
143 panel under flow color.
144 0xff = default value.
145- qcom,mdss-dsi-border-color: Defines the border color value if border is present.
146 0 = default value.
Dhaval Patelf5cc5a32017-07-10 17:33:23 -0700147- qcom,mdss-dsi-panel-jitter: Panel jitter value is expressed in terms of numerator
148 and denominator. It contains two u32 values - numerator
149 followed by denominator. The jitter configurition causes
150 the early wakeup if panel needs to adjust before vsync.
151 Default jitter value is 2.0%. Max allowed value is 10%.
Dhaval Patel60e1ff52017-02-18 21:03:40 -0800152- qcom,mdss-dsi-panel-prefill-lines: An integer value defines the panel prefill lines required to
153 calculate the backoff time of rsc.
154 Default value is 16 lines. Max allowed value is vtotal.
Dhaval Patel4dc93492016-10-27 23:51:22 -0700155- qcom,mdss-dsi-pan-enable-dynamic-fps: Boolean used to enable change in frame rate dynamically.
156- qcom,mdss-dsi-pan-fps-update: A string that specifies when to change the frame rate.
157 "dfps_suspend_resume_mode"= FPS change request is
158 implemented during suspend/resume.
159 "dfps_immediate_clk_mode" = FPS change request is
160 implemented immediately using DSI clocks.
161 "dfps_immediate_porch_mode_hfp" = FPS change request is
162 implemented immediately by changing panel horizontal
163 front porch values.
164 "dfps_immediate_porch_mode_vfp" = FPS change request is
165 implemented immediately by changing panel vertical
166 front porch values.
167- qcom,min-refresh-rate: Minimum refresh rate supported by the panel.
168- qcom,max-refresh-rate: Maximum refresh rate supported by the panel. If max refresh
169 rate is not specified, then the frame rate of the panel in
170 qcom,mdss-dsi-panel-framerate is used.
171- qcom,mdss-dsi-bl-pmic-control-type: A string that specifies the implementation of backlight
172 control for this panel.
173 "bl_ctrl_pwm" = Backlight controlled by PWM gpio.
174 "bl_ctrl_wled" = Backlight controlled by WLED.
175 "bl_ctrl_dcs" = Backlight controlled by DCS commands.
176 other: Unknown backlight control. (default)
177- qcom,mdss-dsi-bl-pwm-pmi: Boolean to indicate that PWM control is through second pmic chip.
178- qcom,mdss-dsi-bl-pmic-bank-select: LPG channel for backlight.
179 Required if backlight pmic control type is PWM
180- qcom,mdss-dsi-bl-pmic-pwm-frequency: PWM period in microseconds.
181 Required if backlight pmic control type is PWM
182- qcom,mdss-dsi-pwm-gpio: PMIC gpio binding to backlight.
183 Required if backlight pmic control type is PWM
184- qcom,mdss-dsi-bl-min-level: Specifies the min backlight level supported by the panel.
185 0 = default value.
186- qcom,mdss-dsi-bl-max-level: Specifies the max backlight level supported by the panel.
187 255 = default value.
188- qcom,mdss-brightness-max-level: Specifies the max brightness level supported.
189 255 = default value.
190- qcom,mdss-dsi-interleave-mode: Specifies interleave mode.
191 0 = default value.
192- qcom,mdss-dsi-panel-type: Specifies the panel operating mode.
193 "dsi_video_mode" = enable video mode (default).
194 "dsi_cmd_mode" = enable command mode.
195- qcom,5v-boost-gpio: Specifies the panel gpio for display 5v boost.
196- qcom,mdss-dsi-te-check-enable: Boolean to enable Tear Check configuration.
Narendra Muppallad4081e12017-04-20 19:24:08 -0700197- qcom,mdss-dsi-te-using-wd: Boolean entry enables the watchdog timer support to generate the vsync signal
198 for command mode panel. By default, panel TE will be used to generate the vsync.
Dhaval Patel4dc93492016-10-27 23:51:22 -0700199- qcom,mdss-dsi-te-using-te-pin: Boolean to specify whether using hardware vsync.
200- qcom,mdss-dsi-te-pin-select: Specifies TE operating mode.
201 0 = TE through embedded dcs command
202 1 = TE through TE gpio pin. (default)
203- qcom,mdss-dsi-te-dcs-command: Inserts the dcs command.
204 1 = default value.
205- qcom,mdss-dsi-wr-mem-start: DCS command for write_memory_start.
206 0x2c = default value.
207- qcom,mdss-dsi-wr-mem-continue: DCS command for write_memory_continue.
208 0x3c = default value.
209- qcom,mdss-dsi-h-sync-pulse: Specifies the pulse mode option for the panel.
210 0 = Don't send hsa/he following vs/ve packet(default)
211 1 = Send hsa/he following vs/ve packet
212- qcom,mdss-dsi-hfp-power-mode: Boolean to determine DSI lane state during
213 horizontal front porch (HFP) blanking period.
214- qcom,mdss-dsi-hbp-power-mode: Boolean to determine DSI lane state during
215 horizontal back porch (HBP) blanking period.
216- qcom,mdss-dsi-hsa-power-mode: Boolean to determine DSI lane state during
217 horizontal sync active (HSA) mode.
218- qcom,mdss-dsi-last-line-interleave Boolean to determine if last line
219 interleave flag needs to be enabled.
220- qcom,mdss-dsi-bllp-eof-power-mode: Boolean to determine DSI lane state during
221 blanking low power period (BLLP) EOF mode.
222- qcom,mdss-dsi-bllp-power-mode: Boolean to determine DSI lane state during
223 blanking low power period (BLLP) mode.
224- qcom,mdss-dsi-traffic-mode: Specifies the panel traffic mode.
225 "non_burst_sync_pulse" = non burst with sync pulses (default).
226 "non_burst_sync_event" = non burst with sync start event.
227 "burst_mode" = burst mode.
228- qcom,mdss-dsi-pixel-packing: Specifies if pixel packing is used (in case of RGB666).
229 "tight" = Tight packing (default value).
230 "loose" = Loose packing.
231- qcom,mdss-dsi-virtual-channel-id: Specifies the virtual channel identefier.
232 0 = default value.
233- qcom,mdss-dsi-color-order: Specifies the R, G and B channel ordering.
234 "rgb_swap_rgb" = DSI_RGB_SWAP_RGB (default value)
235 "rgb_swap_rbg" = DSI_RGB_SWAP_RBG
236 "rgb_swap_brg" = DSI_RGB_SWAP_BRG
237 "rgb_swap_grb" = DSI_RGB_SWAP_GRB
238 "rgb_swap_gbr" = DSI_RGB_SWAP_GBR
239- qcom,mdss-dsi-lane-0-state: Boolean that specifies whether data lane 0 is enabled.
240- qcom,mdss-dsi-lane-1-state: Boolean that specifies whether data lane 1 is enabled.
241- qcom,mdss-dsi-lane-2-state: Boolean that specifies whether data lane 2 is enabled.
242- qcom,mdss-dsi-lane-3-state: Boolean that specifies whether data lane 3 is enabled.
243- qcom,mdss-dsi-t-clk-post: Specifies the byte clock cycles after mode switch.
244 0x03 = default value.
245- qcom,mdss-dsi-t-clk-pre: Specifies the byte clock cycles before mode switch.
246 0x24 = default value.
247- qcom,mdss-dsi-stream: Specifies the packet stream to be used.
248 0 = stream 0 (default)
249 1 = stream 1
250- qcom,mdss-dsi-mdp-trigger: Specifies the trigger mechanism to be used for MDP path.
251 "none" = no trigger
252 "trigger_te" = Tear check signal line used for trigger
253 "trigger_sw" = Triggered by software (default)
254 "trigger_sw_te" = Software trigger and TE
255- qcom,mdss-dsi-dma-trigger: Specifies the trigger mechanism to be used for DMA path.
256 "none" = no trigger
257 "trigger_te" = Tear check signal line used for trigger
258 "trigger_sw" = Triggered by software (default)
259 "trigger_sw_seof" = Software trigger and start/end of frame trigger.
260 "trigger_sw_te" = Software trigger and TE
261- qcom,mdss-dsi-panel-framerate: Specifies the frame rate for the panel.
262 60 = 60 frames per second (default)
263- qcom,mdss-dsi-panel-clockrate: A 64 bit value specifies the panel clock speed in Hz.
264 0 = default value.
265- qcom,mdss-mdp-transfer-time-us: Specifies the dsi transfer time for command mode
266 panels in microseconds. Driver uses this number to adjust
267 the clock rate according to the expected transfer time.
268 Increasing this value would slow down the mdp processing
269 and can result in slower performance.
270 Decreasing this value can speed up the mdp processing,
271 but this can also impact power consumption.
272 As a rule this time should not be higher than the time
273 that would be expected with the processing at the
274 dsi link rate since anyways this would be the maximum
275 transfer time that could be achieved.
276 If ping pong split enabled, this time should not be higher
277 than two times the dsi link rate time.
278 14000 = default value.
279- qcom,mdss-dsi-on-command-state: String that specifies the ctrl state for sending ON commands.
280 "dsi_lp_mode" = DSI low power mode (default)
281 "dsi_hs_mode" = DSI high speed mode
282- qcom,mdss-dsi-off-command-state: String that specifies the ctrl state for sending OFF commands.
283 "dsi_lp_mode" = DSI low power mode (default)
284 "dsi_hs_mode" = DSI high speed mode
285- qcom,mdss-dsi-post-mode-switch-on-command-state: String that specifies the ctrl state for sending ON commands post mode switch.
286 "dsi_lp_mode" = DSI low power mode (default)
287 "dsi_hs_mode" = DSI high speed mode
288- qcom,mdss-pan-physical-width-dimension: Specifies panel physical width in mm which corresponds
289 to the physical width in the framebuffer information.
290- qcom,mdss-pan-physical-height-dimension: Specifies panel physical height in mm which corresponds
291 to the physical height in the framebuffer information.
292- qcom,mdss-dsi-mode-sel-gpio-state: String that specifies the lcd mode for panel
293 (such as single-port/dual-port), if qcom,panel-mode-gpio
294 binding is defined in dsi controller.
295 "dual_port" = Set GPIO to LOW
296 "single_port" = Set GPIO to HIGH
297 "high" = Set GPIO to HIGH
298 "low" = Set GPIO to LOW
299 The default value is "dual_port".
300- qcom,mdss-tear-check-disable: Boolean to disable mdp tear check. Tear check is enabled by default to avoid
301 tearing. Other tear-check properties are ignored if this property is present.
302 The below tear check configuration properties can be individually tuned if
303 tear check is enabled.
304- qcom,mdss-tear-check-sync-cfg-height: Specifies the vertical total number of lines.
305 The default value is 0xfff0.
306- qcom,mdss-tear-check-sync-init-val: Specifies the init value at which the read pointer gets loaded
307 at vsync edge. The reader pointer refers to the line number of
308 panel buffer that is currently being updated.
309 The default value is panel height.
310- qcom,mdss-tear-check-sync-threshold-start:
311 Allows the first ROI line write to an panel when read pointer is
312 between the range of ROI start line and ROI start line plus this
313 setting.
314 The default value is 4.
315- qcom,mdss-tear-check-sync-threshold-continue:
316 The minimum number of lines the write pointer needs to be
317 above the read pointer so that it is safe to write to the panel.
318 (This check is not done for the first ROI line write of an update)
319 The default value is 4.
320- qcom,mdss-tear-check-start-pos: Specify the y position from which the start_threshold value is
321 added and write is kicked off if the read pointer falls within that
322 region.
323 The default value is panel height.
324- qcom,mdss-tear-check-rd-ptr-trigger-intr:
325 Specify the read pointer value at which an interrupt has to be
326 generated.
327 The default value is panel height + 1.
328- qcom,mdss-tear-check-frame-rate: Specify the value to be a real frame rate(fps) x 100 factor to tune the
329 timing of TE simulation with more precision.
330 The default value is 6000 with 60 fps.
331- qcom,mdss-dsi-reset-sequence: An array that lists the
332 sequence of reset gpio values and sleeps
333 Each command will have the format defined
334 as below:
335 --> Reset GPIO value
336 --> Sleep value (in ms)
Lloyd Atkinsone53b7372017-03-22 17:16:47 -0400337- qcom,partial-update-enabled: String used to enable partial
Dhaval Patel4dc93492016-10-27 23:51:22 -0700338 panel update for command mode panels.
Lloyd Atkinsone53b7372017-03-22 17:16:47 -0400339 "none": partial update is disabled
340 "single_roi": default enable mode, only single roi is sent to panel
341 "dual_roi": two rois are merged into one big roi. Panel ddic should be able
342 to process two roi's along with the DCS command to send two rois.
Jeykumar Sankaran736d79d2017-10-05 17:44:24 -0700343 disabled if property is not specified. This property is specified
344 per timing node to support resolution restrictions.
Dhaval Patel4dc93492016-10-27 23:51:22 -0700345- qcom,mdss-dsi-horizontal-line-idle: List of width ranges (EC - SC) in pixels indicating
346 additional idle time in dsi clock cycles that is needed
347 to compensate for smaller line width.
348- qcom,partial-update-roi-merge: Boolean indicates roi combination is need
349 and function has been provided for dcs
Jeykumar Sankaran736d79d2017-10-05 17:44:24 -0700350 2A/2B command. This property is specified per timing node to support
351 resolution restrictions.
Dhaval Patel4dc93492016-10-27 23:51:22 -0700352- qcom,dcs-cmd-by-left: Boolean to indicate that dcs command are sent
353 through the left DSI controller only in a dual-dsi configuration
Ping Li898b1bf2017-02-09 18:03:28 -0800354- qcom,mdss-dsi-panel-hdr-enabled: Boolean to indicate HDR support in panel.
355- qcom,mdss-dsi-panel-hdr-color-primaries:
356 Array of 8 unsigned integers denoting chromaticity of panel.These
357 values are specified in nits units. The value range is 0 through 50000.
358 To obtain real chromacity, these values should be divided by factor of
359 50000. The structure of array is defined in below order
360 value 1: x value of white chromaticity of display panel
361 value 2: y value of white chromaticity of display panel
362 value 3: x value of red chromaticity of display panel
363 value 4: y value of red chromaticity of display panel
364 value 5: x value of green chromaticity of display panel
365 value 6: y value of green chromaticity of display panel
366 value 7: x value of blue chromaticity of display panel
367 value 8: y value of blue chromaticity of display panel
368- qcom,mdss-dsi-panel-peak-brightness: Maximum brightness supported by panel.In absence of maximum value
369 typical value becomes peak brightness. Value is specified in nits units.
370 To obtain real peak brightness, this value should be divided by factor of
371 10000.
372- qcom,mdss-dsi-panel-blackness-level: Blackness level supported by panel. Blackness level is defined as
373 ratio of peak brightness to contrast. Value is specified in nits units.
374 To obtain real blackness level, this value should be divided by factor of
375 10000.
Dhaval Patel4dc93492016-10-27 23:51:22 -0700376- qcom,mdss-dsi-lp11-init: Boolean used to enable the DSI clocks and data lanes (low power 11)
377 before issuing hardware reset line.
378- qcom,mdss-dsi-init-delay-us: Delay in microseconds(us) before performing any DSI activity in lp11
379 mode. This master delay (t_init_delay as per DSI spec) should be sum
380 of DSI internal delay to reach fuctional after power up and minimum
381 delay required by panel to reach functional.
382- qcom,mdss-dsi-rx-eot-ignore: Boolean used to enable ignoring end of transmission packets.
383- qcom,mdss-dsi-tx-eot-append: Boolean used to enable appending end of transmission packets.
384- qcom,ulps-enabled: Boolean to enable support for Ultra Low Power State (ULPS) mode.
385- qcom,suspend-ulps-enabled: Boolean to enable support for ULPS mode for panels during suspend state.
386- qcom,panel-roi-alignment: Specifies the panel ROI alignment restrictions on its
387 left, top, width, height alignments and minimum width and
Jeykumar Sankaran736d79d2017-10-05 17:44:24 -0700388 height values. This property is specified per timing node to support
389 resolution's alignment restrictions.
Dhaval Patel4dc93492016-10-27 23:51:22 -0700390- qcom,esd-check-enabled: Boolean used to enable ESD recovery feature.
391- qcom,mdss-dsi-panel-status-command: A byte stream formed by multiple dcs packets based on
392 qcom dsi controller protocol, to read the panel status.
393 This value is used to kick in the ESD recovery.
394 byte 0: dcs data type
395 byte 1: set to indicate this is an individual packet
396 (no chain)
397 byte 2: virtual channel number
398 byte 3: expect ack from client (dcs read command)
399 byte 4: wait number of specified ms after dcs command
400 transmitted
401 byte 5, 6: 16 bits length in network byte order
402 byte 7 and beyond: number byte of payload
403- qcom,mdss-dsi-panel-status-command-mode:
404 String that specifies the ctrl state for reading the panel status.
405 "dsi_lp_mode" = DSI low power mode
406 "dsi_hs_mode" = DSI high speed mode
Clarence Ip5f00c0602017-08-02 14:26:31 -0400407- qcom,mdss-dsi-lp1-command: An optional byte stream to request low
408 power mode on a panel
409- qcom,mdss-dsi-lp1-command-mode: String that specifies the ctrl state for
410 setting the panel power mode.
411 "dsi_lp_mode" = DSI low power mode
412 "dsi_hs_mode" = DSI high speed mode
413- qcom,mdss-dsi-lp2-command: An optional byte stream to request ultra
414 low power mode on a panel
415- qcom,mdss-dsi-lp2-command-mode: String that specifies the ctrl state for
416 setting the panel power mode.
417 "dsi_lp_mode" = DSI low power mode
418 "dsi_hs_mode" = DSI high speed mode
419- qcom,mdss-dsi-nolp-command: An optional byte stream to disable low
420 power and ultra low power panel modes
421- qcom,mdss-dsi-nolp-command-mode: String that specifies the ctrl state for
422 setting the panel power mode.
423 "dsi_lp_mode" = DSI low power mode
424 "dsi_hs_mode" = DSI high speed mode
Dhaval Patel4dc93492016-10-27 23:51:22 -0700425- qcom,mdss-dsi-panel-status-check-mode:Specifies the panel status check method for ESD recovery.
426 "bta_check" = Uses BTA to check the panel status
427 "reg_read" = Reads panel status register to check the panel status
428 "reg_read_nt35596" = Reads panel status register to check the panel
429 status for NT35596 panel.
430 "te_signal_check" = Uses TE signal behaviour to check the panel status
431- qcom,mdss-dsi-panel-status-read-length: Integer array that specify the expected read-back length of values
432 for each of panel registers. Each length is corresponding to number of
433 returned parameters of register introduced in specification.
434- qcom,mdss-dsi-panel-status-valid-params: Integer array that specify the valid returned values which need to check
435 for each of register.
436 Some panel need only check the first few values returned from panel.
437 So: if this property is the same to qcom,mdss-dsi-panel-status-read-length,
438 then just ignore this one.
439- qcom,mdss-dsi-panel-status-value: Multiple integer arrays, each specifies the values of the panel status register
440 which is used to check the panel status. The size of each array is the sum of
441 length specified in qcom,mdss-dsi-panel-status-read-length, and must be equal.
442 This can cover that Some panel may return several alternative values.
443- qcom,mdss-dsi-panel-max-error-count: Integer value that specifies the maximum number of errors from register
444 read that can be ignored before treating that the panel has gone bad.
445- qcom,dynamic-mode-switch-enabled: Boolean used to mention whether panel supports
446 dynamic switching from video mode to command mode
447 and vice versa.
448- qcom,dynamic-mode-switch-type: A string specifies how to perform dynamic mode switch.
449 If qcom,dynamic-mode-switch-enabled is set and no string specified, default value is
450 dynamic-switch-suspend-resume.
451 "dynamic-switch-suspend-resume"= Switch using suspend/resume. Panel will
452 go blank during transition.
453 "dynamic-switch-immediate"= Switch on next frame update. Panel will
454 not go blank for this transition.
455 "dynamic-resolution-switch-immediate"= Switch the panel resolution. Panel will
456 not go blank for this transition.
457- qcom,mdss-dsi-post-mode-switch-on-command: Multiple dcs packets used for turning on DSI panel
458 after panel has switch modes.
459 Refer to "qcom,mdss-dsi-on-command" section for adding commands.
460- qcom,video-to-cmd-mode-switch-commands: List of commands that need to be sent
461 to panel in order to switch from video mode to command mode dynamically.
462 Refer to "qcom,mdss-dsi-on-command" section for adding commands.
463- qcom,cmd-to-video-mode-switch-commands: List of commands that need to be sent
464 to panel in order to switch from command mode to video mode dynamically.
465 Refer to "qcom,mdss-dsi-on-command" section for adding commands.
466- qcom,send-pps-before-switch: Boolean propety to indicate when PPS commands should be sent,
467 either before or after switch commands during dynamic resolution
468 switch in DSC panels. If the property is not present, the default
469 behavior is to send PPS commands after the switch commands.
470- qcom,mdss-dsi-panel-orientation: String used to indicate orientation of panel
471 "180" = panel is flipped in both horizontal and vertical directions
472 "hflip" = panel is flipped in horizontal direction
473 "vflip" = panel is flipped in vertical direction
474- qcom,panel-ack-disabled: A boolean property to indicate, whether we need to wait for any ACK from the panel
475 for any commands that we send.
476- qcom,mdss-dsi-force-clock-lane-hs: Boolean to force dsi clock lanes to HS mode always.
477
478- qcom,compression-mode: Select compression mode for panel.
479 "fbc" - frame buffer compression
480 "dsc" - display stream compression.
481 If "dsc" compression is used then config subnodes needs to be defined.
482- qcom,panel-supply-entries: A node that lists the elements of the supply used to
483 power the DSI panel. There can be more than one instance
484 of this binding, in which case the entry would be appended
485 with the supply entry index. For a detailed description of
486 fields in the supply entry, refer to the qcom,ctrl-supply-entries
487 binding above.
Dhaval Patel4dc93492016-10-27 23:51:22 -0700488- qcom,mdss-dsc-version: An 8 bit value indicates the DSC version supported by panel. Bits[0.3]
489 provides information about minor version while Bits[4.7] provides
490 major version information. It supports only DSC rev 1(Major).1(Minor)
491 right now.
492- qcom,mdss-dsc-scr-version: Each DSC version can have multiple SCR. This 8 bit value indicates
493 current SCR revision information supported by panel.
494- qcom,mdss-dsc-encoders: An integer value indicating how many DSC encoders should be used
495 to drive data stream to DSI.
496 Default value is 1 and max value is 2.
497 2 encoder should be used only if qcom,mdss-lm-split or
498 qcom,split-mode with pingpong-split is used.
499- qcom,mdss-dsc-slice-height: An integer value indicates the dsc slice height.
500- qcom,mdss-dsc-slice-width: An integer value indicates the dsc slice width.
501 Multiple of slice width should be equal to panel-width.
502 Maximum 2 slices per DSC encoder can be used so if 2 DSC encoders
503 are used then minimum slice width is equal to panel-width/4.
504- qcom,mdss-dsc-slice-per-pkt: An integer value indicates the slice per dsi packet.
505- qcom,mdss-dsc-bit-per-component: An integer value indicates the bits per component before compression.
506- qcom,mdss-dsc-bit-per-pixel: An integer value indicates the bits per pixel after compression.
507- qcom,mdss-dsc-block-prediction-enable: A boolean value to enable/disable the block prediction at decoder.
508- qcom,mdss-dsc-config-by-manufacture-cmd: A boolean to indicates panel use manufacture command to setup pps
509 instead of standard dcs type 0x0A.
Jeykumar Sankaran6b345ac2017-03-15 19:17:19 -0700510- qcom,display-topology: Array of u32 values which specifies the list of topologies available
511 for the display. A display topology is defined by a
512 set of 3 values in the order:
513 - number of mixers
514 - number of compression encoders
515 - number of interfaces
516 Therefore, the array should always contain a tuple of 3 elements.
517- qcom,default-topology-index: An u32 value which indexes the topology set
518 specified by the node "qcom,display-topology"
519 to identify the default topology for the
520 display. The first set is indexed by the
521 value 0.
Sandeep Panda402506b2018-04-09 12:00:47 +0530522- qcom,mdss-dsi-dma-schedule-line: An integer value indicates the line number after vertical active
523 region, at which command DMA needs to be triggered.
Jeykumar Sankaran6b345ac2017-03-15 19:17:19 -0700524
525Required properties for sub-nodes: None
526Optional properties:
Dhaval Patel4dc93492016-10-27 23:51:22 -0700527- qcom,dba-panel: Indicates whether the current panel is used as a display bridge
528 to a non-DSI interface.
529- qcom,bridge-name: A string to indicate the name of the bridge chip connected to DSI. qcom,bridge-name
530 is required if qcom,dba-panel is defined for the panel.
531- qcom,adjust-timer-wakeup-ms: An integer value to indicate the timer delay(in ms) to accommodate
532 s/w delay while configuring the event timer wakeup logic.
533
534- qcom,mdss-dsi-display-timings: Parent node that lists the different resolutions that the panel supports.
535 Each child represents timings settings for a specific resolution.
536- qcom,mdss-dsi-post-init-delay: Specifies required number of frames to wait so that panel can be functional
537 to show proper display.
538
539Additional properties added to the second level nodes that represent timings properties:
540- qcom,mdss-dsi-timing-default: Property that specifies the current child as the default
541 timing configuration that will be used.
542- qcom,mdss-dsi-timing-switch-command: List of commands that need to be sent
543 to panel when the resolution/timing switch happens dynamically.
544 Refer to "qcom,mdss-dsi-on-command" section for adding commands.
545- qcom,mdss-dsi-timing-switch-command-state: String that specifies the ctrl state for sending resolution switch
546 commands.
547 "dsi_lp_mode" = DSI low power mode (default)
548 "dsi_hs_mode" = DSI high speed mode
549
550Note, if a given optional qcom,* binding is not present, then the driver will configure
551the default values specified.
552
553Example:
554&mdss_mdp {
555 dsi_sim_vid: qcom,mdss_dsi_sim_video {
556 qcom,mdss-dsi-panel-name = "simulator video mode dsi panel";
557 qcom,mdss-dsi-panel-controller = <&mdss_dsi0>;
558 qcom,mdss-dsi-panel-height = <1280>;
559 qcom,mdss-dsi-panel-width = <720>;
560 qcom,mdss-dsi-bpp = <24>;
561 qcom,mdss-dsi-pixel-packing = <0>;
562 qcom,mdss-dsi-panel-destination = "display_1";
563 qcom,cmd-sync-wait-broadcast;
564 qcom,mdss-dsi-fbc-enable;
565 qcom,mdss-dsi-fbc-slice-height = <5>;
566 qcom,mdss-dsi-fbc-2d-pred-mode;
567 qcom,mdss-dsi-fbc-ver2-mode;
568 qcom,mdss-dsi-fbc-bpp = <0>;
569 qcom,mdss-dsi-fbc-packing = <0>;
570 qcom,mdss-dsi-fbc-quant-error;
571 qcom,mdss-dsi-fbc-bias = <0>;
572 qcom,mdss-dsi-fbc-pat-mode;
573 qcom,mdss-dsi-fbc-vlc-mode;
574 qcom,mdss-dsi-fbc-bflc-mode;
575 qcom,mdss-dsi-fbc-h-line-budget = <0>;
576 qcom,mdss-dsi-fbc-budget-ctrl = <0>;
577 qcom,mdss-dsi-fbc-block-budget = <0>;
578 qcom,mdss-dsi-fbc-lossless-threshold = <0>;
579 qcom,mdss-dsi-fbc-lossy-threshold = <0>;
580 qcom,mdss-dsi-fbc-rgb-threshold = <0>;
581 qcom,mdss-dsi-fbc-lossy-mode-idx = <0>;
582 qcom,mdss-dsi-fbc-max-pred-err = <2>;
583 qcom,mdss-dsi-h-front-porch = <140>;
584 qcom,mdss-dsi-h-back-porch = <164>;
585 qcom,mdss-dsi-h-pulse-width = <8>;
586 qcom,mdss-dsi-h-sync-skew = <0>;
587 qcom,mdss-dsi-v-back-porch = <6>;
588 qcom,mdss-dsi-v-front-porch = <1>;
589 qcom,mdss-dsi-v-pulse-width = <1>;
590 qcom,mdss-dsi-h-left-border = <0>;
591 qcom,mdss-dsi-h-right-border = <0>;
592 qcom,mdss-dsi-v-top-border = <0>;
593 qcom,mdss-dsi-v-bottom-border = <0>;
594 qcom,mdss-dsi-border-color = <0>;
595 qcom,mdss-dsi-underflow-color = <0xff>;
596 qcom,mdss-dsi-bl-min-level = <1>;
597 qcom,mdss-dsi-bl-max-level = < 15>;
598 qcom,mdss-brightness-max-level = <255>;
599 qcom,mdss-dsi-interleave-mode = <0>;
600 qcom,mdss-dsi-panel-type = "dsi_video_mode";
601 qcom,mdss-dsi-te-check-enable;
Narendra Muppallad4081e12017-04-20 19:24:08 -0700602 qcom,mdss-dsi-te-using-wd;
Dhaval Patel4dc93492016-10-27 23:51:22 -0700603 qcom,mdss-dsi-te-using-te-pin;
604 qcom,mdss-dsi-te-dcs-command = <1>;
605 qcom,mdss-dsi-wr-mem-continue = <0x3c>;
606 qcom,mdss-dsi-wr-mem-start = <0x2c>;
607 qcom,mdss-dsi-te-pin-select = <1>;
608 qcom,mdss-dsi-h-sync-pulse = <1>;
609 qcom,mdss-dsi-hfp-power-mode;
610 qcom,mdss-dsi-hbp-power-mode;
611 qcom,mdss-dsi-hsa-power-mode;
612 qcom,mdss-dsi-bllp-eof-power-mode;
613 qcom,mdss-dsi-bllp-power-mode;
614 qcom,mdss-dsi-last-line-interleave;
615 qcom,mdss-dsi-traffic-mode = <0>;
616 qcom,mdss-dsi-virtual-channel-id = <0>;
617 qcom,mdss-dsi-color-order = <0>;
618 qcom,mdss-dsi-lane-0-state;
619 qcom,mdss-dsi-lane-1-state;
620 qcom,mdss-dsi-lane-2-state;
621 qcom,mdss-dsi-lane-3-state;
622 qcom,mdss-dsi-t-clk-post = <0x20>;
623 qcom,mdss-dsi-t-clk-pre = <0x2c>;
624 qcom,mdss-dsi-stream = <0>;
625 qcom,mdss-dsi-mdp-trigger = <0>;
626 qcom,mdss-dsi-dma-trigger = <0>;
627 qcom,mdss-dsi-panel-framerate = <60>;
628 qcom,mdss-dsi-panel-clockrate = <424000000>;
629 qcom,mdss-mdp-transfer-time-us = <12500>;
630 qcom,mdss-dsi-panel-timings = [7d 25 1d 00 37 33
631 22 27 1e 03 04 00];
632 qcom,mdss-dsi-panel-timings-8996 = [23 20 06 09 05 03 04 a0
633 23 20 06 09 05 03 04 a0
634 23 20 06 09 05 03 04 a0
635 23 20 06 09 05 03 04 a0
636 23 2e 06 08 05 03 04 a0];
637 qcom,mdss-dsi-on-command = [32 01 00 00 00 00 02 00 00
638 29 01 00 00 10 00 02 FF 99];
639 qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
640 qcom,mdss-dsi-off-command = [22 01 00 00 00 00 00];
641 qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
642 qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
643 qcom,mdss-dsi-pan-enable-dynamic-fps;
644 qcom,mdss-dsi-pan-fps-update = "dfps_suspend_resume_mode";
645 qcom,min-refresh-rate = <30>;
646 qcom,max-refresh-rate = <60>;
647 qcom,mdss-dsi-bl-pmic-bank-select = <0>;
648 qcom,mdss-dsi-bl-pmic-pwm-frequency = <0>;
649 qcom,mdss-dsi-pwm-gpio = <&pm8941_mpps 5 0>;
650 qcom,5v-boost-gpio = <&pm8994_gpios 14 0>;
651 qcom,mdss-pan-physical-width-dimension = <60>;
652 qcom,mdss-pan-physical-height-dimension = <140>;
653 qcom,mdss-dsi-mode-sel-gpio-state = "dsc_mode";
654 qcom,mdss-tear-check-sync-cfg-height = <0xfff0>;
655 qcom,mdss-tear-check-sync-init-val = <1280>;
656 qcom,mdss-tear-check-sync-threshold-start = <4>;
657 qcom,mdss-tear-check-sync-threshold-continue = <4>;
658 qcom,mdss-tear-check-start-pos = <1280>;
659 qcom,mdss-tear-check-rd-ptr-trigger-intr = <1281>;
660 qcom,mdss-tear-check-frame-rate = <6000>;
661 qcom,mdss-dsi-reset-sequence = <1 2>, <0 10>, <1 10>;
Dhaval Patel4dc93492016-10-27 23:51:22 -0700662 qcom,dcs-cmd-by-left;
663 qcom,mdss-dsi-lp11-init;
664 qcom,mdss-dsi-init-delay-us = <100>;
665 mdss-dsi-rx-eot-ignore;
666 mdss-dsi-tx-eot-append;
667 qcom,ulps-enabled;
668 qcom,suspend-ulps-enabled;
Dhaval Patel4dc93492016-10-27 23:51:22 -0700669 qcom,esd-check-enabled;
670 qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08];
671 qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode";
672 qcom,mdss-dsi-panel-status-check-mode = "reg_read";
673 qcom,mdss-dsi-panel-status-read-length = <8>;
674 qcom,mdss-dsi-panel-max-error-count = <3>;
675 qcom,mdss-dsi-panel-status-value = <0x1c 0x00 0x05 0x02 0x40 0x84 0x06 0x01>;
676 qcom,dynamic-mode-switch-enabled;
677 qcom,dynamic-mode-switch-type = "dynamic-switch-immediate";
678 qcom,mdss-dsi-post-mode-switch-on-command = [32 01 00 00 00 00 02 00 00
679 29 01 00 00 10 00 02 B0 03];
680 qcom,video-to-cmd-mode-switch-commands = [15 01 00 00 00 00 02 C2 0B
681 15 01 00 00 00 00 02 C2 08];
682 qcom,cmd-to-video-mode-switch-commands = [15 01 00 00 00 00 02 C2 03];
683 qcom,send-pps-before-switch;
684 qcom,panel-ack-disabled;
685 qcom,mdss-dsi-horizontal-line-idle = <0 40 256>,
686 <40 120 128>,
687 <128 240 64>;
688 qcom,mdss-dsi-panel-orientation = "180"
Dhaval Patelf5cc5a32017-07-10 17:33:23 -0700689 qcom,mdss-dsi-panel-jitter = <0x8 0x10>;
Dhaval Patel60e1ff52017-02-18 21:03:40 -0800690 qcom,mdss-dsi-panel-prefill-lines = <0x10>;
Dhaval Patel4dc93492016-10-27 23:51:22 -0700691 qcom,mdss-dsi-force-clock-lane-hs;
692 qcom,compression-mode = "dsc";
693 qcom,adjust-timer-wakeup-ms = <1>;
694 qcom,mdss-dsi-display-timings {
695 wqhd {
696 qcom,mdss-dsi-timing-default;
697 qcom,mdss-dsi-panel-width = <720>;
698 qcom,mdss-dsi-panel-height = <2560>;
699 qcom,mdss-dsi-h-front-porch = <20>;
700 qcom,mdss-dsi-h-back-porch = <8>;
701 qcom,mdss-dsi-h-pulse-width = <8>;
702 qcom,mdss-dsi-h-sync-skew = <0>;
703 qcom,mdss-dsi-v-back-porch = <4>;
704 qcom,mdss-dsi-v-front-porch = <728>;
705 qcom,mdss-dsi-v-pulse-width = <4>;
706 qcom,mdss-dsi-panel-framerate = <60>;
707 qcom,mdss-dsi-panel-timings = [E6 38 26 00 68 6E 2A 3C 2C 03 04 00];
708 qcom,mdss-dsi-t-clk-post = <0x02>;
709 qcom,mdss-dsi-t-clk-pre = <0x2a>;
710 qcom,mdss-dsi-on-command = [05 01 00 00 a0 00 02 11 00
711 05 01 00 00 02 00 02 29 00];
712 qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
713 qcom,mdss-dsi-timing-switch-command = [
714 29 00 00 00 00 00 02 B0 04
715 29 00 00 00 00 00 02 F1 00];
716 qcom,mdss-dsi-timing-switch-command-state = "dsi_lp_mode";
717
Jeykumar Sankaran6b345ac2017-03-15 19:17:19 -0700718 qcom,mdss-dsc-slice-height = <16>;
719 qcom,mdss-dsc-slice-width = <360>;
720 qcom,mdss-dsc-slice-per-pkt = <2>;
721 qcom,mdss-dsc-bit-per-component = <8>;
722 qcom,mdss-dsc-bit-per-pixel = <8>;
723 qcom,mdss-dsc-block-prediction-enable;
724 qcom,mdss-dsc-config-by-manufacture-cmd;
725 qcom,display-topology = <1 1 1>;
726 qcom,default-topology-index = <0>;
Jeykumar Sankaran736d79d2017-10-05 17:44:24 -0700727 qcom,partial-update-enabled = "single_roi";
728 qcom,panel-roi-alignment = <4 4 2 2 20 20>;
Dhaval Patel4dc93492016-10-27 23:51:22 -0700729 };
730 };
731 qcom,panel-supply-entries {
732 #address-cells = <1>;
733 #size-cells = <0>;
734
735 qcom,panel-supply-entry@0 {
736 reg = <0>;
737 qcom,supply-name = "vdd";
738 qcom,supply-min-voltage = <2800000>;
739 qcom,supply-max-voltage = <2800000>;
740 qcom,supply-enable-load = <100000>;
741 qcom,supply-disable-load = <100>;
742 qcom,supply-pre-on-sleep = <0>;
743 qcom,supply-post-on-sleep = <0>;
744 qcom,supply-pre-off-sleep = <0>;
745 qcom,supply-post-off-sleep = <0>;
746 };
747
748 qcom,panel-supply-entry@1 {
749 reg = <1>;
750 qcom,supply-name = "vddio";
751 qcom,supply-min-voltage = <1800000>;
752 qcom,supply-max-voltage = <1800000>;
753 qcom,supply-enable-load = <100000>;
754 qcom,supply-disable-load = <100>;
755 qcom,supply-pre-on-sleep = <0>;
756 qcom,supply-post-on-sleep = <0>;
757 qcom,supply-pre-off-sleep = <0>;
758 qcom,supply-post-off-sleep = <0>;
759 };
760 };
761
Dhaval Patel4dc93492016-10-27 23:51:22 -0700762 qcom,dba-panel;
763 qcom,bridge-name = "adv7533";
764 qcom,mdss-dsc-version = <0x11>;
765 qcom,mdss-dsc-scr-version = <0x1>;
Jeykumar Sankaran6b345ac2017-03-15 19:17:19 -0700766 qcom,mdss-dsc-slice-height = <16>;
767 qcom,mdss-dsc-slice-width = <360>;
768 qcom,mdss-dsc-slice-per-pkt = <2>;
769 qcom,mdss-dsc-bit-per-component = <8>;
770 qcom,mdss-dsc-bit-per-pixel = <8>;
771 qcom,mdss-dsc-block-prediction-enable;
772 qcom,mdss-dsc-config-by-manufacture-cmd;
773 qcom,display-topology = <1 1 1>,
774 <2 2 1>;
775 qcom,default-topology-index = <0>;
Sandeep Panda402506b2018-04-09 12:00:47 +0530776 qcom,mdss-dsi-dma-schedule-line = <5>;
Dhaval Patel4dc93492016-10-27 23:51:22 -0700777 };
778};