&mdss_mdp { dsi_dual_jdi_cmd_0: qcom,mdss_dsi_jdi_qhd_dualmipi0_cmd{ qcom,mdss-dsi-panel-name = "Dual 0 cmd mode dsi panel"; qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; qcom,mdss-dsi-panel-type = "dsi_cmd_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 = <1440>; qcom,mdss-dsi-h-front-porch = <120>; qcom,mdss-dsi-h-back-porch = <44>; qcom,mdss-dsi-h-pulse-width = <16>; qcom,mdss-dsi-h-sync-skew = <0>; qcom,mdss-dsi-v-back-porch = <4>; qcom,mdss-dsi-v-front-porch = <8>; qcom,mdss-dsi-v-pulse-width = <4>; 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-bpp = <24>; qcom,mdss-dsi-color-order = "rgb_swap_rgb"; qcom,mdss-dsi-underflow-color = <0xff>; qcom,mdss-dsi-border-color = <0>; qcom,mdss-dsi-h-sync-pulse = <0>; qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; 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-hor-line-idle = <0 40 256>, <40 120 128>, <120 240 64>; qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 04 00]; qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; qcom,mdss-dsi-t-clk-post = <0x03>; qcom,mdss-dsi-t-clk-pre = <0x27>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-dma-trigger = "trigger_sw"; qcom,mdss-dsi-mdp-trigger = "none"; qcom,mdss-dsi-te-pin-select = <1>; qcom,mdss-dsi-wr-mem-start = <0x2c>; qcom,mdss-dsi-wr-mem-continue = <0x3c>; qcom,mdss-dsi-te-dcs-command = <1>; qcom,mdss-dsi-te-check-enable; qcom,mdss-dsi-te-using-te-pin; qcom,ulps-enabled; qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 b0 03 05 01 00 00 0a 00 01 00 /* Soft reset, wait 10ms */ 15 01 00 00 0a 00 02 3a 77 /* Set Pixel format (24 bpp) */ 39 01 00 00 0a 00 05 2a 00 00 04 ff /* Set Column address */ 39 01 00 00 0a 00 05 2b 00 00 05 9f /* Set page address */ 15 01 00 00 0a 00 02 35 00 /* Set tear on */ 39 01 00 00 0a 00 03 44 00 00 /* Set tear scan line */ 15 01 00 00 0a 00 02 51 ff /* write display brightness */ 15 01 00 00 0a 00 02 53 24 /* write control brightness */ 15 01 00 00 0a 00 02 55 00 /* CABC brightness */ 05 01 00 00 78 00 01 11 /* exit sleep mode, wait 120ms */ 05 01 00 00 10 00 01 29]; /* Set display on, wait 16ms */ qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 05 01 00 00 78 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; }; };
Horizontal:
h-pulse-width, h-back-porch, h-front-porch, panel-width
Vertical:
v-pulse-width, v-back-porch, v-front-porch, panel-height
traffic-mode:
burst_mode, non_burst_sync_event
bpp(bits per pixel):
24/16
qcom,mdss-dsi-on-command:
以下摘自mdss-dsi-panel.txt:
- 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
对应的是:
drivers\video\msm\mdss\mdss_dsi_cmd.h
struct dsi_ctrl_hdr { char dtype; /* data type */ char last; /* last in chain */ char vc; /* virtual chan */ char ack; /* ask ACK from peripheral */ char wait; /* ms */ short dlen; /* 16 bits */ } __packed;