&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;