Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 011a9b9d authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm/panel/for-4.9-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next

drm/panel: Changes for v4.9-rc1

Adds support for one more panel to the simple-panel driver, fixes up a
couple of delays and flags for existing panels and finally adds a new
driver for the DSI panel found on Nexus 7 devices.

* tag 'drm/panel/for-4.9-rc1' of git://anongit.freedesktop.org/tegra/linux:
  drm/panel: Add JDI LT070ME05000 WUXGA DSI Panel
  dt-bindings: Add JDI LT070ME05000 panel bindings
  drm/panel: simple: Fix bus_format for the Olimex LCD-OLinuXino-4.3TS
  drm/panel: simple-panel: Add delay timings for Starry KR122EA0SRA
  drm/panel: simple: Fix bus flags for Ortustech com43h4m85ulc
  drm/panel: simple: Add Innolux G101ICE-L01 panel
  drm/panel: simple: Add delay timing for Sharp LQ123P1JX31
  drm/dsi: Implement DCS set/get display brightness
  drm/dsi: Order DCS helpers by command code
parents c0d5fb4d c96f5662
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
Innolux Corporation 10.1" G101ICE-L01 WXGA (1280x800) LVDS panel

Required properties:
- compatible: should be "innolux,g101ice-l01"

This binding is compatible with the simple-panel binding, which is specified
in simple-panel.txt in this directory.
+31 −0
Original line number Diff line number Diff line
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)
- iovcc-supply: phandle of the regulator that provides the supply voltage
  IOVCC , power supply for LCM (1.8V)
- enable-gpios: phandle of gpio for enable line
  LED_EN, LED backlight enable, High active
- 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
- dcdc-en-gpios: phandle of the gpio for power ic line
  Power IC supply enable, High active

Example:

	dsi0: qcom,mdss_dsi@4700000 {
		panel@0 {
			compatible = "jdi,lt070me05000";
			reg = <0>;

			vddp-supply = <&pm8921_l17>;
			iovcc-supply = <&pm8921_lvs7>;

			enable-gpios = <&pm8921_gpio 36 GPIO_ACTIVE_HIGH>;
			reset-gpios = <&tlmm_pinmux 54 GPIO_ACTIVE_LOW>;
			dcdc-en-gpios = <&pm8921_gpio 23 GPIO_ACTIVE_HIGH>;
		};
	};
+56 −7
Original line number Diff line number Diff line
@@ -998,6 +998,27 @@ int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
}
EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_on);

/**
 * mipi_dsi_dcs_set_pixel_format() - sets the pixel format for the RGB image
 *    data used by the interface
 * @dsi: DSI peripheral device
 * @format: pixel format
 *
 * Return: 0 on success or a negative error code on failure.
 */
int mipi_dsi_dcs_set_pixel_format(struct mipi_dsi_device *dsi, u8 format)
{
	ssize_t err;

	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_PIXEL_FORMAT, &format,
				 sizeof(format));
	if (err < 0)
		return err;

	return 0;
}
EXPORT_SYMBOL(mipi_dsi_dcs_set_pixel_format);

/**
 * mipi_dsi_dcs_set_tear_scanline() - set the scanline to use as trigger for
 *    the Tearing Effect output signal of the display module
@@ -1021,25 +1042,53 @@ int mipi_dsi_dcs_set_tear_scanline(struct mipi_dsi_device *dsi, u16 scanline)
EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_scanline);

/**
 * mipi_dsi_dcs_set_pixel_format() - sets the pixel format for the RGB image
 *    data used by the interface
 * mipi_dsi_dcs_set_display_brightness() - sets the brightness value of the
 *    display
 * @dsi: DSI peripheral device
 * @format: pixel format
 * @brightness: brightness value
 *
 * Return: 0 on success or a negative error code on failure.
 */
int mipi_dsi_dcs_set_pixel_format(struct mipi_dsi_device *dsi, u8 format)
int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
					u16 brightness)
{
	u8 payload[2] = { brightness & 0xff, brightness >> 8 };
	ssize_t err;

	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_PIXEL_FORMAT, &format,
				 sizeof(format));
	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_DISPLAY_BRIGHTNESS,
				 payload, sizeof(payload));
	if (err < 0)
		return err;

	return 0;
}
EXPORT_SYMBOL(mipi_dsi_dcs_set_pixel_format);
EXPORT_SYMBOL(mipi_dsi_dcs_set_display_brightness);

/**
 * 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);

static int mipi_dsi_drv_probe(struct device *dev)
{
+11 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
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
Loading