blob: ae6f8ef66267d8c1b072881fbac0f79321cde5ff [file] [log] [blame]
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: 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-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.
"dfps_immediate_porch_mode" = FPS change request is
implemented immediately by changing panel porch
values.
- 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-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-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-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.
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,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-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-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>;
};
};