# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/mdss-dsi-panel.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: QTI mdss-dsi-panel description: > mdss-dsi-panel is a dsi panel device which supports panels that are compatible with MIPI display serial interface specification. maintainers: - Vara Reddy - Vishnuvardhan Prodduturi properties: compatible: description: > 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: description: > 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. default: disable qcom,mdss-dsi-panel-controller: description: > Specifies the phandle for the DSI controller that this panel will be mapped to. $ref: /schemas/types.yaml#/definitions/phandle qcom,mdss-dsi-panel-width: description: Specifies panel width in pixels. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-panel-height: description: Specifies panel height in pixels. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-bpp: description: > Specifies the panel bits per pixel. 3 = for rgb111 8 = for rgb332 12 = for rgb444 16 = for rgb565 18 = for rgb666 24 = for rgb888 enum: [3, 8, 12, 16, 18, 24] $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-panel-destination: description: > A string that specifies the destination display for the panel. "display_1" = DISPLAY_1 "display_2" = DISPLAY_2 $ref: /schemas/types.yaml#/definitions/string-array enum: [display_1, display_2] qcom,mdss-dsi-panel-timings: description: > An array of length 12 that specifies the PHY timing settings for the panel. $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 12 maxItems: 12 qcom,mdss-dsi-panel-timings-8996: description: > An array of length 40 char that specifies the 8996 PHY lane timing settings for the panel. $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 40 maxItems: 40 qcom,mdss-dsi-on-command: description: > A byte stream formed by multiple dcs packets base on qcom dsi controller protocol. byte 0: dcs data type byte 1: Unused byte 2: virtual channel number byte 3: Message flags 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 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 3 = 00 (indicates this is an individual packet) Byte 3 = 40 (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. qcom,mdss-dsi-off-command: description: > A byte stream formed by multiple dcs packets based on qcom dsi controller protocol. Refer to qcom,mdss-dsi-on-command for command format. qcom,mdss-dsi-post-panel-on-command: description: > same as "qcom,mdss-dsi-on-command" except commands are sent after displaying an image. qcom,platform-reset-gpio: description: > Specifies the reset gpio of primary display, not required for simulation panels. cell-index: description: Timing node index to help driver maintain the device tree ordering. qcom,platform-sec-reset-gpio: description: Specifies the reset gpio of secondary display. qcom,platform-bklight-en-gpio: description: Specifies the gpio for enabling backlight. qcom,mdss-dsi-panel-name: description: A string used as a descriptive name of the panel qcom,vid-on-commands: description: > same as "qcom,mdss-dsi-on-command" except commands are only sent for video mode. qcom,vid-on-commands-state: description: > String that specifies the ctrl state for sending panel on commands. for video mode. "dsi_lp_mode" = DSI low power mode (default) "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array enum: [dsi_lp_mode, dsi_hs_mode] default: dsi_lp_mode qcom,cmd-on-commands: description: > same as "qcom,mdss-dsi-on-command" except commands are only sent for command mode. qcom,cmd-on-commands-state: description: > String that specifies the ctrl state for sending panel on commands. for command mode. "dsi_lp_mode" = DSI low power mode (default) "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode qcom,mdss-dsi-physical-type: description: > A string used as a decriptive type of the panel. "oled" : That indicate it's an OLED panel. "lcd" : That indicate it's an LCD panel. If it is not set, consider it is a LCD panel as default. default: lcd enum: [oled, lcd] qcom,mdss-dsi-panel-phy-timings: description: > 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: description: Boolean used to broadcast dcs command to panels. qcom,mdss-dsi-fbc-enable: description: Boolean used to enable frame buffer compression mode. qcom,mdss-dsi-panel-mode-switch: description: Boolean used to enable panel operating mode switch. qcom,poms-align-panel-vsync: description: Boolean used to align panel TE with timing engine vsync in POMS qcom,mdss-dsi-bpp-switch: description: Boolean used to enable bpp mode switch for non-DSC modes. qcom,mdss-dsi-bpp-mode: description: > Specifies the panel bits per pixel per timing node, only used when "qcom,mdss-dsi-bpp-switch" is set. 24 = for rgb888, default mode if "qcom,mdss-dsi-bpp-mode" is not set. 30 = for rgb101010. enum: [24, 30] qcom,mdss-dsi-fbc-slice-height: description: > 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: description: Boolean to enable 2D map prediction. qcom,mdss-dsi-fbc-ver2-mode: description: Boolean to enable FBC 2.0 that supports 1/3 compression. qcom,mdss-dsi-fbc-bpp: description: > Compressed bpp supported by the panel. Specified color order is used as default value. qcom,mdss-dsi-fbc-packing: description: Component packing. 0 = default value. default: 0 qcom,mdss-dsi-fbc-quant-error: description: Boolean used to enable quantization error calculation. qcom,mdss-dsi-fbc-bias: description: > Bias for CD. 0 = default value. default: 0 qcom,mdss-dsi-fbc-pat-mode: description: Boolean used to enable PAT mode. qcom,mdss-dsi-fbc-vlc-mode: description: Boolean used to enable VLC mode. qcom,mdss-dsi-fbc-bflc-mode: description: Boolean used to enable BFLC mode. qcom,mdss-dsi-fbc-h-line-budget: description: > Per line extra budget. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-fbc-budget-ctrl: description: > Extra budget level. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-fbc-block-budget: description: Per block budget. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-fbc-lossless-threshold: description: > Lossless mode threshold. 0 = default value.. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-fbc-lossy-threshold: description: > Lossy mode threshold. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-fbc-rgb-threshold: description: > Lossy RGB threshold. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-fbc-lossy-mode-idx: description: > Lossy mode index value. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-fbc-max-pred-err: description: > Max quantization prediction error. 0 = default value default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-h-back-porch: description: > Horizontal back porch value in pixel. 6 = default value. default: 6 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-h-front-porch: description: > Horizontal front porch value in pixel. 6 = default value. default: 6 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-h-pulse-width: description: > Horizontal pulse width. 2 = default value. default: 2 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-h-sync-skew: description: > Horizontal sync skew value. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-v-back-porch: description: > Vertical back porch value in pixel. 6 = default value. default: 6 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-v-front-porch: description: > Vertical front porch value in pixel. 6 = default value. default: 6 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-v-pulse-width: description: > Vertical pulse width. 2 = default value. default: 2 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-h-left-border: description: > Horizontal left border in pixel. 0 = default value default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-h-right-border: description: > Horizontal right border in pixel. 0 = default value default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-v-top-border: description: > Vertical top border in pixel. 0 = default value default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-v-bottom-border: description: > Vertical bottom border in pixel. 0 = default value default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-underflow-color: description: > Specifies the controller settings for the panel under flow color. 0xff = default value. default: 0xff $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-border-color: description: > Defines the border color value if border is present. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-panel-jitter: description: > Panel jitter value is expressed in terms of numerator and denominator. It contains two u32 values - numerator followed by denominator. The jitter configurition causes the early wakeup if panel needs to adjust before vsync. Default jitter value is 2.0%. Max allowed value is 10%. $ref: /schemas/types.yaml#/definitions/uint32-array maxItems: 2 minItems: 2 items: - description: numerator of jitter configuration - description: denominator of jitter configuration qcom,dsi-wd-jitter-enable: description: Boolean used to enable watchdog jitter in simulator panels qcom,dsi-wd-ltj-max-jitter: description: > A u32 pair with numerator and denominator specifying the maximum jitter over a long time. $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 2 maxItems: 2 qcom,dsi-wd-ltj-time-sec: description: A u32 value to specify the time over which the jitter increases. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-panel-prefill-lines: description: > 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. default: 16 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-pan-enable-dynamic-fps: description: Boolean used to enable change in frame rate dynamically. qcom,mdss-dsi-pan-fps-update: description: > 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. $ref: /schemas/types.yaml#/definitions/string-array qcom,dsi-supported-dfps-list: description: List containing all the supported refresh rates. $ref: /schemas/types.yaml#/definitions/uint32-array qcom,dsi-supported-qsync-min-fps-list: description: > The fps value in this list indicates the qsync min fps corresponding to the mode in the qcom,dsi-supported-dfps-list with same index. qcom,dsi-supported-qsync-min-fps-list cannot be defined along with qcom,mdss-dsi-qsync-min-refresh-rate. "qcom,qsync-enable" property should be set along with this property. $ref: /schemas/types.yaml#/definitions/uint32-array qcom,qsync-mode-min-refresh-rate: description: > This u32 property is used to define qsync min fps per timing node instead of using same qsync min fps for different timing modes. For defining qsync min fps per timing node, this property should be defined in all timing nodes or else to define single qsync fps for all modes, "qcom,mdss-dsi-qsync-min-refresh-rate" property can be used. "qcom,qsync-enable" property should be set along with this property. $ref: /schemas/types.yaml#/definitions/uint32 qcom,dsi-qsync-avr-step-list: description: > The u32 fps values in this optional list indicate the avr step requirement for qsync/AVR video mode panels. When a late frame is triggered, AVR will delay the trigger to ensure the frame transfer snaps to the next step interval. The step rate must be a common multiple of refresh and min-fps rates. The values in this list should correspond to the dfps-list with same indeces when DFPS is used, or a single value which applies to all rates. $ref: /schemas/types.yaml#/definitions/uint32 qcom,dsi-qsync-mode-avr-step-fps: description: > This u32 property is used to define avr step fps per timing node instead of using same qsync avr step fps for different timing modes. For defining avr step fps per timing node, this property should be defined in all timing nodes or else to define single qsync avr step fps for all modes use "qcom,mdss-dsi-qsync-avr-step-fps". $ref: /schemas/types.yaml#/definitions/uint32 qcom,dsi-qsync-avr-step-fps: description: > A u32 entry to specify avr step rate supported by the panel. "qcom,qsync-enable" property should be set along with this property $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-transfer-time-us-min: description: > Minimum supported mdp transfer time in us. This entry enables support to dynamically set the transfer time for the given mode within the defined range. Both min & max must be defined to enable. qcom,mdss-dsi-transfer-time-us must be greater than this value. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-transfer-time-us-max: description: > Maximum supported mdp transfer time in us. This entry enables support to dynamically set the transfer time for the given mode within the defined range. Both min & max must be defined to enable. This time should not be greater than vsync duration. qcom,mdss-dsi-transfer-time-us must be less than this value. $ref: /schemas/types.yaml#/definitions/uint32 qcom,min-refresh-rate: description: Minimum refresh rate supported by the panel. $ref: /schemas/types.yaml#/definitions/uint32 qcom,max-refresh-rate: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32 qcom,dsi-dyn-clk-enable: description: > Boolean to indicate dsi dynamic clock switch feature is supported. qcom,dsi-dyn-clk-type: description: > A string that specifies the sub-type for the dynamic clk feature. If dyn clk type is not specified, default value "legacy" is used. "legacy" = FPS is not maintained after dynamic clock switch. "constant-fps-adjust-hfp" = FPS is maintained even after dynamic clock switch by changing panel horizontal front porch values. "constant-fps-adjust-vfp" = FPS is maintained even after dynamic clock switch by changing panel vertical front porch values. "adjust-hfp" = Dynamic clock switch is achieved by adjusting the horizontal front porch value according to the qcom,dsi-dyn-hfp-list. FPS may not be maintained after the switch. "adjust-vfp" = Dynamic clock switch is achieved by adjusting the vertical front porch value according to the qcom,dsi-dyn-vfp-list. FPS may not be maintatined after the switch. This dyn-clk-type entry is an optional binding which is contingent on the enabling of dynamic clock switch. $ref: /schemas/types.yaml#/definitions/string-array default: legacy qcom,mdss-dsi-bl-pmic-control-type: description: > 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_external" = Backlight controlled by externally other: Unknown backlight control. (default) $ref: /schemas/types.yaml#/definitions/string-array default: other qcom,mdss-dsi-sec-bl-pmic-control-type: description: > A string that specifies the implementation of backlight control for secondary 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_external" = Backlight controlled by externally other: Unknown backlight control. (default) $ref: /schemas/types.yaml#/definitions/string-array default: other qcom,mdss-dsi-bl-pwm-pmi: description: Boolean to indicate that PWM control is through second pmic chip. qcom,mdss-dsi-bl-pmic-bank-select: description: > LPG channel for backlight. Required if backlight pmic control type is PWM qcom,mdss-dsi-bl-pmic-pwm-frequency: description: > PWM period in microseconds. Required if backlight pmic control type is PWM qcom,mdss-dsi-pwm-gpio: description: > PMIC gpio binding to backlight. Required if backlight pmic control type is PWM qcom,mdss-dsi-bl-min-level: description: > Specifies the min backlight level supported by the panel. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-bl-max-level: description: > Specifies the max backlight level supported by the panel. 255 = default value. default: 255 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-bl-inverted-dbv: description: > A boolean to specify whether to invert the display brightness value. When this boolean is set, will inverted display brightness value. qcom,bl-dsc-cmd-state: description: > String that specifies the ctrl state for sending dcs brightness commands. "dsi_hs_mode" = DSI high speed mode (default) "dsi_lp_mode" = DSI low power mode If the string was not set, dsi_hs_mode will be set as default mode. $ref: /schemas/types.yaml#/definitions/string-array default: dsi_hs_mode enum: [dsi_hs_mode, dsi_lp_mode] qcom,mdss-brightness-max-level: description: > Specifies the max brightness level supported. 255 = default value. default: 255 $ref: /schemas/types.yaml#/definitions/uint32 qcom,bl-update-flag: description: > A string that specifies controls for backlight update of the panel. "delay_until_first_frame" = Delay backlight update of the panel until the first frame is received from the HW. $ref: /schemas/types.yaml#/definitions/string-array qcom,mdss-dsi-interleave-mode: description: > Specifies interleave mode. 0 = default value. default: 0 qcom,mdss-dsi-panel-type: description: > Specifies the panel operating mode. "dsi_video_mode" = enable video mode (default). "dsi_cmd_mode" = enable command mode. default: dsi_video_mode qcom,5v-boost-gpio: description: Specifies the panel gpio for display 5v boost. qcom,mdss-dsi-te-check-enable: description: Boolean to enable Tear Check configuration. qcom,mdss-dsi-te-using-wd: description: > Boolean entry enables the watchdog timer support to generate the vsync signal for command mode panel. By default, panel TE will be used to generate the vsync. qcom,mdss-dsi-te-using-te-pin: description: Boolean to specify whether using hardware vsync. qcom,mdss-esync: description: > Boolean entry to enable esync. "qcom,mdss-esync-hsync-milli-pulse-width" property should be set along with this property. qcom,mdss-esync-milli-skew: description: > u32 entry to specify the skew between the esync signal and the timing engine, in 1/1000ths of a pulse period. Example: qcom,mdss-esync-milli-skew = <150>; This would set the esync signal to precede the timing engine's output by 0.15 of a pulse period. default: 0 qcom,mdss-esync-hsync-milli-pulse-width: description: > u32 entry to specify the pulse width of the hsync portion of the esync signal, in 1/1000ths of a pulse period. Example: qcom,mdss-esync-hsync-milli-pulse-width = <750>; This would set the esync line high for 0.75 of a pulse period, every hsync. qcom,mdss-esync-emsync-fps: description: > u32 entry to specify how frequently the esync signal should be modulated with an EM pulse, in Hz. qcom,mdss-esync-emsync-milli-pulse-width: description: > u32 entry to specify the pulse width of the modulated esync signal, in 1/1000ths of a pulse period. See "qcom,mdss-esync-hsync-milli-pulse-width". qcom,qsync-enable: description: Boolean property to indicate if qsync is enabled/disabled. qcom,mdss-dsi-qsync-min-refresh-rate: description: > A u32 entry to specify minimum refresh rate supported by the panel to enable qsync feature. "qcom,qsync-enable" property should be set along with this property. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-qsync-on-commands: description: String that specifies the commands to enable qsync feature. $ref: /schemas/types.yaml#/definitions/string-array qcom,mdss-dsi-qsync-on-commands-state: description: > String that specifies the ctrl state for sending qsync on commands. "dsi_lp_mode" = DSI low power mode (default) "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-dsi-qsync-off-commands: description: String that specifies the commands to disable qsync feature. $ref: /schemas/types.yaml#/definitions/string-array qcom,mdss-dsi-qsync-off-commands-state: description: > String that specifies the ctrl state for sending qsync off commands. "dsi_lp_mode" = DSI low power mode (default) "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-dsi-esync-post-on-commands: description: > List of panel resume commands that need to be sent after the esync generator has been enabled. Refer to "qcom,mdss-dsi-on-command" section for adding commands. qcom,mdss-dsi-sticky_still_en-command: description: > Command to enable panel GRAM and write to it in video mode. qcom,mdss-dsi-sticky_still_disable-command: description: > Command to disable panel GRAM in video mode. qcom,mdss-dsi-sticky_on_fly-command: description: > Command to enable panel GRAM and write to it for a self refresh for exactly one frame. qcom,mdss-dsi-qsync-freq-step-sequence-interval: description: > Array of 3-value tuples that describe the value of the "qcom,mdss-dsi-qsync-freq-step-sequence" property. Within each tuple, first value corresponds to the type of frequency stepping sequence (0 for normal usecase and 1 for video usecase), second value corresponds to the starting framerate for the sequence (in mHz), and third value corresponds to the number of steps in the sequence. qcom,mdss-dsi-qsync-freq-step-sequence: description: > Array of 2-value tuples that describe the framerate and duration of a step in a sequence. Within each tuple, first value corresponds to the framerate for this step in the sequence, and second value corresponds to the duration in frames of this step. The tuples are arranged into groups defined by the "qcom,mdss-dsi-qsync-freq-step-sequence-interval" property, which specifies the length of a frequency stepping sequence in steps. qcom,mdss-dsi-freq-step-pattern1-command: description: > List of panel commands to indicate to the panel the beginning of the first frequency stepping pattern, and information about that pattern. qcom,mdss-dsi-freq-step-pattern2-command: description: > List of panel commands to indicate to the panel the beginning of the second frequency stepping pattern, and information about that pattern. qcom,mdss-dsi-freq-step-pattern3-command: description: > List of panel commands to indicate to the panel the beginning of the third frequency stepping pattern, and information about that pattern. qcom,mdss-dsi-freq-step-pattern4-command: description: > List of panel commands to indicate to the panel the beginning of the fourth frequency stepping pattern, and information about that pattern. qcom,mdss-dsi-freq-step-pattern5-command: description: > List of panel commands to indicate to the panel the beginning of the fifth frequency stepping pattern, and information about that pattern. qcom,vrr-enable: description: > Boolean entry that restricts the inter-vsync frame latching to discrete boundaries. qcom,video-psr-enable: description: > Boolean entry to specify that the panel supports GRAM usage in video mode. qcom,mdss-dsi-te-pin-select: description: > Specifies TE operating mode. 0 = TE through embedded dcs command 1 = TE through TE gpio pin. (default) default: 1 $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1] qcom,mdss-dsi-te-dcs-command: description: > Inserts the dcs command. 1 = default value. default: 1 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-wr-mem-start: description: > DCS command for write_memory_start. 0x2c = default value. default: 0x2c $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-wr-mem-continue: description: > DCS command for write_memory_continue. 0x3c = default value. default: 0x3c $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-h-sync-pulse: description: > 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 default: 0 $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1] qcom,mdss-dsi-hfp-power-mode: description: > Boolean to determine DSI lane state during horizontal front porch (HFP) blanking period. qcom,mdss-dsi-hbp-power-mode: description: > Boolean to determine DSI lane state during horizontal back porch (HBP) blanking period. qcom,mdss-dsi-hsa-power-mode: description: > Boolean to determine DSI lane state during horizontal sync active (HSA) mode. qcom,mdss-dsi-last-line-interleave: description: > Boolean to determine if last line interleave flag needs to be enabled. qcom,mdss-dsi-bllp-eof-power-mode: description: > Boolean to determine DSI lane state during blanking low power period (BLLP) EOF mode. qcom,mdss-dsi-bllp-power-mode: description: > Boolean to determine DSI lane state during blanking low power period (BLLP) mode. qcom,mdss-dsi-traffic-mode: description: > 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. default: non_burst_sync_pulse enum: [non_burst_sync_pulse, non_burst_sync_event, burst_mode] qcom,mdss-dsi-pixel-packing: description: > Specifies if pixel packing is used (in case of RGB666). "tight" = Tight packing (default value). "loose" = Loose packing. default: tight enum: [tight, loose] qcom,mdss-dsi-virtual-channel-id: description: > Specifies the virtual channel identefier. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-color-order: description: > 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 default: rgb_swap_rgb enum: [rgb_swap_rgb, rgb_swap_rbg, rgb_swap_brg, rgb_swap_grb, rgb_swap_gbr] qcom,mdss-dsi-lane-0-state: description: Boolean that specifies whether data lane 0 is enabled. qcom,mdss-dsi-lane-1-state: description: Boolean that specifies whether data lane 1 is enabled. qcom,mdss-dsi-lane-2-state: description: Boolean that specifies whether data lane 2 is enabled. qcom,mdss-dsi-lane-3-state: description: Boolean that specifies whether data lane 3 is enabled. qcom,mdss-dsi-t-clk-post: description: > Specifies the byte clock cycles after mode switch. 0x00 = default value. default: 0x00 qcom,mdss-dsi-t-clk-pre: description: > Specifies the byte clock cycles before mode switch. 0x00 = default value. default: 0x00 qcom,mdss-dsi-stream: description: > Specifies the packet stream to be used. 0 = stream 0 (default) 1 = stream 1 default: 0 $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1] qcom,mdss-dsi-mdp-trigger: description: > 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 $ref: /schemas/types.yaml#/definitions/string-array default: trigger_sw enum: [none, trigger_te, trigger_sw, trigger_sw_te] qcom,mdss-dsi-dma-trigger: description: > 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 $ref: /schemas/types.yaml#/definitions/string-array default: trigger_sw enum: [none, trigger_te, trigger_sw, trigger_sw_seof, trigger_sw_te] qcom,mdss-dsi-panel-framerate: description: > Specifies the frame rate for the panel. 60 = 60 frames per second (default) default: 60 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-panel-clockrate: description: > A 64 bit value specifies the panel clock speed in Hz. 0 = default value. default: 0 $ref: /schemas/types.yaml#/definitions/uint64 qcom,mdss-mdp-transfer-time-us: description: > 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. default: 14000 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-on-command-state: description: > 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 $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-dsi-off-command-state: description: > 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 $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-dsi-post-mode-switch-on-command-state: description: > 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 $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-pan-physical-width-dimension: description: > Specifies panel physical width in mm which corresponds to the physical width in the framebuffer information. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-pan-physical-height-dimension: description: > Specifies panel physical height in mm which corresponds to the physical height in the framebuffer information. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-panel-test-pin: description: Specifies the panel test gpio. qcom,mdss-dsi-mode-sel-gpio-state: description: > 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". $ref: /schemas/types.yaml#/definitions/string-array default: dual_port enum: [dual_port, single_port, high, low] qcom,mdss-tear-check-disable: description: > 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: description: > Specifies the vertical total number of lines. The default value is 0xfff0. default: 0xfff0 qcom,mdss-tear-check-sync-init-val: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-tear-check-sync-threshold-start: description: > 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. default: 4 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-tear-check-sync-threshold-continue: description: > 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. default: 4 $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-tear-check-start-pos: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-tear-check-rd-ptr-trigger-intr: description: > Specify the read pointer value at which an interrupt has to be generated. The default value is panel height + 1. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-tear-check-frame-rate: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32 qqcom,mdss-dsi-reset-sequence: description: > 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: description: > String used to enable partial panel update for command mode panels. "none": partial update is disabled "single_roi": default enable mode, only single roi is sent to panel "dual_roi": two rois are merged into one big roi. Panel ddic should be able to process two roi's along with the DCS command to send two rois. disabled if property is not specified. This property is specified per timing node to support resolution restrictions. $ref: /schemas/types.yaml#/definitions/string-array default: single_roi enum: [none, single_roi, dual_roi] qcom,mdss-dsi-horizontal-line-idle: description: > 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: description: > Boolean indicates roi combination is need and function has been provided for dcs 2A/2B command. This property is specified per timing node to support resolution restrictions. qcom,dcs-cmd-by-left: description: > 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: description: > Boolean to indicate HDR support in panel. qcom,mdss-dsi-panel-hdr-color-primaries: description: > 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 $ref: /schemas/types.yaml#/definitions/uint32-array minimum: 0 maximum: 50000 items: - description: x value of white chromaticity of display panel - description: y value of white chromaticity of display panel - description: x value of red chromaticity of display panel - description: y value of red chromaticity of display panel - description: x value of green chromaticity of display panel - description: y value of green chromaticity of display panel - description: x value of blue chromaticity of display panel - description: y value of blue chromaticity of display panel qcom,mdss-dsi-panel-peak-brightness: description: > 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: description: > 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: description: > Boolean used to enable the DSI clocks and data lanes (low power 11) before issuing hardware reset line. qcom,mdss-dsi-init-delay-us: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-rx-eot-ignore: description: Boolean used to enable ignoring end of transmission packets. qcom,mdss-dsi-tx-eot-append: description: Boolean used to enable appending end of transmission packets. qcom,ulps-enabled: description: Boolean to enable support for Ultra Low Power State (ULPS) mode. qcom,suspend-ulps-enabled: description: Boolean to enable support for ULPS mode for panels during suspend state. qcom,spr-pack-type: description: > String to specify the SPR pack type of panel pixel layout Expected string for the pack types supported by MDSS are, "pentile", "rgbw", "yygm", "yygw" $ref: /schemas/types.yaml#/definitions/string-array qcom,panel-roi-alignment: description: | Specifies the panel ROI alignment restrictions on its left, top, width, height alignments and minimum width and height values. This property is specified per timing node to support resolution's alignment restrictions. $ref: /schemas/types.yaml#/definitions/uint32 qcom,esd-check-enabled: description: Boolean used to enable ESD recovery feature. qcom,mdss-dsi-panel-status-command: description: > 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: Unused 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: description: > 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 $ref: /schemas/types.yaml#/definitions/string-array enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-dsi-lp1-command: description: > An optional byte stream to request low power mode on a panel qcom,mdss-dsi-lp1-command-mode: description: > String that specifies the ctrl state for setting the panel power mode. "dsi_lp_mode" = DSI low power mode "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-dsi-lp2-command: description: > An optional byte stream to request ultra low power mode on a panel qcom,mdss-dsi-lp2-command-mode: description: > String that specifies the ctrl state for setting the panel power mode. "dsi_lp_mode" = DSI low power mode "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-dsi-nolp-command: description: An optional byte stream to disable low power and ultra low power panel modes qcom,mdss-dsi-nolp-command-mode: description: > String that specifies the ctrl state for setting the panel power mode. "dsi_lp_mode" = DSI low power mode "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array enum: [dsi_lp_mode, dsi_hs_mode] qcom,mdss-dsi-panel-status-check-mode: description: > 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 enum: [bta_check, reg_read, reg_read_nt35596, te_signal_check] qcom,mdss-dsi-panel-status-read-length: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32-array qcom,mdss-dsi-panel-status-valid-params: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32-array qcom,mdss-dsi-panel-status-value: description: > 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: description: > Integer value that specifies the maximum number of errors from register read that can be ignored before treating that the panel has gone bad. $ref: /schemas/types.yaml#/definitions/uint32 qcom,dynamic-mode-switch-enabled: description: > Boolean used to mention whether panel supports dynamic switching from video mode to command mode and vice versa. qcom,dynamic-mode-switch-type: description: > 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. $ref: /schemas/types.yaml#/definitions/string-array qcom,mdss-dsi-post-mode-switch-on-command: description: > 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,cmd-mode-switch-out-commands: description: > List of commands that need to be sent to panel in order to switch out command mode dynamically. Refer to "qcom,mdss-dsi-on-command" section for adding commands. qcom,cmd-mode-switch-out-commands-state: description: > String that specifies the ctrl state for sending command mode switch out commands. "dsi_lp_mode" = DSI low power mode (default) "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,cmd-mode-switch-in-commands: description: > List of commands that need to be sent to panel in order to switch in command mode dynamically. Refer to "qcom,mdss-dsi-on-command" section for adding commands. qcom,cmd-mode-switch-in-commands-state: description: > String that specifies the ctrl state for sending command mode switch in commands. "dsi_lp_mode" = DSI low power mode (default) "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,video-mode-switch-out-commands: description: > List of commands that need to be sent to panel in order to switch out video mode dynamically. Refer to "qcom,mdss-dsi-on-command" section for adding commands. qcom,video-mode-switch-out-commands-state: description: > String that specifies the ctrl state for sending video mode switch out commands. "dsi_lp_mode" = DSI low power mode (default) "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,video-mode-switch-in-commands: description: > List of commands that need to be sent to panel in order to switch in video mode dynamically. Refer to "qcom,mdss-dsi-on-command" section for adding commands. qcom,video-mode-switch-in-commands-state: description: > String that specifies the ctrl state for sending video mode switch in commands. "dsi_lp_mode" = DSI low power mode (default) "dsi_hs_mode" = DSI high speed mode $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,send-pps-before-switch: description: > 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: description: > 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 $ref: /schemas/types.yaml#/definitions/string-array qcom,panel-ack-disabled: description: > 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: description: Boolean to force dsi clock lanes to HS mode always. qcom,panel-cphy-mode: description: Boolean to specify whether panel is using cphy. qcom,compression-mode: description: > Select compression mode for panel. "fbc" - frame buffer compression "dsc" - display stream compression. "vdc" - VESA display compression. If "dsc" or "vdc" compression is used then config subnodes needs to be defined. $ref: /schemas/types.yaml#/definitions/string-array qcom,panel-supply-entries: description: > 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: description: > 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: description: > Each DSC version can have multiple SCR. This 8 bit value indicates current SCR revision information supported by panel. qcom,mdss-dsc-encoders: description: > 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. default: 1 $ref: /schemas/types.yaml#/definitions/uint32 enum: [1, 2] qcom,mdss-dsc-slice-height: description: An integer value indicates the dsc slice height. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsc-slice-width: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsc-slice-per-pkt: description: An integer value indicates the slice per dsi packet. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsc-bit-per-component: description: An integer value indicates the bits per component before compression. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsc-bit-per-pixel: description: An integer value indicates the bits per pixel after compression. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsc-block-prediction-enable: description: A boolean value to enable/disable the block prediction at decoder. qcom,mdss-dsc-rc-override_v1: description: A boolean value to enable override rc_range_bpg_ofs in sde_dsc_rc_range_bpg_override_v1. qcom,mdss-dsc-config-by-manufacture-cmd: description: > A boolean to indicates panel use manufacture command to setup pps instead of standard dcs type 0x0A. qcom,vdc-version: description: > An 8 bit value indicates the VDC version supported by panel. Bits[0.3] provides information about minor version while Bits[4.7] provides major version information. It supports only VDC rev 1(Major).2(Minor) right now. qqcom,vdc-version-release: description: An 8 bit value indicated VDC version release. This has to be set to 0. const: 0 qcom,vdc-slice-height: description: An u32 value which indicates slice height. This should be at least 16 lines. $ref: /schemas/types.yaml#/definitions/uint32 qcom,vdc-slice-width: description: > An u32 value which indicates slice width. This should be at least 64 pixels and should also be a multiple of 8 $ref: /schemas/types.yaml#/definitions/uint32 qcom,vdc-slice-per-pkt: description: An u32 value indicates the slice per dsi packet. $ref: /schemas/types.yaml#/definitions/uint32 qcom,vdc-bit-per-component: description: An u32 value indicates the bits per component before compression. $ref: /schemas/types.yaml#/definitions/uint32 qcom,vdc-bit-per-pixel: description: An u32 value indicates the bits per pixel after compression. $ref: /schemas/types.yaml#/definitions/uint32 qcom,src-color-space: description: > An u32 value indicating the source color space. It can either be RGB or YUV. Default value is assumed to be RGB 0 - RGB 1 - YUV $ref: /schemas/types.yaml#/definitions/uint32 default: 0 enum: [0,1] qcom,src-chroma-format: description: > An u32 value indicating the source color space. It can either be 444, 420 or 422. Default value is assumed to be 444 0 - 444 1 - 422 2 - 420 $ref: /schemas/types.yaml#/definitions/uint32 default: 0 enum: [0, 1, 2] qcom,mdss-pps-delay-ms: description: > An u32 value that indicates post PPS command delay in milliseconds. If no value is specified, it chooses zero by default. $ref: /schemas/types.yaml#/definitions/uint32 qcom,display-topology: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 3 maxItems: 3 items: - description: number of mixers - description: number of compression encoders - description: number of interfaces qcom,default-topology-index: description: > 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. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-ext-bridge-mode: description: External bridge chip is connected instead of panel. qcom,mdss-dsi-dma-schedule-line: description: > An integer value indicates the line number after vertical active region for video mode panels and line number after TE for command mode panels, at which command DMA needs to be triggered. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-dma-schedule-window: description: > An integer value indicates the width of the DMA window during which a DCS command will be triggered for command mode panels $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-mdp-idle-ctrl-en: description: > A boolean to enable LP11 insertion after transmission of every line. This requires command mdp burst mode to be disabled. qcom,mdss-dsi-mdp-idle-ctrl-len: description: > An u32 value indicating the number of dsi pclk cycles of idle time to insert between command mode mdp packets. This time must be long enough to cover the time link takes to switch between HS to LP11 mode. $ref: /schemas/types.yaml#/definitions/uint32 qcom,vert-padding-value: description: > An u32 value indicating the second display height while using two displays in shared display feature. $ref: /schemas/types.yaml#/definitions/uint32 qcom,dba-panel: description: > Indicates whether the current panel is used as a display bridge to a non-DSI interface. qcom,bridge-name: description: > 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. $ref: /schemas/types.yaml#/definitions/string-array qcom,adjust-timer-wakeup-ms: description: > An integer value to indicate the timer delay(in ms) to accommodate s/w delay while configuring the event timer wakeup logic. $ref: /schemas/types.yaml#/definitions/uint32 qcom,mdss-dsi-display-timings: description: > 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: description: > Specifies required number of frames to wait so that panel can be functional to show proper display. qcom,mdss-dsi-video-mode: description: A boolean to indicates current timing can only work in video mode. qcom,mdss-dsi-cmd-mode: description: A boolean to indicates current timing can only work in command mode. # Additional properties added to the second level nodes that represent timings properties: qcom,mdss-dsi-timing-default: description: > Property that specifies the current child as the default timing configuration that will be used. qcom,mdss-dsi-timing-switch-command: description: > 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: description: > 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 $ref: /schemas/types.yaml#/definitions/string-array default: dsi_lp_mode enum: [dsi_lp_mode, dsi_hs_mode] qcom,dsi-dyn-clk-list: description: > An u32 array of all the supported dsi bit clock frequencies in Hz for the given mode, listed in order of preference. $ref: /schemas/types.yaml#/definitions/uint32-array qcom,dsi-dyn-clk-hfp-list: description: > An u32 array of horizontal front porch values corresponding to the dsi bit clock frequencies in qcom,dsi-dyn-clk-list for the given mode. This property is essential for the adjust-hfp dynamic clock type, which is used for specific horizontal porch adjustments when maintaining a constant frame rate is not required. $ref: /schemas/types.yaml#/definitions/uint32-array qcom,dsi-dyn-clk-vfp-list: description: > An u32 array of vertical front porch values corresponding to the dsi bit clock frequencies in qcom,dsi-dyn-clk-list for the given mode. This property is essential for the adjust-vfp dynamic clock type, which is used for specific horizontal porch adjustments when maintaining a constant frame rate is not required. $ref: /schemas/types.yaml#/definitions/uint32-array qcom,disable-rsc-solver: description: > Timing node property to dynamically disable RSC solver for high FPS usecase due to lower bitclk rate. required: - compatible - status - qcom,mdss-dsi-panel-controller - qcom,mdss-dsi-panel-width - qcom,mdss-dsi-panel-height - qcom,mdss-dsi-bpp - qcom,mdss-dsi-panel-destination - qcom,mdss-dsi-panel-timings - qcom,mdss-dsi-panel-timings-8996 - qcom,mdss-dsi-on-command - qcom,mdss-dsi-off-command - qcom,mdss-dsi-post-panel-on-command - qcom,platform-reset-gpio if: properties: contains: const: bl_ctrl_pwm then: required: - qcom,mdss-dsi-bl-pmic-bank-select - qcom,mdss-dsi-bl-pmic-pwm-frequency - qcom,mdss-dsi-pwm-gpio examples: - | &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-panel-mode-switch; qcom,poms-align-panel-vsync; qcom,mdss-dsi-bpp-switch; 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,bl-update-flag = "delay_until_first_frame"; qcom,spr-pack-type = "pentile"; 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-wd; qcom,mdss-dsi-te-using-te-pin; qcom,qsync-enable; qcom,mdss-dsi-qsync-min-refresh-rate = <30>; 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-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,dsi-supported-dfps-list = <30 45 60>; qcom,dsi-supported-qsync-min-fps-list = <30 40 55>; qcom,dsi-qsync-avr-step-list = <0 360 660>; qcom,dsi-qsync-avr-step-fps = <360>; 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,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,mdss-esync; qcom,mdss-esync-milli-skew = <150>; qcom,mdss-esync-hsync-milli-pulse-width = <750>; qcom,mdss-esync-emsync-fps = <240>; qcom,mdss-esync-emsync-milli-pulse-width = <300>; qcom,qsync-enable; qcom,vrr-enable; qcom,video-psr-enable; qcom,dsi-qsync-avr-step-fps = <240>; qcom,mdss-dsi-qsync-min-refresh-rate = <60>; 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 0x10>; qcom,mdss-dsi-panel-prefill-lines = <0x10>; qcom,mdss-dsi-force-clock-lane-hs; qcom,compression-mode = "dsc"; qcom,mdss-dsc-rc-override_v1; qcom,adjust-timer-wakeup-ms = <1>; qcom,platform-reset-gpio = <&tlmm 0 0>; qcom,dsi-dyn-clk-enable; qcom,dsi-dyn-clk-type = "adjust-hfp"; qcom,mdss-dsi-display-timings { wqhd { cell-index = <0>; qcom,mdss-dsi-cmd-mode; qcom,mdss-dsi-video-mode; qcom,mdss-dsi-bpp-mode = <24>; 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-clockrate = <424000000>; qcom,mdss-mdp-transfer-time-us = <12500>; qcom,dsi-wd-jitter-enable; qcom,mdss-dsi-panel-jitter = <0x2 0x1>; qcom,dsi-wd-ltj-max-jitter = <0x4 0x1>; qcom,dsi-wd-ltj-time-sec = <3600>; qcom,mdss-mdp-transfer-time-us-min = <10000>; qcom,mdss-mdp-transfer-time-us-max = <15000>; 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-esync-post-on-commands = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; qcom,mdss-dsi-sticky_still_en-command = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; qcom,mdss-dsi-sticky_still_disable-command = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; qcom,mdss-dsi-sticky_on_fly-command = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; qcom,mdss-dsi-qsync-freq-step-sequence-interval = <0 120000 2>, <0 10000 1>; qcom,mdss-dsi-qsync-freq-step-sequence = <60000 1>, <10000 1>, <10000 2>; qcom,mdss-dsi-freq-step-pattern1-command = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; qcom,mdss-dsi-freq-step-pattern2-command = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; qcom,mdss-dsi-freq-step-pattern3-command = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; qcom,mdss-dsi-freq-step-pattern4-command = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; qcom,mdss-dsi-freq-step-pattern5-command = [05 01 00 00 a0 00 02 11 00 05 01 00 00 02 00 02 29 00]; 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,qsync-mode-min-refresh-rate = <48>; qcom,dsi-qsync-mode-avr-step-fps = <360>; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; qcom,video-mode-switch-out-commands = [ 39 01 00 00 00 00 06 b2 00 5d 04 80 49]; qcom,video-mode-switch-out-commands-state = "dsi_lp_mode"; qcom,video-mode-switch-in-commands = [ 39 01 00 00 00 00 06 b2 00 5d 04 80 40]; qcom,video-mode-switch-in-commands-state = "dsi_lp_mode"; qcom,cmd-mode-switch-in-commands = [ 39 01 00 00 00 00 06 b2 00 5d 04 80 42]; qcom,cmd-mode-switch-in-commands-state = "dsi_lp_mode"; qcom,cmd-mode-switch-out-commands = [ 39 01 00 00 00 00 06 b2 00 5d 01 02 50]; qcom,cmd-mode-switch-out-commands-state = "dsi_lp_mode"; qcom,dsi-dyn-clk-list = <524637388 525735938 528842882>; qcom,dsi-dyn-clk-hfp-list = <52 64 96>; qcom,vert-padding-value = <2940>; 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,partial-update-enabled = "single_roi"; qcom,panel-roi-alignment = <4 4 2 2 20 20>; }; }; 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>; qcom,vdc-version = <0x12>; qcom,vdc-version-release = <0>; qcom,vdc-slice-height = <256>; qcom,vdc-slice-width = <720>; qcom,vdc-slice-per-pkt = <2>; qcom,vdc-bit-per-component = <8>; qcom,vdc-bit-per-pixel = <6>; qcom,src-color-space = <0>; qcom,src-chroma-format = <0>; qcom,mdss-dsi-dma-schedule-line = <5>; qcom,mdss-dsi-dma-schedule-window = <50>; }; }; ...