2017-04-18 08:41:38

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v3 0/3] Add support for the S6E3HF2 panel on TM2e board

Hi all,

The purpose of this patch is add support for s6e3hf2 AMOLED panel on
the TM2e board. The panel has 1600x2560 resolution in 5.65" physical
panel in the TM2e device.

The s6e3hf2 panel(5.65") is simliar to the previous s6e3ha2 panel(5.7"),
but resolution and some command message are different. So it can be
distinguished as a compatiblitiy string.

Best regards,
Hoegeun

Changes for V3:
- Remove te-gpios property in dts.
- Added Reviewed-by: Andrzej Hajda <[email protected]> on all patches.
- Added Reviewed-by: Inki Dae <[email protected]> on patch (2/3).

Changes for V2:
- Add new compatible string to "samsung,s6e3ha2.txt binding with comments.
- Fix the panel name from s6e3ha2-e to s6e3hf2

Hoegeun Kwon (3):
dt-bindings: Add support for samsung s6e3hf2 panel
drm/panel: s6e3ha2: Add support for s6e3hf2 panel on TM2e board
arm64: dts: exynos: Add support for s6e3hf2 panel device on TM2e board

.../bindings/display/panel/samsung,s6e3ha2.txt | 5 +-
arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts | 11 ++++
drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 64 +++++++++++++++++++---
3 files changed, 72 insertions(+), 8 deletions(-)

--
1.9.1


2017-04-18 08:41:36

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v3 3/3] arm64: dts: exynos: Add support for s6e3hf2 panel device on TM2e board

This patch add the panel device tree node for s6e3hf2 display
controller to TM2e dts.

Signed-off-by: Hoegeun Kwon <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
---
arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts b/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts
index 694717a..b73e123 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts
+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts
@@ -52,6 +52,17 @@
assigned-clock-rates = <278000000>, <400000000>;
};

+&dsi {
+ panel@0 {
+ compatible = "samsung,s6e3hf2";
+ reg = <0>;
+ vdd3-supply = <&ldo27_reg>;
+ vci-supply = <&ldo28_reg>;
+ reset-gpios = <&gpg0 0 GPIO_ACTIVE_LOW>;
+ enable-gpios = <&gpf1 5 GPIO_ACTIVE_HIGH>;
+ };
+};
+
&ldo31_reg {
regulator-name = "TSP_VDD_1.8V_AP";
regulator-min-microvolt = <1800000>;
--
1.9.1

2017-04-18 08:41:34

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v3 2/3] drm/panel: s6e3ha2: Add support for s6e3hf2 panel on TM2e board

This patch supports TM2e panel and the panel has 1600x2560 resolution
in 5.65" physical.

This identify panel type with compatibility string, also invoke
display mode that matches the type. So add the check code for s6e3ha2
compatibility and s6e3hf2 type and select the drm_display_mode of
default and edge type.

Signed-off-by: Hoegeun Kwon <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
Reviewed-by: Inki Dae <[email protected]>
---
drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 64 ++++++++++++++++++++++++---
1 file changed, 57 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
index 4cc08d7..c7b418b 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
@@ -16,6 +16,7 @@
#include <drm/drm_panel.h>
#include <linux/backlight.h>
#include <linux/gpio/consumer.h>
+#include <linux/of_device.h>
#include <linux/regulator/consumer.h>

#define S6E3HA2_MIN_BRIGHTNESS 0
@@ -218,6 +219,16 @@
0x1d, 0x1e, 0x1f, 0x20, 0x21
};

+enum s6e3ha2_type {
+ HA2_TYPE,
+ HF2_TYPE,
+};
+
+struct s6e3ha2_panel_desc {
+ const struct drm_display_mode *mode;
+ enum s6e3ha2_type type;
+};
+
struct s6e3ha2 {
struct device *dev;
struct drm_panel panel;
@@ -226,6 +237,8 @@ struct s6e3ha2 {
struct regulator_bulk_data supplies[2];
struct gpio_desc *reset_gpio;
struct gpio_desc *enable_gpio;
+
+ const struct s6e3ha2_panel_desc *desc;
};

static int s6e3ha2_dcs_write(struct s6e3ha2 *ctx, const void *data, size_t len)
@@ -283,11 +296,19 @@ static int s6e3ha2_single_dsi_set(struct s6e3ha2 *ctx)
static int s6e3ha2_freq_calibration(struct s6e3ha2 *ctx)
{
s6e3ha2_dcs_write_seq_static(ctx, 0xfd, 0x1c);
+ if (ctx->desc->type == HF2_TYPE)
+ s6e3ha2_dcs_write_seq_static(ctx, 0xf2, 0x67, 0x40, 0xc5);
s6e3ha2_dcs_write_seq_static(ctx, 0xfe, 0x20, 0x39);
s6e3ha2_dcs_write_seq_static(ctx, 0xfe, 0xa0);
s6e3ha2_dcs_write_seq_static(ctx, 0xfe, 0x20);
- s6e3ha2_dcs_write_seq_static(ctx, 0xce, 0x03, 0x3b, 0x12, 0x62, 0x40,
- 0x80, 0xc0, 0x28, 0x28, 0x28, 0x28, 0x39, 0xc5);
+
+ if (ctx->desc->type == HA2_TYPE)
+ s6e3ha2_dcs_write_seq_static(ctx, 0xce, 0x03, 0x3b, 0x12, 0x62,
+ 0x40, 0x80, 0xc0, 0x28, 0x28, 0x28, 0x28, 0x39, 0xc5);
+ else
+ s6e3ha2_dcs_write_seq_static(ctx, 0xce, 0x03, 0x3b, 0x14, 0x6d,
+ 0x40, 0x80, 0xc0, 0x28, 0x28, 0x28, 0x28, 0x39, 0xc5);
+
return 0;
}

@@ -583,7 +604,7 @@ static int s6e3ha2_enable(struct drm_panel *panel)
return 0;
}

-static const struct drm_display_mode default_mode = {
+static const struct drm_display_mode s6e3ha2_mode = {
.clock = 222372,
.hdisplay = 1440,
.hsync_start = 1440 + 1,
@@ -597,16 +618,41 @@ static int s6e3ha2_enable(struct drm_panel *panel)
.flags = 0,
};

+static const struct s6e3ha2_panel_desc samsung_s6e3ha2 = {
+ .mode = &s6e3ha2_mode,
+ .type = HA2_TYPE,
+};
+
+static const struct drm_display_mode s6e3hf2_mode = {
+ .clock = 247856,
+ .hdisplay = 1600,
+ .hsync_start = 1600 + 1,
+ .hsync_end = 1600 + 1 + 1,
+ .htotal = 1600 + 1 + 1 + 1,
+ .vdisplay = 2560,
+ .vsync_start = 2560 + 1,
+ .vsync_end = 2560 + 1 + 1,
+ .vtotal = 2560 + 1 + 1 + 15,
+ .vrefresh = 60,
+ .flags = 0,
+};
+
+static const struct s6e3ha2_panel_desc samsung_s6e3hf2 = {
+ .mode = &s6e3hf2_mode,
+ .type = HF2_TYPE,
+};
+
static int s6e3ha2_get_modes(struct drm_panel *panel)
{
struct drm_connector *connector = panel->connector;
+ struct s6e3ha2 *ctx = container_of(panel, struct s6e3ha2, panel);
struct drm_display_mode *mode;

- mode = drm_mode_duplicate(panel->drm, &default_mode);
+ mode = drm_mode_duplicate(panel->drm, ctx->desc->mode);
if (!mode) {
DRM_ERROR("failed to add mode %ux%ux@%u\n",
- default_mode.hdisplay, default_mode.vdisplay,
- default_mode.vrefresh);
+ ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
+ ctx->desc->mode->vrefresh);
return -ENOMEM;
}

@@ -642,6 +688,7 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
mipi_dsi_set_drvdata(dsi, ctx);

ctx->dev = dev;
+ ctx->desc = of_device_get_match_data(dev);

dsi->lanes = 4;
dsi->format = MIPI_DSI_FMT_RGB888;
@@ -717,7 +764,10 @@ static int s6e3ha2_remove(struct mipi_dsi_device *dsi)
}

static const struct of_device_id s6e3ha2_of_match[] = {
- { .compatible = "samsung,s6e3ha2" },
+ { .compatible = "samsung,s6e3ha2",
+ .data = &samsung_s6e3ha2 },
+ { .compatible = "samsung,s6e3hf2",
+ .data = &samsung_s6e3hf2 },
{ }
};
MODULE_DEVICE_TABLE(of, s6e3ha2_of_match);
--
1.9.1

2017-04-18 08:41:32

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v3 1/3] dt-bindings: Add support for samsung s6e3hf2 panel

The samsung s6e3hf2 panel is a 5.65" 1600x2560 AMOLED panel connected
using MIPI-DSI interfaces.

The s6e3hf2 is add to samsung,s6e3ha2.txt binding because it is a
panel similar to the s6e3ha2. So add the compatible string and
comments.

Signed-off-by: Hoegeun Kwon <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
---
Documentation/devicetree/bindings/display/panel/samsung,s6e3ha2.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha2.txt b/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha2.txt
index 18854f4..4acea25 100644
--- a/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha2.txt
+++ b/Documentation/devicetree/bindings/display/panel/samsung,s6e3ha2.txt
@@ -1,7 +1,10 @@
Samsung S6E3HA2 5.7" 1440x2560 AMOLED panel
+Samsung S6E3HF2 5.65" 1600x2560 AMOLED panel

Required properties:
- - compatible: "samsung,s6e3ha2"
+ - compatible: should be one of:
+ "samsung,s6e3ha2",
+ "samsung,s6e3hf2".
- reg: the virtual channel number of a DSI peripheral
- vdd3-supply: I/O voltage supply
- vci-supply: voltage supply for analog circuits
--
1.9.1

2017-04-20 16:02:22

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 3/3] arm64: dts: exynos: Add support for s6e3hf2 panel device on TM2e board

On Tue, Apr 18, 2017 at 05:40:36PM +0900, Hoegeun Kwon wrote:
> This patch add the panel device tree node for s6e3hf2 display
> controller to TM2e dts.
>
> Signed-off-by: Hoegeun Kwon <[email protected]>
> Reviewed-by: Andrzej Hajda <[email protected]>
> ---
> arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts | 11 +++++++++++
> 1 file changed, 11 insertions(+)

Thanks, applied.

Best regards,
Krzysztof

2017-04-20 16:00:03

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] dt-bindings: Add support for samsung s6e3hf2 panel

On Tue, Apr 18, 2017 at 05:40:34PM +0900, Hoegeun Kwon wrote:
> The samsung s6e3hf2 panel is a 5.65" 1600x2560 AMOLED panel connected
> using MIPI-DSI interfaces.
>
> The s6e3hf2 is add to samsung,s6e3ha2.txt binding because it is a
> panel similar to the s6e3ha2. So add the compatible string and
> comments.
>
> Signed-off-by: Hoegeun Kwon <[email protected]>
> Reviewed-by: Andrzej Hajda <[email protected]>
> ---
> Documentation/devicetree/bindings/display/panel/samsung,s6e3ha2.txt | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)

Acked-by: Rob Herring <[email protected]>

2017-06-09 03:52:38

by Hoegeun Kwon

[permalink] [raw]
Subject: Re: [PATCH v3 0/3] Add support for the S6E3HF2 panel on TM2e board

Dear Thierry,

Could you check these patches.

Regards,
Hoegeun

On 05/19/2017 03:56 PM, Hoegeun Kwon wrote:
> Dear Thierry,
>
> Could you check these patches?
> I think this patches have accumulated enough dust.
> If you have a another opinion, please tell me.
>
> Best regards,
> Hoegeun
>
> On 04/18/2017 05:40 PM, Hoegeun Kwon wrote:
>> Hi all,
>>
>> The purpose of this patch is add support for s6e3hf2 AMOLED panel on
>> the TM2e board. The panel has 1600x2560 resolution in 5.65" physical
>> panel in the TM2e device.
>>
>> The s6e3hf2 panel(5.65") is simliar to the previous s6e3ha2 panel(5.7"),
>> but resolution and some command message are different. So it can be
>> distinguished as a compatiblitiy string.
>>
>> Best regards,
>> Hoegeun
>>
>> Changes for V3:
>> - Remove te-gpios property in dts.
>> - Added Reviewed-by: Andrzej Hajda <[email protected]> on all patches.
>> - Added Reviewed-by: Inki Dae <[email protected]> on patch (2/3).
>>
>> Changes for V2:
>> - Add new compatible string to "samsung,s6e3ha2.txt binding with
>> comments.
>> - Fix the panel name from s6e3ha2-e to s6e3hf2
>>
>> Hoegeun Kwon (3):
>> dt-bindings: Add support for samsung s6e3hf2 panel
>> drm/panel: s6e3ha2: Add support for s6e3hf2 panel on TM2e board
>> arm64: dts: exynos: Add support for s6e3hf2 panel device on TM2e
>> board
>>
>> .../bindings/display/panel/samsung,s6e3ha2.txt | 5 +-
>> arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts | 11 ++++
>> drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 64
>> +++++++++++++++++++---
>> 3 files changed, 72 insertions(+), 8 deletions(-)
>>
>
>
>

2017-06-14 18:19:46

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH v3 0/3] Add support for the S6E3HF2 panel on TM2e board

On Tue, Apr 18, 2017 at 05:40:33PM +0900, Hoegeun Kwon wrote:
> Hi all,
>
> The purpose of this patch is add support for s6e3hf2 AMOLED panel on
> the TM2e board. The panel has 1600x2560 resolution in 5.65" physical
> panel in the TM2e device.
>
> The s6e3hf2 panel(5.65") is simliar to the previous s6e3ha2 panel(5.7"),
> but resolution and some command message are different. So it can be
> distinguished as a compatiblitiy string.
>
> Best regards,
> Hoegeun
>
> Changes for V3:
> - Remove te-gpios property in dts.
> - Added Reviewed-by: Andrzej Hajda <[email protected]> on all patches.
> - Added Reviewed-by: Inki Dae <[email protected]> on patch (2/3).
>
> Changes for V2:
> - Add new compatible string to "samsung,s6e3ha2.txt binding with comments.
> - Fix the panel name from s6e3ha2-e to s6e3hf2
>
> Hoegeun Kwon (3):
> dt-bindings: Add support for samsung s6e3hf2 panel
> drm/panel: s6e3ha2: Add support for s6e3hf2 panel on TM2e board
> arm64: dts: exynos: Add support for s6e3hf2 panel device on TM2e board
>
> .../bindings/display/panel/samsung,s6e3ha2.txt | 5 +-
> arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts | 11 ++++
> drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 64 +++++++++++++++++++---
> 3 files changed, 72 insertions(+), 8 deletions(-)

Applied patches 1/3 and 2/3 to drm-misc-next, thanks.

Thierry


Attachments:
(No filename) (1.33 kB)
signature.asc (833.00 B)
Download all attachments