QTI mdss-dsi-panel

mdss-dsi-panel is a dsi panel device which supports panels that
are compatible with MIPI display serial interface specification.

Required properties:
- compatible:				This property applies to DSI V2 panels only.
					This property should not be added for panels
					that work based on version "V6.0"
					DSI panels that are of different versions
					are initialized by the drivers for dsi controller.
					This property specifies the version
					for DSI HW that this panel will work with
					"qcom,dsi-panel-v2" = DSI V2.0
- status:        			This property applies to DSI V2 panels only.
					This property should not be added for panels
					that work based on version "V6.0"
					DSI panels that are of different versions
					are initialized by the drivers for dsi controller.
					A string that has to be set to "okay/ok"
					to enable the panel driver. By default this property
					will be set to "disable". Will be set to "ok/okay"
					status for specific platforms.
- qcom,mdss-dsi-panel-controller:	Specifies the phandle for the DSI controller that
					this panel will be mapped to.
- qcom,mdss-dsi-panel-width:		Specifies panel width in pixels.
- qcom,mdss-dsi-panel-height:		Specifies panel height in pixels.
- qcom,mdss-dsi-bpp:			Specifies the panel bits per pixel.
					3  = for rgb111
					8  = for rgb332
					12 = for rgb444
					16 = for rgb565
					18 = for rgb666
					24 = for rgb888
- qcom,mdss-dsi-panel-destination:	A string that specifies the destination display for the panel.
					"display_1" = DISPLAY_1
					"display_2" = DISPLAY_2
- qcom,mdss-dsi-panel-timings:		An array of length 12 that specifies the PHY
					timing settings for the panel.
- qcom,mdss-dsi-panel-timings-8996:		An array of length 40 char that specifies the 8996 PHY lane
					timing settings for the panel.
- qcom,mdss-dsi-on-command:		A byte stream formed by multiple dcs packets base on
					qcom dsi controller protocol.
					byte 0: dcs data type
					byte 1: set to indicate this is an individual packet
						 (no chain)
					byte 2: virtual channel number
					byte 3: expect ack from client (dcs read command)
					byte 4: wait number of specified ms after dcs command
						 transmitted
					byte 5, 6: 16 bits length in network byte order
					byte 7 and beyond: number byte of payload
- qcom,mdss-dsi-off-command:		A byte stream formed by multiple dcs packets base on
					qcom dsi controller protocol.
					byte 0: dcs data type
					byte 1: set to indicate this is an individual packet
						 (no chain)
					byte 2: virtual channel number
					byte 3: expect ack from client (dcs read command)
					byte 4: wait number of specified ms after dcs command
						 transmitted
					byte 5, 6: 16 bits length in network byte order
					byte 7 and beyond: number byte of payload
- qcom,mdss-dsi-post-panel-on-command:	same as "qcom,mdss-dsi-on-command" except commands are
					sent after displaying an image.

Note, if a short DCS packet(i.e packet with Byte 0:dcs data type as 05) mentioned in
qcom,mdss-dsi-on-command/qcom,mdss-dsi-off-command stream fails to transmit,
then 3 options can be tried.
	1. Send the packet as a long packet instead
				Byte 0: dcs data type = 05 (DCS short Packet)
				Byte 0: dcs data type = 29 (DCS long Packet)
	2. Send the packet in one burst by prepending with the next packet in packet stream
				Byte 1 = 01 (indicates this is an individual packet)
				Byte 1 = 00 (indicates this will be appended to the next
					     individual packet in the packet stream)
	3. Prepend a NULL packet to the short packet and send both in one burst instead of
	   combining multiple short packets and sending them in one burst.

Optional properties:
- qcom,mdss-dsi-panel-name:		A string used as a descriptive name of the panel
- qcom,mdss-dsi-panel-phy-timings:	An array of length 'n' char that specifies the DSI PHY lane
					timing settings for the panel. This is specific to SDE DRM driver.
					The value of 'n' depends on the DSI PHY h/w revision and parsing this
					property properly will be taken care in the DSI PHY DRM driver.
- qcom,cmd-sync-wait-broadcast:		Boolean used to broadcast dcs command to panels.
- qcom,mdss-dsi-fbc-enable:		Boolean used to enable frame buffer compression mode.
- qcom,mdss-dsi-fbc-slice-height:	Slice height(in lines) of compressed block.
					Expressed as power of 2. To set as 128 lines,
					this should be set to 7.
- qcom,mdss-dsi-fbc-2d-pred-mode:	Boolean to enable 2D map prediction.
- qcom,mdss-dsi-fbc-ver2-mode:		Boolean to enable FBC 2.0 that supports 1/3
					compression.
- qcom,mdss-dsi-fbc-bpp:		Compressed bpp supported by the panel.
					Specified color order is used as default value.
- qcom,mdss-dsi-fbc-packing:		Component packing.
					0 = default value.
- qcom,mdss-dsi-fbc-quant-error:	Boolean used to enable quantization error calculation.
- qcom,mdss-dsi-fbc-bias:		Bias for CD.
					0 = default value.
- qcom,mdss-dsi-fbc-pat-mode:		Boolean used to enable PAT mode.
- qcom,mdss-dsi-fbc-vlc-mode:		Boolean used to enable VLC mode.
- qcom,mdss-dsi-fbc-bflc-mode:		Boolean used to enable BFLC mode.
- qcom,mdss-dsi-fbc-h-line-budget:	Per line extra budget.
					0 = default value.
- qcom,mdss-dsi-fbc-budget-ctrl:		Extra budget level.
					0 = default value.
- qcom,mdss-dsi-fbc-block-budget:		Per block budget.
					0 = default value.
- qcom,mdss-dsi-fbc-lossless-threshold: Lossless mode threshold.
					0 = default value.
- qcom,mdss-dsi-fbc-lossy-threshold:	Lossy mode threshold.
					0 = default value.
- qcom,mdss-dsi-fbc-rgb-threshold:	Lossy RGB threshold.
					0 = default value.
- qcom,mdss-dsi-fbc-lossy-mode-idx:	Lossy mode index value.
					0 = default value.
- qcom,mdss-dsi-fbc-max-pred-err:	Max quantization prediction error.
					0 = default value
- qcom,mdss-dsi-h-back-porch:		Horizontal back porch value in pixel.
					6 = default value.
- qcom,mdss-dsi-h-front-porch:		Horizontal front porch value in pixel.
					6 = default value.
- qcom,mdss-dsi-h-pulse-width:		Horizontal pulse width.
					2 = default value.
- qcom,mdss-dsi-h-sync-skew:		Horizontal sync skew value.
					0 = default value.
- qcom,mdss-dsi-v-back-porch:		Vertical back porch value in pixel.
					6 = default value.
- qcom,mdss-dsi-v-front-porch:		Vertical front porch value in pixel.
					6 = default value.
- qcom,mdss-dsi-v-pulse-width:		Vertical pulse width.
					2 = default value.
- qcom,mdss-dsi-h-left-border:		Horizontal left border in pixel.
					0 = default value
- qcom,mdss-dsi-h-right-border:		Horizontal right border in pixel.
					0 = default value
- qcom,mdss-dsi-v-top-border:		Vertical top border in pixel.
					0 = default value
- qcom,mdss-dsi-v-bottom-border:	Vertical bottom border in pixel.
					0 = default value
- qcom,mdss-dsi-underflow-color:	Specifies the controller settings for the
					panel under flow color.
					0xff = default value.
- qcom,mdss-dsi-border-color:		Defines the border color value if border is present.
					0 = default value.
- qcom,mdss-dsi-panel-jitter:		An integer value defines the panel jitter timing for rsc
					backoff time. The jitter configurition causes the early
					wakeup if panel needs to adjust before vsync.
					Default jitter value is 5%. Max allowed value is 25%.
- qcom,mdss-dsi-panel-prefill-lines:	An integer value defines the panel prefill lines required to
					calculate the backoff time of rsc.
					Default value is 16 lines. Max allowed value is vtotal.
- qcom,mdss-dsi-pan-enable-dynamic-fps:	Boolean used to enable change in frame rate dynamically.
- qcom,mdss-dsi-pan-fps-update:		A string that specifies when to change the frame rate.
					"dfps_suspend_resume_mode"= FPS change request is
					implemented during suspend/resume.
					"dfps_immediate_clk_mode" = FPS change request is
					implemented immediately using DSI clocks.
					"dfps_immediate_porch_mode_hfp" = FPS change request is
					implemented immediately by changing panel horizontal
					front porch values.
					"dfps_immediate_porch_mode_vfp" = FPS change request is
					implemented immediately by changing panel vertical
					front porch values.
- qcom,min-refresh-rate:		Minimum refresh rate supported by the panel.
- qcom,max-refresh-rate:		Maximum refresh rate supported by the panel. If max refresh
					rate is not specified, then the frame rate of the panel in
					qcom,mdss-dsi-panel-framerate is used.
- qcom,mdss-dsi-bl-pmic-control-type:	A string that specifies the implementation of backlight
					control for this panel.
					"bl_ctrl_pwm" = Backlight controlled by PWM gpio.
					"bl_ctrl_wled" = Backlight controlled by WLED.
					"bl_ctrl_dcs" = Backlight controlled by DCS commands.
					other: Unknown backlight control. (default)
- qcom,mdss-dsi-bl-pwm-pmi:		Boolean to indicate that PWM control is through second pmic chip.
- qcom,mdss-dsi-bl-pmic-bank-select:	LPG channel for backlight.
					Required if backlight pmic control type is PWM
- qcom,mdss-dsi-bl-pmic-pwm-frequency:	PWM period in microseconds.
					Required if backlight pmic control type is PWM
- qcom,mdss-dsi-pwm-gpio:		PMIC gpio binding to backlight.
					Required if backlight pmic control type is PWM
- qcom,mdss-dsi-bl-min-level:		Specifies the min backlight level supported by the panel.
					0 = default value.
- qcom,mdss-dsi-bl-max-level:		Specifies the max backlight level supported by the panel.
					255 = default value.
- qcom,mdss-brightness-max-level:	Specifies the max brightness level supported.
					255 = default value.
- qcom,mdss-dsi-interleave-mode:	Specifies interleave mode.
					0 = default value.
- qcom,mdss-dsi-panel-type:		Specifies the panel operating mode.
					"dsi_video_mode" = enable video mode (default).
					"dsi_cmd_mode" = enable command mode.
- qcom,5v-boost-gpio:			Specifies the panel gpio for display 5v boost.
- qcom,mdss-dsi-te-check-enable:	Boolean to enable Tear Check configuration.
- qcom,mdss-dsi-te-using-te-pin:	Boolean to specify whether using hardware vsync.
- qcom,mdss-dsi-te-pin-select:		Specifies TE operating mode.
					0 = TE through embedded dcs command
					1 = TE through TE gpio pin. (default)
- qcom,mdss-dsi-te-dcs-command:		Inserts the dcs command.
					1 = default value.
- qcom,mdss-dsi-wr-mem-start:		DCS command for write_memory_start.
					0x2c = default value.
- qcom,mdss-dsi-wr-mem-continue:	DCS command for write_memory_continue.
					0x3c = default value.
- qcom,mdss-dsi-h-sync-pulse:		Specifies the pulse mode option for the panel.
					0 = Don't send hsa/he following vs/ve packet(default)
					1 = Send hsa/he following vs/ve packet
- qcom,mdss-dsi-hfp-power-mode:		Boolean to determine DSI lane state during
					horizontal front porch (HFP) blanking period.
- qcom,mdss-dsi-hbp-power-mode:		Boolean to determine DSI lane state during
					horizontal back porch (HBP) blanking period.
- qcom,mdss-dsi-hsa-power-mode:		Boolean to determine DSI lane state during
					horizontal sync active (HSA) mode.
- qcom,mdss-dsi-last-line-interleave	Boolean to determine if last line
					interleave flag needs to be enabled.
- qcom,mdss-dsi-bllp-eof-power-mode:	Boolean to determine DSI lane state during
					blanking low power period (BLLP) EOF mode.
- qcom,mdss-dsi-bllp-power-mode:	Boolean to determine DSI lane state during
					blanking low power period (BLLP) mode.
- qcom,mdss-dsi-traffic-mode:		Specifies the panel traffic mode.
					"non_burst_sync_pulse" = non burst with sync pulses (default).
					"non_burst_sync_event" = non burst with sync start event.
					"burst_mode" = burst mode.
- qcom,mdss-dsi-pixel-packing:		Specifies if pixel packing is used (in case of RGB666).
					"tight" = Tight packing (default value).
					"loose" = Loose packing.
- qcom,mdss-dsi-virtual-channel-id:	Specifies the virtual channel identefier.
					0 = default value.
- qcom,mdss-dsi-color-order:		Specifies the R, G and B channel ordering.
					"rgb_swap_rgb" = DSI_RGB_SWAP_RGB (default value)
					"rgb_swap_rbg" = DSI_RGB_SWAP_RBG
					"rgb_swap_brg" = DSI_RGB_SWAP_BRG
					"rgb_swap_grb" = DSI_RGB_SWAP_GRB
					"rgb_swap_gbr" = DSI_RGB_SWAP_GBR
- qcom,mdss-dsi-lane-0-state:		Boolean that specifies whether data lane 0 is enabled.
- qcom,mdss-dsi-lane-1-state:		Boolean that specifies whether data lane 1 is enabled.
- qcom,mdss-dsi-lane-2-state:		Boolean that specifies whether data lane 2 is enabled.
- qcom,mdss-dsi-lane-3-state:		Boolean that specifies whether data lane 3 is enabled.
- qcom,mdss-dsi-t-clk-post:		Specifies the byte clock cycles after mode switch.
					0x03 = default value.
- qcom,mdss-dsi-t-clk-pre:		Specifies the byte clock cycles before mode switch.
					0x24 = default value.
- qcom,mdss-dsi-stream:			Specifies the packet stream to be used.
					0 = stream 0 (default)
					1 = stream 1
- qcom,mdss-dsi-mdp-trigger:		Specifies the trigger mechanism to be used for MDP path.
					"none" = no trigger
					"trigger_te" = Tear check signal line used for trigger
					"trigger_sw" = Triggered by software (default)
					"trigger_sw_te" = Software trigger and TE
- qcom,mdss-dsi-dma-trigger:		Specifies the trigger mechanism to be used for DMA path.
					"none" = no trigger
					"trigger_te" = Tear check signal line used for trigger
					"trigger_sw" = Triggered by software (default)
					"trigger_sw_seof" = Software trigger and start/end of frame trigger.
					"trigger_sw_te" = Software trigger and TE
- qcom,mdss-dsi-panel-framerate:	Specifies the frame rate for the panel.
					60 = 60 frames per second (default)
- qcom,mdss-dsi-panel-clockrate:	A 64 bit value specifies the panel clock speed in Hz.
					0 = default value.
- qcom,mdss-mdp-transfer-time-us:	Specifies the dsi transfer time for command mode
					panels in microseconds. Driver uses this number to adjust
					the clock rate according to the expected transfer time.
					Increasing this value would slow down the mdp processing
					and can result in slower performance.
					Decreasing this value can speed up the mdp processing,
					but this can also impact power consumption.
					As a rule this time should not be higher than the time
					that would be expected with the processing at the
					dsi link rate since anyways this would be the maximum
					transfer time that could be achieved.
					If ping pong split enabled, this time should not be higher
					than two times the dsi link rate time.
					14000 = default value.
- qcom,mdss-dsi-on-command-state:	String that specifies the ctrl state for sending ON commands.
					"dsi_lp_mode" = DSI low power mode (default)
					"dsi_hs_mode" = DSI high speed mode
- qcom,mdss-dsi-off-command-state:	String that specifies the ctrl state for sending OFF commands.
					"dsi_lp_mode" = DSI low power mode (default)
					"dsi_hs_mode" = DSI high speed mode
- qcom,mdss-dsi-post-mode-switch-on-command-state:	String that specifies the ctrl state for sending ON commands post mode switch.
					"dsi_lp_mode" = DSI low power mode (default)
					"dsi_hs_mode" = DSI high speed mode
- qcom,mdss-pan-physical-width-dimension:	Specifies panel physical width in mm which corresponds
					to the physical width in the framebuffer information.
- qcom,mdss-pan-physical-height-dimension:	Specifies panel physical height in mm which corresponds
					to the physical height in the framebuffer information.
- qcom,mdss-dsi-mode-sel-gpio-state:	String that specifies the lcd mode for panel
					(such as single-port/dual-port), if qcom,panel-mode-gpio
					binding is defined in dsi controller.
					"dual_port" = Set GPIO to LOW
					"single_port" = Set GPIO to HIGH
					"high" = Set GPIO to HIGH
					"low" = Set GPIO to LOW
					The default value is "dual_port".
- qcom,mdss-tear-check-disable:		Boolean to disable mdp tear check. Tear check is enabled by default to avoid
					tearing. Other tear-check properties are ignored if this property is present.
					The below tear check configuration properties can be individually tuned if
					tear check is enabled.
- qcom,mdss-tear-check-sync-cfg-height: Specifies the vertical total number of lines.
					The default value is 0xfff0.
- qcom,mdss-tear-check-sync-init-val:	Specifies the init value at which the read pointer gets loaded
					at vsync edge. The reader pointer refers to the line number of
					panel buffer that is currently being updated.
					The default value is panel height.
- qcom,mdss-tear-check-sync-threshold-start:
					Allows the first ROI line write to an panel when read pointer is
					between the range of ROI start line and ROI start line plus this
					setting.
					The default value is 4.
- qcom,mdss-tear-check-sync-threshold-continue:
					The minimum number of lines the write pointer needs to be
					above the read pointer so that it is safe to write to the panel.
					(This check is not done for the first ROI line write of an update)
					The default value is 4.
- qcom,mdss-tear-check-start-pos:	Specify the y position from which the start_threshold value is
					added and write is kicked off if the read pointer falls within that
					region.
					The default value is panel height.
- qcom,mdss-tear-check-rd-ptr-trigger-intr:
					Specify the read pointer value at which an interrupt has to be
					generated.
					The default value is panel height + 1.
- qcom,mdss-tear-check-frame-rate:	Specify the value to be a real frame rate(fps) x 100 factor to tune the
					timing of TE simulation with more precision.
					The default value is 6000 with 60 fps.
- qcom,mdss-dsi-reset-sequence:		An array that lists the
					sequence of reset gpio values and sleeps
					Each command will have the format defined
					as below:
					--> Reset GPIO value
					--> Sleep value (in ms)
- qcom,partial-update-enabled:		Boolean used to enable partial
					panel update for command mode panels.
- qcom,mdss-dsi-horizontal-line-idle:	List of width ranges (EC - SC) in pixels indicating
					additional idle time in dsi clock cycles that is needed
					to compensate for smaller line width.
- qcom,partial-update-roi-merge:	Boolean indicates roi combination is need
					and function has been provided for dcs
					2A/2B command.
- qcom,dcs-cmd-by-left:			Boolean to indicate that dcs command are sent
					through the left DSI controller only in a dual-dsi configuration
- qcom,mdss-dsi-panel-hdr-enabled:      Boolean to indicate HDR support in panel.
- qcom,mdss-dsi-panel-hdr-color-primaries:
                                        Array of 8 unsigned integers denoting chromaticity of panel.These
                                        values are specified in nits units. The value range is 0 through 50000.
                                        To obtain real chromacity, these values should be divided by factor of
                                        50000. The structure of array is defined in below order
                                        value 1: x value of white chromaticity of display panel
                                        value 2: y value of white chromaticity of display panel
                                        value 3: x value of red chromaticity of display panel
                                        value 4: y value of red chromaticity of display panel
                                        value 5: x value of green chromaticity of display panel
                                        value 6: y value of green chromaticity of display panel
                                        value 7: x value of blue chromaticity of display panel
                                        value 8: y value of blue chromaticity of display panel
- qcom,mdss-dsi-panel-peak-brightness:  Maximum brightness supported by panel.In absence of maximum value
                                        typical value becomes peak brightness. Value is specified in nits units.
                                        To obtain real peak brightness, this value should be divided by factor of
                                        10000.
- qcom,mdss-dsi-panel-blackness-level:  Blackness level supported by panel. Blackness level is defined as
                                        ratio of peak brightness to contrast. Value is specified in nits units.
                                        To obtain real blackness level, this value should be divided by factor of
                                        10000.
- qcom,mdss-dsi-lp11-init:		Boolean used to enable the DSI clocks and data lanes (low power 11)
					before issuing hardware reset line.
- qcom,mdss-dsi-init-delay-us:		Delay in microseconds(us) before performing any DSI activity in lp11
					mode. This master delay (t_init_delay as per DSI spec) should be sum
					of DSI internal delay to reach fuctional after power up and minimum
					delay required by panel to reach functional.
- qcom,mdss-dsi-rx-eot-ignore:		Boolean used to enable ignoring end of transmission packets.
- qcom,mdss-dsi-tx-eot-append:		Boolean used to enable appending end of transmission packets.
- qcom,ulps-enabled:			Boolean to enable support for Ultra Low Power State (ULPS) mode.
- qcom,suspend-ulps-enabled:		Boolean to enable support for ULPS mode for panels during suspend state.
- qcom,panel-roi-alignment:		Specifies the panel ROI alignment restrictions on its
					left, top, width, height alignments and minimum width and
					height values
- qcom,esd-check-enabled:		Boolean used to enable ESD recovery feature.
- qcom,mdss-dsi-panel-status-command:	A byte stream formed by multiple dcs packets based on
					qcom dsi controller protocol, to read the panel status.
					This value is used to kick in the ESD recovery.
					byte 0: dcs data type
					byte 1: set to indicate this is an individual packet
						 (no chain)
					byte 2: virtual channel number
					byte 3: expect ack from client (dcs read command)
					byte 4: wait number of specified ms after dcs command
						 transmitted
					byte 5, 6: 16 bits length in network byte order
					byte 7 and beyond: number byte of payload
- qcom,mdss-dsi-panel-status-command-mode:
					String that specifies the ctrl state for reading the panel status.
					"dsi_lp_mode" = DSI low power mode
					"dsi_hs_mode" = DSI high speed mode
- qcom,mdss-dsi-panel-status-check-mode:Specifies the panel status check method for ESD recovery.
					"bta_check" = Uses BTA to check the panel status
					"reg_read" = Reads panel status register to check the panel status
					"reg_read_nt35596" = Reads panel status register to check the panel
							     status for NT35596 panel.
					"te_signal_check" = Uses TE signal behaviour to check the panel status
- qcom,mdss-dsi-panel-status-read-length: Integer array that specify the expected read-back length of values
					  for each of panel registers. Each length is corresponding to number of
					  returned parameters of register introduced in specification.
- qcom,mdss-dsi-panel-status-valid-params: Integer array that specify the valid returned values which need to check
					   for each of register.
					   Some panel need only check the first few values returned from panel.
					   So: if this property is the same to qcom,mdss-dsi-panel-status-read-length,
					   then just ignore this one.
- qcom,mdss-dsi-panel-status-value:	Multiple integer arrays, each specifies the values of the panel status register
					which is used to check the panel status. The size of each array is the sum of
					length specified in qcom,mdss-dsi-panel-status-read-length, and must be equal.
					This can cover that Some panel may return several alternative values.
- qcom,mdss-dsi-panel-max-error-count:  Integer value that specifies the maximum number of errors from register
					read that can be ignored before treating that the panel has gone bad.
- qcom,dynamic-mode-switch-enabled:		Boolean used to mention whether panel supports
					dynamic switching from video mode to command mode
					and vice versa.
- qcom,dynamic-mode-switch-type:		A string specifies how to perform dynamic mode switch.
						If qcom,dynamic-mode-switch-enabled is set and no string specified, default value is
						dynamic-switch-suspend-resume.
					"dynamic-switch-suspend-resume"= Switch using suspend/resume. Panel will
						go blank during transition.
					"dynamic-switch-immediate"= Switch on next frame update. Panel will
						not go blank for this transition.
					"dynamic-resolution-switch-immediate"= Switch the panel resolution. Panel will
						not go blank for this transition.
- qcom,mdss-dsi-post-mode-switch-on-command:		Multiple dcs packets used for turning on DSI panel
					after panel has switch modes.
					Refer to "qcom,mdss-dsi-on-command" section for adding commands.
- qcom,video-to-cmd-mode-switch-commands:	List of commands that need to be sent
					to panel in order to switch from video mode to command mode dynamically.
					Refer to "qcom,mdss-dsi-on-command" section for adding commands.
- qcom,cmd-to-video-mode-switch-commands:	List of commands that need to be sent
					to panel in order to switch from command mode to video mode dynamically.
					Refer to "qcom,mdss-dsi-on-command" section for adding commands.
- qcom,send-pps-before-switch:		Boolean propety to indicate when PPS commands should be sent,
					either before or after switch commands during dynamic resolution
					switch in DSC panels. If the property is not present, the default
					behavior is to send PPS commands after the switch commands.
- qcom,mdss-dsi-panel-orientation:	String used to indicate orientation of panel
					"180" = panel is flipped in both horizontal and vertical directions
					"hflip" = panel is flipped in horizontal direction
					"vflip" = panel is flipped in vertical direction
- qcom,panel-ack-disabled: A boolean property to indicate, whether we need to wait for any ACK from the panel
			   for any commands that we send.
- qcom,mdss-dsi-force-clock-lane-hs:	Boolean to force dsi clock lanes to HS mode always.

- qcom,compression-mode:		Select compression mode for panel.
					"fbc" - frame buffer compression
					"dsc" - display stream compression.
					If "dsc" compression is used then config subnodes needs to be defined.
- qcom,panel-supply-entries:		A node that lists the elements of the supply used to
					power the DSI panel. There can be more than one instance
					of this binding, in which case the entry would be appended
					with the supply entry index. For a detailed description of
					fields in the supply entry, refer to the qcom,ctrl-supply-entries
					binding above.
- qcom,mdss-dsc-version:		An 8 bit value indicates the DSC version supported by panel. Bits[0.3]
					provides information about minor version while Bits[4.7] provides
					major version information. It supports only DSC rev 1(Major).1(Minor)
					right now.
- qcom,mdss-dsc-scr-version:		Each DSC version can have multiple SCR. This 8 bit value indicates
					current SCR revision information supported by panel.
- qcom,mdss-dsc-encoders:		An integer value indicating how many DSC encoders should be used
					to drive data stream to DSI.
					Default value is 1 and max value is 2.
					2 encoder should be used only if qcom,mdss-lm-split or
					qcom,split-mode with pingpong-split is used.
- qcom,mdss-dsc-slice-height:		An integer value indicates the dsc slice height.
- qcom,mdss-dsc-slice-width:		An integer value indicates the dsc slice width.
					Multiple of slice width should be equal to panel-width.
					Maximum 2 slices per DSC encoder can be used so if 2 DSC encoders
					are used then minimum slice width is equal to panel-width/4.
- qcom,mdss-dsc-slice-per-pkt:		An integer value indicates the slice per dsi packet.
- qcom,mdss-dsc-bit-per-component: 	An integer value indicates the bits per component before compression.
- qcom,mdss-dsc-bit-per-pixel:		An integer value indicates the bits per pixel after compression.
- qcom,mdss-dsc-block-prediction-enable: A boolean value to enable/disable the block prediction at decoder.
- qcom,mdss-dsc-config-by-manufacture-cmd: A boolean to indicates panel use manufacture command to setup pps
					instead of standard dcs type 0x0A.
- qcom,display-topology:  		Array of u32 values which specifies the	list of topologies available
					for the display. A display topology is defined by a
					set of 3 values in the order:
					- number of mixers
					- number of compression encoders
					- number of interfaces
					Therefore, the array should always contain a tuple of 3 elements.
- qcom,default-topology-index:          An u32 value which indexes the topology set
					specified by the node "qcom,display-topology"
					to identify the default topology for the
					display. The first set is indexed by the
					value 0.

Required properties for sub-nodes:	None
Optional properties:
- qcom,dba-panel:	Indicates whether the current panel is used as a display bridge
					to a non-DSI interface.
- qcom,bridge-name:			A string to indicate the name of the bridge chip connected to DSI. qcom,bridge-name
					is required if qcom,dba-panel is defined for the panel.
- qcom,adjust-timer-wakeup-ms:		An integer value to indicate the timer delay(in ms) to accommodate
					s/w delay while configuring the event timer wakeup logic.

- qcom,mdss-dsi-display-timings:	Parent node that lists the different resolutions that the panel supports.
					Each child represents timings settings for a specific resolution.
- qcom,mdss-dsi-post-init-delay:        Specifies required number of frames to wait so that panel can be functional
					to show proper display.

Additional properties added to the second level nodes that represent timings properties:
- qcom,mdss-dsi-timing-default:		Property that specifies the current child as the default
					timing configuration that will be used.
- qcom,mdss-dsi-timing-switch-command:	List of commands that need to be sent
					to panel when the resolution/timing switch happens dynamically.
					Refer to "qcom,mdss-dsi-on-command" section for adding commands.
- qcom,mdss-dsi-timing-switch-command-state:	String that specifies the ctrl state for sending resolution switch
					commands.
					"dsi_lp_mode" = DSI low power mode (default)
					"dsi_hs_mode" = DSI high speed mode

Note, if a given optional qcom,* binding is not present, then the driver will configure
the default values specified.

Example:
&mdss_mdp {
	dsi_sim_vid: qcom,mdss_dsi_sim_video {
		qcom,mdss-dsi-panel-name = "simulator video mode dsi panel";
		qcom,mdss-dsi-panel-controller = <&mdss_dsi0>;
		qcom,mdss-dsi-panel-height = <1280>;
		qcom,mdss-dsi-panel-width = <720>;
		qcom,mdss-dsi-bpp = <24>;
		qcom,mdss-dsi-pixel-packing = <0>;
		qcom,mdss-dsi-panel-destination = "display_1";
		qcom,cmd-sync-wait-broadcast;
		qcom,mdss-dsi-fbc-enable;
		qcom,mdss-dsi-fbc-slice-height = <5>;
		qcom,mdss-dsi-fbc-2d-pred-mode;
		qcom,mdss-dsi-fbc-ver2-mode;
		qcom,mdss-dsi-fbc-bpp = <0>;
		qcom,mdss-dsi-fbc-packing = <0>;
		qcom,mdss-dsi-fbc-quant-error;
		qcom,mdss-dsi-fbc-bias = <0>;
		qcom,mdss-dsi-fbc-pat-mode;
		qcom,mdss-dsi-fbc-vlc-mode;
		qcom,mdss-dsi-fbc-bflc-mode;
		qcom,mdss-dsi-fbc-h-line-budget = <0>;
		qcom,mdss-dsi-fbc-budget-ctrl = <0>;
		qcom,mdss-dsi-fbc-block-budget = <0>;
		qcom,mdss-dsi-fbc-lossless-threshold = <0>;
		qcom,mdss-dsi-fbc-lossy-threshold = <0>;
		qcom,mdss-dsi-fbc-rgb-threshold = <0>;
		qcom,mdss-dsi-fbc-lossy-mode-idx = <0>;
		qcom,mdss-dsi-fbc-max-pred-err = <2>;
		qcom,mdss-dsi-h-front-porch = <140>;
		qcom,mdss-dsi-h-back-porch = <164>;
		qcom,mdss-dsi-h-pulse-width = <8>;
		qcom,mdss-dsi-h-sync-skew = <0>;
		qcom,mdss-dsi-v-back-porch = <6>;
		qcom,mdss-dsi-v-front-porch = <1>;
		qcom,mdss-dsi-v-pulse-width = <1>;
		qcom,mdss-dsi-h-left-border = <0>;
		qcom,mdss-dsi-h-right-border = <0>;
		qcom,mdss-dsi-v-top-border = <0>;
		qcom,mdss-dsi-v-bottom-border = <0>;
		qcom,mdss-dsi-border-color = <0>;
		qcom,mdss-dsi-underflow-color = <0xff>;
		qcom,mdss-dsi-bl-min-level = <1>;
		qcom,mdss-dsi-bl-max-level = < 15>;
		qcom,mdss-brightness-max-level = <255>;
		qcom,mdss-dsi-interleave-mode = <0>;
		qcom,mdss-dsi-panel-type = "dsi_video_mode";
		qcom,mdss-dsi-te-check-enable;
		qcom,mdss-dsi-te-using-te-pin;
		qcom,mdss-dsi-te-dcs-command = <1>;
		qcom,mdss-dsi-wr-mem-continue = <0x3c>;
		qcom,mdss-dsi-wr-mem-start = <0x2c>;
		qcom,mdss-dsi-te-pin-select = <1>;
		qcom,mdss-dsi-h-sync-pulse = <1>;
		qcom,mdss-dsi-hfp-power-mode;
		qcom,mdss-dsi-hbp-power-mode;
		qcom,mdss-dsi-hsa-power-mode;
		qcom,mdss-dsi-bllp-eof-power-mode;
		qcom,mdss-dsi-bllp-power-mode;
		qcom,mdss-dsi-last-line-interleave;
		qcom,mdss-dsi-traffic-mode = <0>;
		qcom,mdss-dsi-virtual-channel-id = <0>;
		qcom,mdss-dsi-color-order = <0>;
		qcom,mdss-dsi-lane-0-state;
		qcom,mdss-dsi-lane-1-state;
		qcom,mdss-dsi-lane-2-state;
		qcom,mdss-dsi-lane-3-state;
		qcom,mdss-dsi-t-clk-post = <0x20>;
		qcom,mdss-dsi-t-clk-pre = <0x2c>;
		qcom,mdss-dsi-stream = <0>;
		qcom,mdss-dsi-mdp-trigger = <0>;
		qcom,mdss-dsi-dma-trigger = <0>;
		qcom,mdss-dsi-panel-framerate = <60>;
		qcom,mdss-dsi-panel-clockrate = <424000000>;
		qcom,mdss-mdp-transfer-time-us = <12500>;
		qcom,mdss-dsi-panel-timings = [7d 25 1d 00 37 33
					22 27 1e 03 04 00];
                qcom,mdss-dsi-panel-timings-8996 = [23 20 06 09 05 03 04 a0
                                23 20 06 09 05 03 04 a0
                                23 20 06 09 05 03 04 a0
                                23 20 06 09 05 03 04 a0
                                23 2e 06 08 05 03 04 a0];
		qcom,mdss-dsi-on-command = [32 01 00 00 00 00 02 00 00
					29 01 00 00 10 00 02 FF 99];
		qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
		qcom,mdss-dsi-off-command = [22 01 00 00 00 00 00];
		qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
		qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
		qcom,mdss-dsi-pan-enable-dynamic-fps;
		qcom,mdss-dsi-pan-fps-update = "dfps_suspend_resume_mode";
		qcom,min-refresh-rate = <30>;
		qcom,max-refresh-rate = <60>;
		qcom,mdss-dsi-bl-pmic-bank-select = <0>;
		qcom,mdss-dsi-bl-pmic-pwm-frequency = <0>;
		qcom,mdss-dsi-pwm-gpio = <&pm8941_mpps 5 0>;
		qcom,5v-boost-gpio = <&pm8994_gpios 14 0>;
		qcom,mdss-pan-physical-width-dimension = <60>;
		qcom,mdss-pan-physical-height-dimension = <140>;
		qcom,mdss-dsi-mode-sel-gpio-state = "dsc_mode";
		qcom,mdss-tear-check-sync-cfg-height = <0xfff0>;
		qcom,mdss-tear-check-sync-init-val = <1280>;
		qcom,mdss-tear-check-sync-threshold-start = <4>;
		qcom,mdss-tear-check-sync-threshold-continue = <4>;
		qcom,mdss-tear-check-start-pos = <1280>;
		qcom,mdss-tear-check-rd-ptr-trigger-intr = <1281>;
		qcom,mdss-tear-check-frame-rate = <6000>;
		qcom,mdss-dsi-reset-sequence = <1 2>, <0 10>, <1 10>;
		qcom,partial-update-enabled;
		qcom,dcs-cmd-by-left;
		qcom,mdss-dsi-lp11-init;
		qcom,mdss-dsi-init-delay-us = <100>;
		mdss-dsi-rx-eot-ignore;
		mdss-dsi-tx-eot-append;
		qcom,ulps-enabled;
		qcom,suspend-ulps-enabled;
		qcom,panel-roi-alignment = <4 4 2 2 20 20>;
		qcom,esd-check-enabled;
		qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08];
		qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode";
		qcom,mdss-dsi-panel-status-check-mode = "reg_read";
		qcom,mdss-dsi-panel-status-read-length = <8>;
		qcom,mdss-dsi-panel-max-error-count = <3>;
		qcom,mdss-dsi-panel-status-value = <0x1c 0x00 0x05 0x02 0x40 0x84 0x06 0x01>;
		qcom,dynamic-mode-switch-enabled;
		qcom,dynamic-mode-switch-type = "dynamic-switch-immediate";
		qcom,mdss-dsi-post-mode-switch-on-command = [32 01 00 00 00 00 02 00 00
					29 01 00 00 10 00 02 B0 03];
		qcom,video-to-cmd-mode-switch-commands = [15 01 00 00 00 00 02 C2 0B
						15 01 00 00 00 00 02 C2 08];
		qcom,cmd-to-video-mode-switch-commands = [15 01 00 00 00 00 02 C2 03];
		qcom,send-pps-before-switch;
		qcom,panel-ack-disabled;
		qcom,mdss-dsi-horizontal-line-idle = <0 40 256>,
						<40 120 128>,
						<128 240 64>;
		qcom,mdss-dsi-panel-orientation = "180"
		qcom,mdss-dsi-panel-jitter = <0x8>;
		qcom,mdss-dsi-panel-prefill-lines = <0x10>;
		qcom,mdss-dsi-force-clock-lane-hs;
		qcom,compression-mode = "dsc";
		qcom,adjust-timer-wakeup-ms = <1>;
		qcom,mdss-dsi-display-timings {
			wqhd {
				qcom,mdss-dsi-timing-default;
				qcom,mdss-dsi-panel-width = <720>;
				qcom,mdss-dsi-panel-height = <2560>;
				qcom,mdss-dsi-h-front-porch = <20>;
				qcom,mdss-dsi-h-back-porch = <8>;
				qcom,mdss-dsi-h-pulse-width = <8>;
				qcom,mdss-dsi-h-sync-skew = <0>;
				qcom,mdss-dsi-v-back-porch = <4>;
				qcom,mdss-dsi-v-front-porch = <728>;
				qcom,mdss-dsi-v-pulse-width = <4>;
				qcom,mdss-dsi-panel-framerate = <60>;
				qcom,mdss-dsi-panel-timings = [E6 38 26 00 68 6E 2A 3C 2C 03 04 00];
				qcom,mdss-dsi-t-clk-post = <0x02>;
				qcom,mdss-dsi-t-clk-pre = <0x2a>;
				qcom,mdss-dsi-on-command = [05 01 00 00 a0 00 02 11 00
					05 01 00 00 02 00 02 29 00];
				qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
				qcom,mdss-dsi-timing-switch-command = [
					29 00 00 00 00 00 02 B0 04
					29 00 00 00 00 00 02 F1 00];
				qcom,mdss-dsi-timing-switch-command-state = "dsi_lp_mode";

				qcom,mdss-dsc-slice-height = <16>;
				qcom,mdss-dsc-slice-width = <360>;
				qcom,mdss-dsc-slice-per-pkt = <2>;
				qcom,mdss-dsc-bit-per-component = <8>;
				qcom,mdss-dsc-bit-per-pixel = <8>;
				qcom,mdss-dsc-block-prediction-enable;
				qcom,mdss-dsc-config-by-manufacture-cmd;
				qcom,display-topology = <1 1 1>;
				qcom,default-topology-index = <0>;
			};
		};
		qcom,panel-supply-entries {
			#address-cells = <1>;
			#size-cells = <0>;

			qcom,panel-supply-entry@0 {
				reg = <0>;
				qcom,supply-name = "vdd";
				qcom,supply-min-voltage = <2800000>;
				qcom,supply-max-voltage = <2800000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <0>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
			};

			qcom,panel-supply-entry@1 {
				reg = <1>;
				qcom,supply-name = "vddio";
				qcom,supply-min-voltage = <1800000>;
				qcom,supply-max-voltage = <1800000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <0>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
			};
		};

		qcom,dba-panel;
		qcom,bridge-name = "adv7533";
		qcom,mdss-dsc-version = <0x11>;
		qcom,mdss-dsc-scr-version = <0x1>;
		qcom,mdss-dsc-slice-height = <16>;
		qcom,mdss-dsc-slice-width = <360>;
		qcom,mdss-dsc-slice-per-pkt = <2>;
		qcom,mdss-dsc-bit-per-component = <8>;
		qcom,mdss-dsc-bit-per-pixel = <8>;
		qcom,mdss-dsc-block-prediction-enable;
		qcom,mdss-dsc-config-by-manufacture-cmd;
		qcom,display-topology = <1 1 1>,
			                <2 2 1>;
		qcom,default-topology-index = <0>;
	};
};
