linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support
@ 2018-11-07 18:18 Paul Kocialkowski
  2018-11-07 18:18 ` [PATCH v3 1/8] drm/sun4i: tcon: Pass encoder to RGB setup function Paul Kocialkowski
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

The series adds support for the BL035-RGB-002 LCD panel and the required
device-tree bindings for using it on the BananaPi M1.

Only the changes related to the DRM driver and the panel are submitted
for merge, which does not include the two final commits.

Changes since v2:
* Split the commit using the encoder instead of panel;
* Mentionned that the lemaker prefix was already used;
* Included all properties in the panel binding documentation;
* Fixed panel binding in BananaPi device-tree;
* Switched backlight levels to a 1.8-gamma-corrected table.

Changes since v1:
* Rebased on drm-misc next;
* Used the full name of the panel for dt bindings;
* Removed helper to match flags in order to only retrieve the connector
  once, as it was already done.
* Made the bus flags checking possible without a panel;

Paul Kocialkowski (8):
  drm/sun4i: tcon: Pass encoder to RGB setup function
  drm/sun4i: tcon: Get the connector from the encoder in RGB setup
  drm/sun4i: tcon: Support an active-low DE signal with RGB interface
  dt-bindings: Add vendor prefix for LeMaker
  dt-bindings: Add bindings for the LeMaker BL035-RGB-002 LCD panel
  drm/panel: simple: Add support for the LeMaker BL035-RGB-002 3.5" LCD
  ARM: dts: sun7i: Add pinmux configuration for LCD0 RGB888 pins
  ARM: dts: sun7i-a20-bananapi: Add bindings for the LeMaker 3.5" LCD

 .../display/panel/lemaker,bl035-rgb-002.txt   | 12 ++++
 .../devicetree/bindings/vendor-prefixes.txt   |  1 +
 arch/arm/boot/dts/sun7i-a20-bananapi.dts      | 71 +++++++++++++++++++
 arch/arm/boot/dts/sun7i-a20.dtsi              | 11 +++
 drivers/gpu/drm/panel/panel-simple.c          | 27 +++++++
 drivers/gpu/drm/sun4i/sun4i_tcon.c            | 29 ++++----
 drivers/gpu/drm/sun4i/sun4i_tcon.h            |  1 +
 7 files changed, 138 insertions(+), 14 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/display/panel/lemaker,bl035-rgb-002.txt

-- 
2.19.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v3 1/8] drm/sun4i: tcon: Pass encoder to RGB setup function
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
@ 2018-11-07 18:18 ` Paul Kocialkowski
  2018-11-07 18:18 ` [PATCH v3 2/8] drm/sun4i: tcon: Get the connector from the encoder in RGB setup Paul Kocialkowski
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

Passing the encoder to the TCON RGB setup functions allows accessing the
connector from the encoder directly instead of relying on the panel.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 drivers/gpu/drm/sun4i/sun4i_tcon.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
index f949287d926c..5e1f762fc3db 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -478,6 +478,7 @@ static void sun4i_tcon0_mode_set_lvds(struct sun4i_tcon *tcon,
 }
 
 static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
+				     const struct drm_encoder *encoder,
 				     const struct drm_display_mode *mode)
 {
 	unsigned int bp, hsync, vsync;
@@ -684,7 +685,7 @@ void sun4i_tcon_mode_set(struct sun4i_tcon *tcon,
 		sun4i_tcon0_mode_set_lvds(tcon, encoder, mode);
 		break;
 	case DRM_MODE_ENCODER_NONE:
-		sun4i_tcon0_mode_set_rgb(tcon, mode);
+		sun4i_tcon0_mode_set_rgb(tcon, encoder, mode);
 		sun4i_tcon_set_mux(tcon, 0, encoder);
 		break;
 	case DRM_MODE_ENCODER_TVDAC:
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 2/8] drm/sun4i: tcon: Get the connector from the encoder in RGB setup
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
  2018-11-07 18:18 ` [PATCH v3 1/8] drm/sun4i: tcon: Pass encoder to RGB setup function Paul Kocialkowski
@ 2018-11-07 18:18 ` Paul Kocialkowski
  2018-11-07 18:18 ` [PATCH v3 3/8] drm/sun4i: tcon: Support an active-low DE signal with RGB interface Paul Kocialkowski
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

Features such as dithering and pixel data edge configuration currently
rely on the panel registered with the TCON driver. However, bridges are
also supported in addition to panels for RGB setup.

Instead of retrieving the connector from the panel, get it from the
encoder with the dedicated helper.

Even in the case of bridges, the connector is registered with the
encoder from our driver and is accessible when iterating connectors.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 drivers/gpu/drm/sun4i/sun4i_tcon.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
index 5e1f762fc3db..262ffb6b0f82 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -481,6 +481,8 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
 				     const struct drm_encoder *encoder,
 				     const struct drm_display_mode *mode)
 {
+	struct drm_connector *connector = sun4i_tcon_get_connector(encoder);
+	struct drm_display_info display_info = connector->display_info;
 	unsigned int bp, hsync, vsync;
 	u8 clk_delay;
 	u32 val = 0;
@@ -492,8 +494,7 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
 	sun4i_tcon0_mode_set_common(tcon, mode);
 
 	/* Set dithering if needed */
-	if (tcon->panel)
-		sun4i_tcon0_mode_set_dithering(tcon, tcon->panel->connector);
+	sun4i_tcon0_mode_set_dithering(tcon, connector);
 
 	/* Adjust clock delay */
 	clk_delay = sun4i_tcon_get_clk_delay(mode, 0);
@@ -557,17 +558,11 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
 	 * Following code is a way to avoid quirks all around TCON
 	 * and DOTCLOCK drivers.
 	 */
-	if (tcon->panel) {
-		struct drm_panel *panel = tcon->panel;
-		struct drm_connector *connector = panel->connector;
-		struct drm_display_info display_info = connector->display_info;
+	if (display_info.bus_flags & DRM_BUS_FLAG_PIXDATA_POSEDGE)
+		clk_set_phase(tcon->dclk, 240);
 
-		if (display_info.bus_flags & DRM_BUS_FLAG_PIXDATA_POSEDGE)
-			clk_set_phase(tcon->dclk, 240);
-
-		if (display_info.bus_flags & DRM_BUS_FLAG_PIXDATA_NEGEDGE)
-			clk_set_phase(tcon->dclk, 0);
-	}
+	if (display_info.bus_flags & DRM_BUS_FLAG_PIXDATA_NEGEDGE)
+		clk_set_phase(tcon->dclk, 0);
 
 	regmap_update_bits(tcon->regs, SUN4I_TCON0_IO_POL_REG,
 			   SUN4I_TCON0_IO_POL_HSYNC_POSITIVE | SUN4I_TCON0_IO_POL_VSYNC_POSITIVE,
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 3/8] drm/sun4i: tcon: Support an active-low DE signal with RGB interface
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
  2018-11-07 18:18 ` [PATCH v3 1/8] drm/sun4i: tcon: Pass encoder to RGB setup function Paul Kocialkowski
  2018-11-07 18:18 ` [PATCH v3 2/8] drm/sun4i: tcon: Get the connector from the encoder in RGB setup Paul Kocialkowski
@ 2018-11-07 18:18 ` Paul Kocialkowski
  2018-11-07 18:18 ` [PATCH v3 4/8] dt-bindings: Add vendor prefix for LeMaker Paul Kocialkowski
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

Some panels need an active-low data enable (DE) signal for the RGB
interface. This requires flipping a bit in the TCON0 polarity register
when setting up the mode for the RGB interface.

Match the associated bus flag and use it to set the polarity inversion
bit for the DE signal when required.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 drivers/gpu/drm/sun4i/sun4i_tcon.c | 7 ++++++-
 drivers/gpu/drm/sun4i/sun4i_tcon.h | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
index 262ffb6b0f82..0420f5c978b9 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -543,6 +543,9 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
 	if (mode->flags & DRM_MODE_FLAG_PVSYNC)
 		val |= SUN4I_TCON0_IO_POL_VSYNC_POSITIVE;
 
+	if (display_info.bus_flags & DRM_BUS_FLAG_DE_LOW)
+		val |= SUN4I_TCON0_IO_POL_DE_NEGATIVE;
+
 	/*
 	 * On A20 and similar SoCs, the only way to achieve Positive Edge
 	 * (Rising Edge), is setting dclk clock phase to 2/3(240°).
@@ -565,7 +568,9 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon,
 		clk_set_phase(tcon->dclk, 0);
 
 	regmap_update_bits(tcon->regs, SUN4I_TCON0_IO_POL_REG,
-			   SUN4I_TCON0_IO_POL_HSYNC_POSITIVE | SUN4I_TCON0_IO_POL_VSYNC_POSITIVE,
+			   SUN4I_TCON0_IO_POL_HSYNC_POSITIVE |
+			   SUN4I_TCON0_IO_POL_VSYNC_POSITIVE |
+			   SUN4I_TCON0_IO_POL_DE_NEGATIVE,
 			   val);
 
 	/* Map output pins to channel 0 */
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h
index 3d492c8be1fc..b5214d71610f 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.h
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h
@@ -116,6 +116,7 @@
 
 #define SUN4I_TCON0_IO_POL_REG			0x88
 #define SUN4I_TCON0_IO_POL_DCLK_PHASE(phase)		((phase & 3) << 28)
+#define SUN4I_TCON0_IO_POL_DE_NEGATIVE			BIT(27)
 #define SUN4I_TCON0_IO_POL_HSYNC_POSITIVE		BIT(25)
 #define SUN4I_TCON0_IO_POL_VSYNC_POSITIVE		BIT(24)
 
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 4/8] dt-bindings: Add vendor prefix for LeMaker
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
                   ` (2 preceding siblings ...)
  2018-11-07 18:18 ` [PATCH v3 3/8] drm/sun4i: tcon: Support an active-low DE signal with RGB interface Paul Kocialkowski
@ 2018-11-07 18:18 ` Paul Kocialkowski
  2019-01-28 16:00   ` Thierry Reding
  2018-11-07 18:18 ` [PATCH v3 5/8] dt-bindings: Add bindings for the LeMaker BL035-RGB-002 LCD panel Paul Kocialkowski
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

This introduces a new device-tree binding vendor prefix for Shenzhen
LeMaker Technology Co., Ltd.

This vendor was already in use but it was not documented until now.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Rob Hering <robh@kernel.org>
---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 0f5453d1823c..4eecfbf866a4 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -206,6 +206,7 @@ laird	Laird PLC
 lantiq	Lantiq Semiconductor
 lattice	Lattice Semiconductor
 lego	LEGO Systems A/S
+lemaker	Shenzhen LeMaker Technology Co., Ltd.
 lenovo	Lenovo Group Ltd.
 lg	LG Corporation
 libretech	Shenzhen Libre Technology Co., Ltd
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 5/8] dt-bindings: Add bindings for the LeMaker BL035-RGB-002 LCD panel
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
                   ` (3 preceding siblings ...)
  2018-11-07 18:18 ` [PATCH v3 4/8] dt-bindings: Add vendor prefix for LeMaker Paul Kocialkowski
@ 2018-11-07 18:18 ` Paul Kocialkowski
  2019-01-28 16:00   ` Thierry Reding
  2018-11-07 18:18 ` [PATCH v3 6/8] drm/panel: simple: Add support for the LeMaker BL035-RGB-002 3.5" LCD Paul Kocialkowski
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

This adds the device-tree bindings for the LeMaker BL035-RGB-002 3.5"
QVGA TFT LCD panel, compatible with simple-panel.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 .../bindings/display/panel/lemaker,bl035-rgb-002.txt | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/lemaker,bl035-rgb-002.txt

diff --git a/Documentation/devicetree/bindings/display/panel/lemaker,bl035-rgb-002.txt b/Documentation/devicetree/bindings/display/panel/lemaker,bl035-rgb-002.txt
new file mode 100644
index 000000000000..74ee7ea6b493
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/lemaker,bl035-rgb-002.txt
@@ -0,0 +1,12 @@
+LeMaker BL035-RGB-002 3.5" QVGA TFT LCD panel
+
+Required properties:
+- compatible: should be "lemaker,bl035-rgb-002"
+- power-supply: as specified in the base binding
+
+Optional properties:
+- backlight: as specified in the base binding
+- enable-gpios: as specified in the base binding
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v3 6/8] drm/panel: simple: Add support for the LeMaker BL035-RGB-002 3.5" LCD
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
                   ` (4 preceding siblings ...)
  2018-11-07 18:18 ` [PATCH v3 5/8] dt-bindings: Add bindings for the LeMaker BL035-RGB-002 LCD panel Paul Kocialkowski
@ 2018-11-07 18:18 ` Paul Kocialkowski
  2019-01-28 16:01   ` Thierry Reding
  2018-11-07 18:18 ` [PATCH NOT FOR MERGE v3 7/8] ARM: dts: sun7i: Add pinmux configuration for LCD0 RGB888 pins Paul Kocialkowski
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

This adds support for the 3.5" LCD panel from LeMaker, sold for use with
BananaPi boards. It comes with a 24-bit RGB888 parallel interface and
requires an active-low DE signal

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 drivers/gpu/drm/panel/panel-simple.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 07d576d99475..a259874f6039 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1562,6 +1562,30 @@ static const struct panel_desc kyo_tcg121xglp = {
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
 };
 
+static const struct drm_display_mode lemaker_bl035_rgb_002_mode = {
+	.clock = 7000,
+	.hdisplay = 320,
+	.hsync_start = 320 + 20,
+	.hsync_end = 320 + 20 + 30,
+	.htotal = 320 + 20 + 30 + 38,
+	.vdisplay = 240,
+	.vsync_start = 240 + 4,
+	.vsync_end = 240 + 4 + 3,
+	.vtotal = 240 + 4 + 3 + 15,
+	.vrefresh = 60,
+};
+
+static const struct panel_desc lemaker_bl035_rgb_002 = {
+	.modes = &lemaker_bl035_rgb_002_mode,
+	.num_modes = 1,
+	.size = {
+		.width = 70,
+		.height = 52,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_flags = DRM_BUS_FLAG_DE_LOW,
+};
+
 static const struct drm_display_mode lg_lb070wv8_mode = {
 	.clock = 33246,
 	.hdisplay = 800,
@@ -2599,6 +2623,9 @@ static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "kyo,tcg121xglp",
 		.data = &kyo_tcg121xglp,
+	}, {
+		.compatible = "lemaker,bl035-rgb-002",
+		.data = &lemaker_bl035_rgb_002,
 	}, {
 		.compatible = "lg,lb070wv8",
 		.data = &lg_lb070wv8,
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH NOT FOR MERGE v3 7/8] ARM: dts: sun7i: Add pinmux configuration for LCD0 RGB888 pins
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
                   ` (5 preceding siblings ...)
  2018-11-07 18:18 ` [PATCH v3 6/8] drm/panel: simple: Add support for the LeMaker BL035-RGB-002 3.5" LCD Paul Kocialkowski
@ 2018-11-07 18:18 ` Paul Kocialkowski
  2018-11-07 18:18 ` [PATCH NOT FOR MERGE v3 8/8] ARM: dts: sun7i-a20-bananapi: Add bindings for the LeMaker 3.5" LCD Paul Kocialkowski
  2018-11-09  8:46 ` [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Maxime Ripard
  8 siblings, 0 replies; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

This adds the pin muxing definition for configuring the PD pins in LCD0
mode for a RGB888 format to the sun7i device-tree.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 arch/arm/boot/dts/sun7i-a20.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 9c52712af241..26f3714eaad0 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -811,6 +811,17 @@
 				function = "ir1";
 			};
 
+			lcd0_rgb888_pins: lcd0-rgb888 {
+				pins = "PD0", "PD1", "PD2", "PD3",
+				       "PD4", "PD5", "PD6", "PD7",
+				       "PD8", "PD9", "PD10", "PD11",
+				       "PD12", "PD13", "PD14", "PD15",
+				       "PD16", "PD17", "PD18", "PD19",
+				       "PD20", "PD21", "PD22", "PD23",
+				       "PD24", "PD25", "PD26", "PD27";
+				function = "lcd0";
+			};
+
 			mmc0_pins_a: mmc0@0 {
 				pins = "PF0", "PF1", "PF2",
 				       "PF3", "PF4", "PF5";
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH NOT FOR MERGE v3 8/8] ARM: dts: sun7i-a20-bananapi: Add bindings for the LeMaker 3.5" LCD
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
                   ` (6 preceding siblings ...)
  2018-11-07 18:18 ` [PATCH NOT FOR MERGE v3 7/8] ARM: dts: sun7i: Add pinmux configuration for LCD0 RGB888 pins Paul Kocialkowski
@ 2018-11-07 18:18 ` Paul Kocialkowski
  2018-11-09  8:46 ` [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Maxime Ripard
  8 siblings, 0 replies; 13+ messages in thread
From: Paul Kocialkowski @ 2018-11-07 18:18 UTC (permalink / raw)
  To: dri-devel, devicetree, linux-kernel, linux-arm-kernel
  Cc: Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, linux-sunxi, Mark Van den Borre,
	Gerry Demaret, Luc Verhaegen, Paul Kocialkowski

This adds the backlight panel, power, pwm and tcon0 device-tree bindings
required for supporting the 3.5" LCD from LeMaker on the BananaPi M1.

The brightness levels are adjusted with a gamma curve using a 1.8 power,
with indices from 0 to 100 and values ranging from 0 to 255, such as:
level = (index / 100)^1.8 * 255

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 arch/arm/boot/dts/sun7i-a20-bananapi.dts | 71 ++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
index 70dfc4ac0bb5..ac6c3e988203 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
@@ -48,6 +48,7 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pwm/pwm.h>
 
 / {
 	model = "LeMaker Banana Pi";
@@ -63,6 +64,57 @@
 		stdout-path = "serial0:115200n8";
 	};
 
+
+	backlight: backlight {
+		compatible = "pwm-backlight";
+		pwms = <&pwm 0 50000 0>;
+		/* This table uses a gamma curve with a 1.8 power. */
+		brightness-levels = <  0   1   1   1   1   1   2   2
+				       3   3   4   5   6   6   7   8
+				       9  11  12  13  14  15  17  18
+				      20  21  23  24  26  27  29  31
+				      33  35  37  39  41  43  45  47
+				      49  51  54  56  58  61  63  66
+				      68  71  73  76  79  81  84  87
+				      90  93  96  99 102 105 108 111
+				     114 117 121 124 127 131 134 138
+				     141 145 148 152 156 159 163 167
+				     171 175 178 182 186 190 194 198
+				     203 207 211 215 219 224 228 233
+				     237 241 246 250 255>;
+		default-brightness-level = <50>;
+		enable-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */
+	};
+
+	panel: panel {
+		compatible = "lemaker,bl035-rgb-002";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		power-supply = <&panel_power>;
+		backlight = <&backlight>;
+
+		port@0 {
+			reg = <0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			panel_input: endpoint@0 {
+				reg = <0>;
+				remote-endpoint = <&tcon0_out_panel>;
+			};
+		};
+	};
+
+	panel_power: panel_power {
+		compatible = "regulator-fixed";
+		regulator-name = "panel-power";
+		regulator-min-microvolt = <10400000>;
+		regulator-max-microvolt = <10400000>;
+		gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */
+		enable-active-high;
+		regulator-boot-on;
+	};
+
 	hdmi-connector {
 		compatible = "hdmi-connector";
 		type = "a";
@@ -275,6 +327,12 @@
 	};
 };
 
+&pwm {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pwm0_pins_a>;
+	status = "okay";
+};
+
 #include "axp209.dtsi"
 
 &reg_dcdc2 {
@@ -322,6 +380,19 @@
 	status = "okay";
 };
 
+&tcon0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&lcd0_rgb888_pins>;
+	status = "okay";
+};
+
+&tcon0_out {
+	tcon0_out_panel: endpoint@0 {
+		reg = <0>;
+		remote-endpoint = <&panel_input>;
+	};
+};
+
 &uart0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart0_pins_a>;
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support
  2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
                   ` (7 preceding siblings ...)
  2018-11-07 18:18 ` [PATCH NOT FOR MERGE v3 8/8] ARM: dts: sun7i-a20-bananapi: Add bindings for the LeMaker 3.5" LCD Paul Kocialkowski
@ 2018-11-09  8:46 ` Maxime Ripard
  8 siblings, 0 replies; 13+ messages in thread
From: Maxime Ripard @ 2018-11-09  8:46 UTC (permalink / raw)
  To: Paul Kocialkowski
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-kernel,
	Thierry Reding, David Airlie, Rob Herring, Mark Rutland,
	Chen-Yu Tsai, linux-sunxi, Mark Van den Borre, Gerry Demaret,
	Luc Verhaegen

[-- Attachment #1: Type: text/plain, Size: 483 bytes --]

On Wed, Nov 07, 2018 at 07:18:35PM +0100, Paul Kocialkowski wrote:
> The series adds support for the BL035-RGB-002 LCD panel and the required
> device-tree bindings for using it on the BananaPi M1.
> 
> Only the changes related to the DRM driver and the panel are submitted
> for merge, which does not include the two final commits.

I pushed the first three patches, thanks!
Maxime

-- 
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 4/8] dt-bindings: Add vendor prefix for LeMaker
  2018-11-07 18:18 ` [PATCH v3 4/8] dt-bindings: Add vendor prefix for LeMaker Paul Kocialkowski
@ 2019-01-28 16:00   ` Thierry Reding
  0 siblings, 0 replies; 13+ messages in thread
From: Thierry Reding @ 2019-01-28 16:00 UTC (permalink / raw)
  To: Paul Kocialkowski
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-kernel,
	David Airlie, Rob Herring, Mark Rutland, Maxime Ripard,
	Chen-Yu Tsai, linux-sunxi, Mark Van den Borre, Gerry Demaret,
	Luc Verhaegen

[-- Attachment #1: Type: text/plain, Size: 505 bytes --]

On Wed, Nov 07, 2018 at 07:18:39PM +0100, Paul Kocialkowski wrote:
> This introduces a new device-tree binding vendor prefix for Shenzhen
> LeMaker Technology Co., Ltd.
> 
> This vendor was already in use but it was not documented until now.
> 
> Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
> Reviewed-by: Rob Hering <robh@kernel.org>
> ---
>  Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
>  1 file changed, 1 insertion(+)

Applied to drm-misc-next, thanks.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 5/8] dt-bindings: Add bindings for the LeMaker BL035-RGB-002 LCD panel
  2018-11-07 18:18 ` [PATCH v3 5/8] dt-bindings: Add bindings for the LeMaker BL035-RGB-002 LCD panel Paul Kocialkowski
@ 2019-01-28 16:00   ` Thierry Reding
  0 siblings, 0 replies; 13+ messages in thread
From: Thierry Reding @ 2019-01-28 16:00 UTC (permalink / raw)
  To: Paul Kocialkowski
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-kernel,
	David Airlie, Rob Herring, Mark Rutland, Maxime Ripard,
	Chen-Yu Tsai, linux-sunxi, Mark Van den Borre, Gerry Demaret,
	Luc Verhaegen

[-- Attachment #1: Type: text/plain, Size: 517 bytes --]

On Wed, Nov 07, 2018 at 07:18:40PM +0100, Paul Kocialkowski wrote:
> This adds the device-tree bindings for the LeMaker BL035-RGB-002 3.5"
> QVGA TFT LCD panel, compatible with simple-panel.
> 
> Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
> ---
>  .../bindings/display/panel/lemaker,bl035-rgb-002.txt | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/display/panel/lemaker,bl035-rgb-002.txt

Applied to drm-misc-next, thanks.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v3 6/8] drm/panel: simple: Add support for the LeMaker BL035-RGB-002 3.5" LCD
  2018-11-07 18:18 ` [PATCH v3 6/8] drm/panel: simple: Add support for the LeMaker BL035-RGB-002 3.5" LCD Paul Kocialkowski
@ 2019-01-28 16:01   ` Thierry Reding
  0 siblings, 0 replies; 13+ messages in thread
From: Thierry Reding @ 2019-01-28 16:01 UTC (permalink / raw)
  To: Paul Kocialkowski
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-kernel,
	David Airlie, Rob Herring, Mark Rutland, Maxime Ripard,
	Chen-Yu Tsai, linux-sunxi, Mark Van den Borre, Gerry Demaret,
	Luc Verhaegen

[-- Attachment #1: Type: text/plain, Size: 478 bytes --]

On Wed, Nov 07, 2018 at 07:18:41PM +0100, Paul Kocialkowski wrote:
> This adds support for the 3.5" LCD panel from LeMaker, sold for use with
> BananaPi boards. It comes with a 24-bit RGB888 parallel interface and
> requires an active-low DE signal
> 
> Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
> ---
>  drivers/gpu/drm/panel/panel-simple.c | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)

Applied to drm-misc-next, thanks.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-01-28 17:27 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-07 18:18 [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Paul Kocialkowski
2018-11-07 18:18 ` [PATCH v3 1/8] drm/sun4i: tcon: Pass encoder to RGB setup function Paul Kocialkowski
2018-11-07 18:18 ` [PATCH v3 2/8] drm/sun4i: tcon: Get the connector from the encoder in RGB setup Paul Kocialkowski
2018-11-07 18:18 ` [PATCH v3 3/8] drm/sun4i: tcon: Support an active-low DE signal with RGB interface Paul Kocialkowski
2018-11-07 18:18 ` [PATCH v3 4/8] dt-bindings: Add vendor prefix for LeMaker Paul Kocialkowski
2019-01-28 16:00   ` Thierry Reding
2018-11-07 18:18 ` [PATCH v3 5/8] dt-bindings: Add bindings for the LeMaker BL035-RGB-002 LCD panel Paul Kocialkowski
2019-01-28 16:00   ` Thierry Reding
2018-11-07 18:18 ` [PATCH v3 6/8] drm/panel: simple: Add support for the LeMaker BL035-RGB-002 3.5" LCD Paul Kocialkowski
2019-01-28 16:01   ` Thierry Reding
2018-11-07 18:18 ` [PATCH NOT FOR MERGE v3 7/8] ARM: dts: sun7i: Add pinmux configuration for LCD0 RGB888 pins Paul Kocialkowski
2018-11-07 18:18 ` [PATCH NOT FOR MERGE v3 8/8] ARM: dts: sun7i-a20-bananapi: Add bindings for the LeMaker 3.5" LCD Paul Kocialkowski
2018-11-09  8:46 ` [PATCH v3 0/8] BL035-RGB-002 3.5" LCD sunxi DRM support Maxime Ripard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).