Skip to contentSkip to conversation

dt-bindings: Add Japan Display Inc vendor id

PATCH Superseded Vinay Simha BN 3 participants 9 messages Jul 13, 2016 – Jul 18, 2016

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/4 dt-bindings: Add Japan Display Inc vendor id

Add vendor id for Japan Display Inc.

Cc Archit Taneja <[email protected]>
Cc John Stultz <[email protected]>
Cc Thierry Reding <[email protected]>
Cc Sumit Semwal <[email protected]>
---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/vendor-prefixes.txt +1 -0
index ecc8cf4..1b134f3 100644
@@ -138,6 +138,7 @@ invensense	InvenSense Inc.
 isee	ISEE 2007 S.L.
 isil	Intersil
 issi	Integrated Silicon Solutions Inc.
+jdi	Japan Display Inc.
 jedec	JEDEC Solid State Technology Association
 karo	Ka-Ro electronics GmbH
 keymile	Keymile GmbH
Signature · 6 lines
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#1 lore raw

PATCH v2 2/4 dt-bindings: Add jdi lt070me05000 panel bindings

Add documentation for lt070me05000 panel

Cc Archit Taneja <[email protected]>
Cc John Stultz <[email protected]>
Cc Thierry Reding <[email protected]>
Cc Sumit Semwal <[email protected]>

---
v2:
* incorporated rob herring and thierry reviews gpio to gpios, gpio to regulator using fixed regulators and pwm backlight is removed, since it is controlled by dcs commands

---
 .../bindings/display/panel/jdi,lt070me05000.txt    | 57 ++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/jdi,lt070me05000.txt
Documentation/devicetree/bindings/display/panel/jdi,lt070me05000.txt new file +57 -0
new file mode 100644
index 0000000..613b76f
@@ -0,0 +1,57 @@
+JDI model LT070ME05000 1200x1920 7" DSI Panel
+
+Required properties:
+- compatible: should be "jdi,lt070me05000"
+- vddp-supply: phandle of the regulator that provides the supply voltage
+  Power IC supply (3-5V)
+- dcdc_en-supply: phandle of the regulator that provides the supply voltage
+  Power IC supply enable, High active
+- vcc-supply: phandle of the regulator that provides the supply voltage
+  IOVCC , power supply for LCM (1.8V)
+- reset-gpios: phandle of gpio for reset line
+  This should be 8mA, gpio can be configured using mux, pinctrl, pinctrl-names
+  XRES, Reset, Low active
+- enable-gpios: phandle of gpio for enable line
+  LED_EN, LED backlight enable, High active
+
+Example:
+
+	vcc_1p8v: regulator-fixed@2 {
+		compatible = "regulator-fixed";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-name = "vcc_1p8v";
+		regulator-type = "voltage";
+		startup-delay-us = <0>;
+		gpio = <&pm8921_gpio 23 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-boot-on;
+	};
+
+	tlmm_pinmux: pinctrl@800000 {
+
+		dsi_panel_pinctrl: dsi-panel-pinctrl {
+			mux {
+				pins = "gpio54";
+				function = "gpio";
+				bias-pull-up;
+				drive-strength = <8>;
+			};
+		};
+	};
+
+	dsi0: qcom,mdss_dsi@4700000 {
+		panel@0 {
+			compatible = "jdi,lt070me05000";
+			reg = <0>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&dsi_panel_pinctrl>;
+
+			vddp-supply = <&pm8921_l17>;
+			dcdc_en-supply = <&pm8921_lvs7>;
+			vcc-supply = <&vcc_1p8v>;
+
+			reset-gpios = <&tlmm_pinmux 54 0>;
+			enable-gpios = <&pm8921_gpio 36 GPIO_ACTIVE_HIGH>;
+		};
+	};
Signature · 1 line
1.9.1
#2 lore raw

PATCH v2 3/4 drm/dsi: Implement dcs set/get display brightness

In reply to Vinay Simha BN

Provide a small convenience wrapper that set/get the display brightness value

Cc John Stultz <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc Archit Taneja <[email protected]>
Cc Rob Clark <[email protected]>
Cc Jani Nikula <[email protected]>
Cc Thierry Reding <[email protected]>

---
v1:
*tested in nexus7 2nd gen.

v2:
* implemented jani review comments
-functions name mapped accordingly
-bl value increased from 0xff to 0xffff -backlight interface will be handled in panel driver,
so it is moved from the mipi_dsi helper function

---
 drivers/gpu/drm/drm_mipi_dsi.c | 49 ++++++++++++++++++++++++++++++++++++++++++
 include/drm/drm_mipi_dsi.h     |  4 ++++
 2 files changed, 53 insertions(+)
drivers/gpu/drm/drm_mipi_dsi.c +49 -0
index af0d471..7c22f64 100644
@@ -1041,6 +1041,55 @@ int mipi_dsi_dcs_set_pixel_format(struct mipi_dsi_device *dsi, u8 format)
 }
 EXPORT_SYMBOL(mipi_dsi_dcs_set_pixel_format);
 
+/**
+ * mipi_dsi_dcs_get_display_brightness() - gets the current brightness value
+ * of the display
+ * @dsi: DSI peripheral device
+ * @brightness: brightness value
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
+					u16 *brightness)
+{
+	ssize_t err;
+
+	err = mipi_dsi_dcs_read(dsi, MIPI_DCS_GET_DISPLAY_BRIGHTNESS,
+				brightness, sizeof(*brightness));
+	if (err < 0) {
+		if (err == 0)
+			err = -ENODATA;
+
+		return err;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL(mipi_dsi_dcs_get_display_brightness);
+
+/**
+ * mipi_dsi_dcs_set_display_brightness() - sets the brightness value of
+ * the display
+ * @dsi: DSI peripheral device
+ * @brightness: brightness value
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
+					u16 brightness)
+{
+	ssize_t err;
+	u8 bl_value[2] = { brightness & 0xff, brightness >> 8 };
+
+	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_DISPLAY_BRIGHTNESS,
+				 bl_value, sizeof(bl_value));
+	if (err < 0)
+		return err;
+
+	return 0;
+}
+EXPORT_SYMBOL(mipi_dsi_dcs_set_display_brightness);
+
 static int mipi_dsi_drv_probe(struct device *dev)
 {
 	struct mipi_dsi_driver *drv = to_mipi_dsi_driver(dev->driver);
include/drm/drm_mipi_dsi.h +4 -0
index 47ac925..404c373 100644
@@ -270,6 +270,10 @@ int mipi_dsi_dcs_set_tear_off(struct mipi_dsi_device *dsi);
 int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
 			     enum mipi_dsi_dcs_tear_mode mode);
 int mipi_dsi_dcs_set_pixel_format(struct mipi_dsi_device *dsi, u8 format);
+int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
+					u16 *brightness);
+int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
+					u16 brightness);
 
 /**
  * struct mipi_dsi_driver - DSI driver
Signature · 1 line
1.9.1
#3 lore raw

Re: [PATCH v2 3/4] drm/dsi: Implement dcs set/get display brightness

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_pixel_format(struct mipi_dsi_device *dsi, u8 format) · line 1060

Quoted 9 lines · Vinay Simha BN
drivers/gpu/drm/drm_mipi_dsi.c +9 -0
+int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
+                                       u16 *brightness)
+{
+       ssize_t err;
+
+       err = mipi_dsi_dcs_read(dsi, MIPI_DCS_GET_DISPLAY_BRIGHTNESS,
+                               brightness, sizeof(*brightness));
+       if (err < 0) {
+               if (err == 0)

Something looks fishy here. This can never be true, can it ?

-Emil
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

#4 lore raw

Re: [PATCH v2 3/4] drm/dsi: Implement dcs set/get display brightness

yes, it is wrong.
it supposed to be

if(err <= 0) {
          if(err == 0)

will resend a modified version

Quoted 15 lines · Emil Velikov

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_pixel_format(struct mipi_dsi_device *dsi, u8 format) · line 1060

Quoted 9 lines · Vinay Simha BN
drivers/gpu/drm/drm_mipi_dsi.c +9 -0
+int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
+                                       u16 *brightness)
+{
+       ssize_t err;
+
+       err = mipi_dsi_dcs_read(dsi, MIPI_DCS_GET_DISPLAY_BRIGHTNESS,
+                               brightness, sizeof(*brightness));
+       if (err < 0) {
+               if (err == 0)

Something looks fishy here. This can never be true, can it ?

-Emil

Signature · 3 lines
Regards,

Vinay Simha.B.N.

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

#5 lore raw

PATCH v8 4/4 drm/panel: Add JDI LT070ME05000 WUXGA DSI Panel

In reply to Vinay Simha BN

Add support for the JDI LT070ME05000 WUXGA DSI panel used in Nexus 7 2013 devices.

Programming sequence for the panel is was originally found in the android-msm-flo-3.4-lollipop-release branch from:
https://android.googlesource.com/kernel/msm.git

And video mode setting is from dsi-panel-jdi-dualmipi1-video.dtsi file in:

    git://codeaurora.org/kernel/msm-3.10.git  LNX.LA.3.6_rb1.27
Cc Archit Taneja <[email protected]>
Cc Rob Clark <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc John Stultz <[email protected]>
Cc Emil Velikov <[email protected]>
Cc Thierry Reding <[email protected]>
Cc David Airlie <[email protected]>

---
v1:
* sumit ported to drm/panel framework, john cherry-picked to mainline, folded down other fixes from Vinay and Archit, vinay removed interface setting cmd mode, video mode panel selected

v2:
* incorporated code reviews from theiry, archit
code style, alphabetical soring in Makefile, Kconfig, regulator_bulk, arrays of u8, generic helper function, documentation bindings,

v3:
* dcs backlight support added
* tested this panel driver in nexus7 2013 device

v4:
* backlight interface added in the panel driver
* incorporated width_mm and height_mm suggested by rob herring

v5:
* theirry review comments incorporated
panel model naming consistent, alphabetical soring in Kconfig Makefile, MAX_BRIGHTNESS dropped, regulator_names, parameterize panel width and height, descprition for control display, cabc and interface setting, temporary variable removed, consistent error reporting and commit message
* removed tear on/off, scanline, since these are required only for command mode panels

v6:
* emil review comments incorporated PANEL_NUM_REGULATORS dropped, return ret added at necessary places, if checks dropped for backlight and gpios

v7:
* emil review comments incorporated
added ARRAY_SIZE in struct, regulator_bulk_disable in poweroff, gpios checks dropped.
some returns cannot be dropped, since drm panel framework return type required.

v8:
* emil review commnets incorporated for jdi_panel_unprepare, dropped the returns (ref: panel-sharp-lq101r1sx01.c) and for jdi_panel_prepare(panel_on) it does not return prematurely and goes to poweroff if not success
* few dev_err's for panel_init

---
 drivers/gpu/drm/panel/Kconfig                  |  11 +
 drivers/gpu/drm/panel/Makefile                 |   1 +
 drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 518 +++++++++++++++++++++++++
 3 files changed, 530 insertions(+)
 create mode 100644 drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
drivers/gpu/drm/panel/Kconfig +11 -0
index 1500ab9..62aba97 100644
@@ -18,6 +18,17 @@ config DRM_PANEL_SIMPLE
 	  that it can be automatically turned off when the panel goes into a
 	  low power state.
 
+config DRM_PANEL_JDI_LT070ME05000
+	tristate "JDI LT070ME05000 WUXGA DSI panel"
+	depends on OF
+	depends on DRM_MIPI_DSI
+	depends on BACKLIGHT_CLASS_DEVICE
+	help
+	  Say Y here if you want to enable support for JDI DSI video mode
+	  panel as found in Google Nexus 7 (2013) devices.
+	  The panel has a 1200(RGB)×1920 (WUXGA) resolution and uses
+	  24 bit per pixel.
+
 config DRM_PANEL_SAMSUNG_LD9040
 	tristate "Samsung LD9040 RGB/SPI panel"
 	depends on OF && SPI
drivers/gpu/drm/panel/Makefile +1 -0
index f277eed..a5c7ec0 100644
@@ -1,4 +1,5 @@
 obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o
+obj-$(CONFIG_DRM_PANEL_JDI_LT070ME05000) += panel-jdi-lt070me05000.o
 obj-$(CONFIG_DRM_PANEL_LG_LG4573) += panel-lg-lg4573.o
 obj-$(CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00) += panel-panasonic-vvx10f034n00.o
 obj-$(CONFIG_DRM_PANEL_SAMSUNG_LD9040) += panel-samsung-ld9040.o
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c new file +518 -0

518 lines not on this page · raw message

Signature · 1 line
1.9.1
Tested-by on v8 4/4
#6 lore raw

Re: [PATCH v8 4/4] drm/panel: Add JDI LT070ME05000 WUXGA DSI Panel

Quoted 11 lines · Vinay Simha BN

Add support for the JDI LT070ME05000 WUXGA DSI panel used in Nexus 7 2013 devices.

Programming sequence for the panel is was originally found in the android-msm-flo-3.4-lollipop-release branch from:
https://android.googlesource.com/kernel/msm.git

And video mode setting is from dsi-panel-jdi-dualmipi1-video.dtsi file in:

    git://codeaurora.org/kernel/msm-3.10.git  LNX.LA.3.6_rb1.27
Quoted 10 lines
Cc Archit Taneja <[email protected]>
Cc Rob Clark <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc John Stultz <[email protected]>
Cc Emil Velikov <[email protected]>
Cc Thierry Reding <[email protected]>
Cc David Airlie <[email protected]>

Just fyi, I've re-integrated this patch set into my flo-WIP branch and its working well.

I dunno if its of any use, but:

thanks
-john
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reviewed-by
#7 lore raw

Re: [PATCH v8 4/4] drm/panel: Add JDI LT070ME05000 WUXGA DSI Panel

Quoted 23 lines · John Stultz
Quoted 11 lines · Vinay Simha BN

Add support for the JDI LT070ME05000 WUXGA DSI panel used in Nexus 7 2013 devices.

Programming sequence for the panel is was originally found in the android-msm-flo-3.4-lollipop-release branch from:
https://android.googlesource.com/kernel/msm.git

And video mode setting is from dsi-panel-jdi-dualmipi1-video.dtsi file in:

    git://codeaurora.org/kernel/msm-3.10.git  LNX.LA.3.6_rb1.27
Quoted 10 lines
Cc Archit Taneja <[email protected]>
Cc Rob Clark <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc John Stultz <[email protected]>
Cc Emil Velikov <[email protected]>
Cc Thierry Reding <[email protected]>
Cc David Airlie <[email protected]>
Quoted 6 lines

Just fyi, I've re-integrated this patch set into my flo-WIP branch and its working well.

I dunno if its of any use, but:

It always is. Thank you!

Vinay, thanks for the patience and I hope you grok the reason behind the requested changes.

The patch is

Regards,
Emil
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

#8 lore raw

Re: [PATCH v8 4/4] drm/panel: Add JDI LT070ME05000 WUXGA DSI Panel

Quoted 28 lines · Emil Velikov
Quoted 1 line · John Stultz

On Wed, Jul 13, 2016 at 9:44 AM, Vinay Simha BN <[email protected]>

Quoted 25 lines · wrote:
Quoted 11 lines

Add support for the JDI LT070ME05000 WUXGA DSI panel used in Nexus 7 2013 devices.

Programming sequence for the panel is was originally found in the android-msm-flo-3.4-lollipop-release branch from:
https://android.googlesource.com/kernel/msm.git

And video mode setting is from dsi-panel-jdi-dualmipi1-video.dtsi file in:

    git://codeaurora.org/kernel/msm-3.10.git  LNX.LA.3.6_rb1.27
Quoted 10 lines
Cc Archit Taneja <[email protected]>
Cc Rob Clark <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc John Stultz <[email protected]>
Cc Emil Velikov <[email protected]>
Cc Thierry Reding <[email protected]>
Cc David Airlie <[email protected]>

Just fyi, I've re-integrated this patch set into my flo-WIP branch and its working well.

Quoted 8 lines
Quoted 3 lines

I dunno if its of any use, but:

It always is. Thank you!

Vinay, thanks for the patience and I hope you grok the reason behind the requested changes.

yes.

premature returns should be avoided. it leads to the caller failure, intermediate funcs also will not get executed (gpios, regulator disable). In this case even the dsi fails, it should be panel(dsi write) failures rather than the bridge/interface.

Quoted 7 lines

The patch is

Regards,
Emil

Signature · 3 lines
Regards,

Vinay Simha.B.N.

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel