From 1616bc22bdc75b9ceefa06fa133949fd6bcd1c3f Mon Sep 17 00:00:00 2001 From: WeiYong Bi Date: Tue, 11 Apr 2017 15:58:33 +0800 Subject: [PATCH] drm/panel: support transmit DSI packet Change-Id: I6115479eebc05b44a8c01cd72919db0e5a6cb1f9 Signed-off-by: WeiYong Bi --- .../bindings/display/panel/simple-panel.txt | 28 +++ drivers/gpu/drm/panel/panel-simple.c | 228 +++++++++++++++++- 2 files changed, 255 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/display/panel/simple-panel.txt b/Documentation/devicetree/bindings/display/panel/simple-panel.txt index bc6697061643..346b80b64931 100644 --- a/Documentation/devicetree/bindings/display/panel/simple-panel.txt +++ b/Documentation/devicetree/bindings/display/panel/simple-panel.txt @@ -19,6 +19,18 @@ Optional properties when compatible is a dsi devices: - dsi,flags: dsi operation mode related flags - dsi,format: pixel format for video mode - dsi,lanes: number of active data lanes +- reset-gpios: GPIO pin to reset the panel +- reset-delay-ms: reset pulse width +- panel-init-sequence: A byte stream formed by simple multiple dcs packets. + byte 0: dcs data type + byte 1: wait number of specified ms after dcs command transmitted + byte 2, 3: 16 bits length in network byte order + byte 4 and beyond: number byte of payload +- panel-exit-sequence: A byte stream formed by simple multiple dcs packets. + byte 0: dcs data type + byte 1: wait number of specified ms after dcs command transmitted + byte 2, 3: 16 bits length in network byte order + byte 4 and beyond: number byte of payload Example: @@ -40,6 +52,9 @@ Or: power-supply = <&vdd_pnl_reg>; enable-gpios = <&gpio 90 0>; + reset-gpios = <&gpio 91 0>; + reset-delay-ms = <20>; + backlight = <&backlight>; dsi,flags = ; dsi,lanes = <4>; + panel-init-sequence = [ + 39 00 00 10 b1 6c 15 15 24 E4 11 f1 80 e4 + d7 23 80 c0 d2 58 + ... + 05 78 00 01 11 + 05 00 00 01 29 + ]; + + panel-exit-sequence = [ + 05 00 00 01 28 + 05 78 00 01 10 + ]; + display-timings { native-mode = <&timing0>; timing0: timing0 { diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 7ed53fccb5ea..25b6d9a8c971 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -34,9 +34,28 @@ #include #include