###################################################################################################### Listed below are some of the properties to set our APU (Qualcomm Snapdragon 410), to output DSI video. ###################################################################################################### - 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-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-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-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-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,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-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 "te_signal_check" = Uses TE signal behaviour to check the panel status - qcom,mdss-dsi-panel-status-value: Specifies the value of the panel status register when the panel is in good state. - qcom,dynamic-mode-switch-enabled: Boolean used to mention whether panel supports dynamic switching from video mode to command mode and vice versa. - 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,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-post-init-delay: Specifies required number of frames to wait so that panel can be functional to show proper display. - qcom,mdss-dsi-force-clock-lane-hs: Boolean to force dsi clock lanes to HS mode always. ###################### Our current settings ######################### &mdss_mdp { dsi_panel_video: qcom,mdss_dsi_panel_video { qcom,mdss-dsi-panel-name = "ADVTT0101 panel"; qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; qcom,mdss-dsi-panel-type = "dsi_video_mode"; qcom,mdss-dsi-panel-destination = "display_1"; qcom,mdss-dsi-panel-framerate = <60>; qcom,mdss-dsi-virtual-channel-id = <0>; qcom,mdss-dsi-stream = <0>; qcom,mdss-dsi-panel-width = <1280>; qcom,mdss-dsi-panel-height = <800>; qcom,mdss-dsi-h-front-porch = <188>; qcom,mdss-dsi-h-back-porch = <52>; qcom,mdss-dsi-h-pulse-width = <8>; qcom,mdss-dsi-h-sync-skew = <0>; qcom,mdss-dsi-v-back-porch = <10>; qcom,mdss-dsi-v-front-porch = <21>; qcom,mdss-dsi-v-pulse-width = <2>; 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-h-active-res = <1280>; qcom,mdss-dsi-v-active-res = <800>; qcom,mdss-dsi-bpp = <24>; qcom,mdss-dsi-underflow-color = <0xff>; qcom,mdss-dsi-border-color = <0>; qcom,mdss-dsi-on-command = []; qcom,mdss-dsi-off-command = []; qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-h-sync-pulse = <1>; qcom,mdss-dsi-traffic-mode = "non_burst_sync_pulse"; qcom,mdss-dsi-lane-map = "lane_map_0123"; qcom,mdss-dsi-bllp-eof-power-mode; qcom,mdss-dsi-bllp-power-mode; 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-panel-timings = [87 1c 12 00 42 44 18 20 17 03 04 00]; qcom,mdss-dsi-t-clk-post = <0x04>; qcom,mdss-dsi-t-clk-pre = <0x1b>; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-dma-trigger = "trigger_sw"; qcom,mdss-dsi-mdp-trigger = "none"; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; qcom,mdss-dsi-force-clock-lane-hs; qcom,mdss-pan-physical-width-dimension = <217>; qcom,mdss-pan-physical-height-dimension = <136>; qcom,mdss-dsi-init-delay-us = <7000>; qcom,mdss-dsi-lp11-init; }; };