Qualcomm mdss-dsi-panel

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

Required properties:
- compatible:				Specifies the version for DSI HW. that
					this panel will be worked with
					"qcom,mdss-dsi-panel" = DSI v6.0
					"qcom,dsi-panel-v2" = DSI V2.0
- status:        			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-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

Optional properties:
- qcom,mdss-dsi-panel-name:		A string used as a descriptive name of the panel
- qcom,cont-splash-enabled:		Boolean used to enable continuous splash mode.
					If this property is specified, it is required to
					to specify the memory reserved for the splash
					screen using the qcom,memblock-reserve binding
					for the framebuffer device attached to the panel.
- qcom,mdss-dsi-panel-broadcast-mode:	Boolean used to enable broadcast mode.
- qcom,mdss-dsi-fbc-enable:		Boolean used to enable frame buffer compression mode.
- 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-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-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.
- 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.
					"bl_ctrl_i2c" = Backlight controlled by I2C.
					other: Unknown backlight control. (default)
- qcom,mdss-dsi-bl-pmic-bank-select:	LPG channel for backlight.
					Requred if blpmiccontroltype is PWM
- qcom,mdss-dsi-bl-pmic-pwm-frequency:	PWM period in microseconds.
					Requred if blpmiccontroltype is PWM
- qcom,mdss-dsi-pwm-gpio:		PMIC gpio binding to backlight.
					Requred if blpmiccontroltype 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,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-te-v-sync-rd-ptr-irq-line:	Configures the scan line number that the dsi
					pixel transfer will start on. Rasing this number
					will result in delaying the start of the pixel
					transfer.
					0x2c = default value.
- qcom,mdss-dsi-te-v-sync-continue-lines:	Represents the difference in number of lines
					between estimated read pointer and write pointer
					to allow the updating of all the lines except
					the first line of the frame.
					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-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-lane-map:		Specifies the data lane swap configuration.
					"lane_map_0123" = <0 1 2 3> (default value)
					"lane_map_3012" = <3 0 1 2>
					"lane_map_2301" = <2 3 0 1>
					"lane_map_1230" = <1 2 3 0>
					"lane_map_0321" = <0 3 2 1>
					"lane_map_1032" = <1 0 3 2>
					"lane_map_2103" = <2 1 0 3>
					"lane_map_3210" = <3 2 1 0>
- 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:	Specifies the panel clock speed in Hz.
					0 = 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-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-panel-mode-gpio-state:	String that specifies the mode state for panel if it is defined
					in dsi controller.
					"high" = Set GPIO to HIGH
					"low" = Set GPIO to LOW
- qcom,partial-update-enabled:		Boolean used to enable partial
					panel update for command mode panels.
- 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,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,display-on-cmds:			A byte stream formed by multiple dcs packets base on
					qcom dsi controller protocol.
- qcom,display-on-wait:			Specifies the delay time before display command.
- qcom,mdss-dsi-default-command-state:	String that specifies the ctrl state for sending commands.
- qcom,mdss-shrink-pwm:			A array that specifies the pwm_min, pwm_default, pwm_max for
					brightness shrink function
- qcom,mdss-pwm-ctl-type:		Specifies pwm ctl type(0:none 1:PMIC(wled with cabc_en)
					2:external IC(with CABC PWM by DCS))

- htc,mdss-max-brt-level:		Specifies the actual max brightness supported by the panel.

- htc,mdss-camera-blk:			Specifies the brightness of camera

- htc,mdss-camera-dua-blk:		Specifies the brightness of dua camera

- htc,cabc-ui-cmds: 			A byte stream formed by multiple dcs packets base on
					qcom dsi controller protocol.

- htc,cabc-video-cmds: 			A byte stream formed by multiple dcs packets base on
					qcom dsi controller protocol.

- htc,cabc-off-cmds: 			A byte stream formed by multiple dcs packets base on
					qcom dsi controller protocol.

- htc,dimming-on-cmds: 			A byte stream formed by multiple dcs packets base on
					qcom dsi controller protocol.

- htc,mdss-pp-hue:			Specifies pp hue adjustment for panel

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

Example:
&soc {
	qcom,mdss_dsi_sim_video {
		compatible = "qcom,mdss-dsi-panel";
		qcom,mdss-dsi-panel-name = "simulator video mode dsi panel";
		status = "disable";
		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,mdss-dsi-panel-broadcast-mode;
		qcom,mdss-dsi-fbc-enable;
		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-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-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-te-v-sync-continue-lines = <0x3c>;
		qcom,mdss-dsi-te-v-sync-rd-ptr-irq-line = <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-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-lane-map = <0>;
		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-dsi-panel-timings = [7d 25 1d 00 37 33
					22 27 1e 03 04 00];
		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,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,mdss-pan-physical-width-dimension = <60>;
		qcom,mdss-pan-physical-height-dimension = <140>;
		qcom,mdss-dsi-panel-mode-gpio-state = "low";
		qcom,partial-update-enabled;
		qcom,mdss-dsi-reset-sequence = <1 2>, <0 10>, <1 10>;
		qcom,mdss-dsi-lp11-init;
		qcom,mdss-dsi-init-delay-us = <100>;
	};
};
