dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/4] add mt8183 dpi driver
@ 2020-02-21 11:28 Jitao Shi
  2020-02-21 11:28 ` [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips Jitao Shi
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Jitao Shi @ 2020-02-21 11:28 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Matthias Brugger, Daniel Vetter,
	David Airlie, dri-devel, linux-kernel
  Cc: devicetree, Jitao Shi, srv_heupstream, huijuan.xie, stonea168,
	cawa.cheng, linux-mediatek, yingjoe.chen, eddie.huang,
	linux-arm-kernel

Changes since v5:
 - fine tune the dt-bindings commit message.

Changes since v4:
 - move pin mode control and dual edge control to deveice tree.
 - update dt-bindings document for pin mode swap and dual edge control.

Changes since v3:
 - add dpi pin mode control when dpi on or off.
 - update dpi dual edge comment.

Changes since v2:
 - update dt-bindings document for mt8183 dpi.
 - separate dual edge modfication as independent patch.

Jitao Shi (4):
  dt-bindings: display: mediatek: update dpi supported chips
  drm/mediatek: dpi dual edge support
  drm/mediatek: add mt8183 dpi clock factor
  drm/mediatek: set dpi pin mode to gpio low to avoid leakage current

 .../display/mediatek/mediatek,dpi.txt         | 11 +++
 drivers/gpu/drm/mediatek/mtk_dpi.c            | 69 ++++++++++++++++++-
 2 files changed, 79 insertions(+), 1 deletion(-)

-- 
2.21.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips
  2020-02-21 11:28 [PATCH v6 0/4] add mt8183 dpi driver Jitao Shi
@ 2020-02-21 11:28 ` Jitao Shi
  2020-02-24  7:50   ` CK Hu
  2020-02-24  8:46   ` CK Hu
  2020-02-21 11:28 ` [PATCH v6 2/4] drm/mediatek: dpi dual edge support Jitao Shi
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 11+ messages in thread
From: Jitao Shi @ 2020-02-21 11:28 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Matthias Brugger, Daniel Vetter,
	David Airlie, dri-devel, linux-kernel
  Cc: devicetree, Jitao Shi, srv_heupstream, huijuan.xie, stonea168,
	cawa.cheng, linux-mediatek, yingjoe.chen, eddie.huang,
	linux-arm-kernel

Add decriptions about supported chips, including MT2701 & MT8173 &
mt8183

1. Add more chips support. ex. MT2701 & MT8173 & MT8183
2. Add property "dpi_pin_mode_swap" and "pinctrl-names" gpio mode dpi mode and
   gpio oupput-low to avoid leakage current.
3. Add property "dpi_dual_edge" to config the dpi pin output mode dual edge or
   single edge sample data.

Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
---
 .../bindings/display/mediatek/mediatek,dpi.txt        | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
index b6a7e7397b8b..cd6a1469c8b7 100644
--- a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
+++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
@@ -7,6 +7,7 @@ output bus.
 
 Required properties:
 - compatible: "mediatek,<chip>-dpi"
+  the supported chips are mt2701 , mt8173 and mt8183.
 - reg: Physical base address and length of the controller's registers
 - interrupts: The interrupt signal from the function block.
 - clocks: device clocks
@@ -16,6 +17,11 @@ Required properties:
   Documentation/devicetree/bindings/graph.txt. This port should be connected
   to the input port of an attached HDMI or LVDS encoder chip.
 
+Optional properties:
+- dpi_pin_mode_swap: Swap the pin mode between dpi mode and gpio mode.
+- pinctrl-names: Contain "gpiomode" and "dpimode".
+- dpi_dual_edge: Control the RGB 24bit data on 12 pins or 24 pins.
+
 Example:
 
 dpi0: dpi@1401d000 {
@@ -26,6 +32,11 @@ dpi0: dpi@1401d000 {
 		 <&mmsys CLK_MM_DPI_ENGINE>,
 		 <&apmixedsys CLK_APMIXED_TVDPLL>;
 	clock-names = "pixel", "engine", "pll";
+	dpi_dual_edge;
+	dpi_pin_mode_swap;
+	pinctrl-names = "gpiomode", "dpimode";
+	pinctrl-0 = <&dpi_pin_gpio>;
+	pinctrl-1 = <&dpi_pin_func>;
 
 	port {
 		dpi0_out: endpoint {
-- 
2.21.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH v6 2/4] drm/mediatek: dpi dual edge support
  2020-02-21 11:28 [PATCH v6 0/4] add mt8183 dpi driver Jitao Shi
  2020-02-21 11:28 ` [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips Jitao Shi
@ 2020-02-21 11:28 ` Jitao Shi
  2020-02-21 11:28 ` [PATCH v6 3/4] drm/mediatek: add mt8183 dpi clock factor Jitao Shi
  2020-02-21 11:28 ` [PATCH v6 4/4] drm/mediatek: set dpi pin mode to gpio low to avoid leakage current Jitao Shi
  3 siblings, 0 replies; 11+ messages in thread
From: Jitao Shi @ 2020-02-21 11:28 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Matthias Brugger, Daniel Vetter,
	David Airlie, dri-devel, linux-kernel
  Cc: devicetree, Jitao Shi, srv_heupstream, huijuan.xie, stonea168,
	cawa.cheng, linux-mediatek, yingjoe.chen, eddie.huang,
	linux-arm-kernel

DPI sample the data both rising and falling edge.
It can reduce half data io pins.

Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
---
 drivers/gpu/drm/mediatek/mtk_dpi.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
index 01fa8b8d763d..36e4dbd27d1b 100644
--- a/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -75,6 +75,7 @@ struct mtk_dpi {
 	enum mtk_dpi_out_bit_num bit_num;
 	enum mtk_dpi_out_channel_swap channel_swap;
 	int refcount;
+	bool dual_edge;
 };
 
 static inline struct mtk_dpi *mtk_dpi_from_encoder(struct drm_encoder *e)
@@ -348,6 +349,13 @@ static void mtk_dpi_config_disable_edge(struct mtk_dpi *dpi)
 		mtk_dpi_mask(dpi, dpi->conf->reg_h_fre_con, 0, EDGE_SEL_EN);
 }
 
+static void mtk_dpi_enable_dual_edge(struct mtk_dpi *dpi)
+{
+	mtk_dpi_mask(dpi, DPI_DDR_SETTING, DDR_EN | DDR_4PHASE,
+		     DDR_EN | DDR_4PHASE);
+	mtk_dpi_mask(dpi, DPI_OUTPUT_SETTING, EDGE_SEL, EDGE_SEL);
+}
+
 static void mtk_dpi_config_color_format(struct mtk_dpi *dpi,
 					enum mtk_dpi_out_color_format format)
 {
@@ -439,7 +447,8 @@ static int mtk_dpi_set_display_mode(struct mtk_dpi *dpi,
 	pll_rate = clk_get_rate(dpi->tvd_clk);
 
 	vm.pixelclock = pll_rate / factor;
-	clk_set_rate(dpi->pixel_clk, vm.pixelclock);
+	clk_set_rate(dpi->pixel_clk,
+		     vm.pixelclock * (dpi->dual_edge ? 2 : 1));
 	vm.pixelclock = clk_get_rate(dpi->pixel_clk);
 
 	dev_dbg(dpi->dev, "Got  PLL %lu Hz, pixel clock %lu Hz\n",
@@ -504,6 +513,8 @@ static int mtk_dpi_set_display_mode(struct mtk_dpi *dpi,
 	mtk_dpi_config_color_format(dpi, dpi->color_format);
 	mtk_dpi_config_2n_h_fre(dpi);
 	mtk_dpi_config_disable_edge(dpi);
+	if (dpi->dual_edge)
+		mtk_dpi_enable_dual_edge(dpi);
 	mtk_dpi_sw_reset(dpi, false);
 
 	return 0;
@@ -689,6 +700,7 @@ static int mtk_dpi_probe(struct platform_device *pdev)
 
 	dpi->dev = dev;
 	dpi->conf = (struct mtk_dpi_conf *)of_device_get_match_data(dev);
+	dpi->dual_edge = of_property_read_bool(dev->of_node, "dpi_dual_edge");
 
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	dpi->regs = devm_ioremap_resource(dev, mem);
-- 
2.21.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH v6 3/4] drm/mediatek: add mt8183 dpi clock factor
  2020-02-21 11:28 [PATCH v6 0/4] add mt8183 dpi driver Jitao Shi
  2020-02-21 11:28 ` [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips Jitao Shi
  2020-02-21 11:28 ` [PATCH v6 2/4] drm/mediatek: dpi dual edge support Jitao Shi
@ 2020-02-21 11:28 ` Jitao Shi
  2020-02-21 11:28 ` [PATCH v6 4/4] drm/mediatek: set dpi pin mode to gpio low to avoid leakage current Jitao Shi
  3 siblings, 0 replies; 11+ messages in thread
From: Jitao Shi @ 2020-02-21 11:28 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Matthias Brugger, Daniel Vetter,
	David Airlie, dri-devel, linux-kernel
  Cc: devicetree, Jitao Shi, srv_heupstream, huijuan.xie, stonea168,
	cawa.cheng, linux-mediatek, yingjoe.chen, eddie.huang,
	linux-arm-kernel

The factor depends on the divider of DPI in MT8183, therefore,
we should fix this factor to the right and new one.

Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
---
 drivers/gpu/drm/mediatek/mtk_dpi.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
index 36e4dbd27d1b..e1a33254dfbe 100644
--- a/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -675,6 +675,16 @@ static unsigned int mt2701_calculate_factor(int clock)
 		return 1;
 }
 
+static unsigned int mt8183_calculate_factor(int clock)
+{
+	if (clock <= 27000)
+		return 8;
+	else if (clock <= 167000)
+		return 4;
+	else
+		return 2;
+}
+
 static const struct mtk_dpi_conf mt8173_conf = {
 	.cal_factor = mt8173_calculate_factor,
 	.reg_h_fre_con = 0xe0,
@@ -686,6 +696,11 @@ static const struct mtk_dpi_conf mt2701_conf = {
 	.edge_sel_en = true,
 };
 
+static const struct mtk_dpi_conf mt8183_conf = {
+	.cal_factor = mt8183_calculate_factor,
+	.reg_h_fre_con = 0xe0,
+};
+
 static int mtk_dpi_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
@@ -782,6 +797,9 @@ static const struct of_device_id mtk_dpi_of_ids[] = {
 	{ .compatible = "mediatek,mt8173-dpi",
 	  .data = &mt8173_conf,
 	},
+	{ .compatible = "mediatek,mt8183-dpi",
+	  .data = &mt8183_conf,
+	},
 	{ },
 };
 
-- 
2.21.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [PATCH v6 4/4] drm/mediatek: set dpi pin mode to gpio low to avoid leakage current
  2020-02-21 11:28 [PATCH v6 0/4] add mt8183 dpi driver Jitao Shi
                   ` (2 preceding siblings ...)
  2020-02-21 11:28 ` [PATCH v6 3/4] drm/mediatek: add mt8183 dpi clock factor Jitao Shi
@ 2020-02-21 11:28 ` Jitao Shi
  3 siblings, 0 replies; 11+ messages in thread
From: Jitao Shi @ 2020-02-21 11:28 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Matthias Brugger, Daniel Vetter,
	David Airlie, dri-devel, linux-kernel
  Cc: devicetree, Jitao Shi, srv_heupstream, huijuan.xie, stonea168,
	cawa.cheng, linux-mediatek, yingjoe.chen, eddie.huang,
	linux-arm-kernel

Pull dpi pins low when dpi has nothing to display. Aovid leakage
current from some dpi pins (Hsync Vsync DE ... ).

Some chips have dpi pins, but there are some chip don't have pins.
So this function is controlled by device tree.

Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
---
 drivers/gpu/drm/mediatek/mtk_dpi.c | 37 ++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
index e1a33254dfbe..41712e5a721a 100644
--- a/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -10,7 +10,9 @@
 #include <linux/kernel.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/of_gpio.h>
 #include <linux/of_graph.h>
+#include <linux/pinctrl/consumer.h>
 #include <linux/platform_device.h>
 #include <linux/types.h>
 
@@ -74,8 +76,12 @@ struct mtk_dpi {
 	enum mtk_dpi_out_yc_map yc_map;
 	enum mtk_dpi_out_bit_num bit_num;
 	enum mtk_dpi_out_channel_swap channel_swap;
+	struct pinctrl *pinctrl;
+	struct pinctrl_state *pins_gpio;
+	struct pinctrl_state *pins_dpi;
 	int refcount;
 	bool dual_edge;
+	bool dpi_pin_ctrl;
 };
 
 static inline struct mtk_dpi *mtk_dpi_from_encoder(struct drm_encoder *e)
@@ -387,6 +393,9 @@ static void mtk_dpi_power_off(struct mtk_dpi *dpi)
 	if (--dpi->refcount != 0)
 		return;
 
+	if (dpi->dpi_pin_ctrl)
+		pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);
+
 	mtk_dpi_disable(dpi);
 	clk_disable_unprepare(dpi->pixel_clk);
 	clk_disable_unprepare(dpi->engine_clk);
@@ -411,6 +420,9 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi)
 		goto err_pixel;
 	}
 
+	if (dpi->dpi_pin_ctrl)
+		pinctrl_select_state(dpi->pinctrl, dpi->pins_dpi);
+
 	mtk_dpi_enable(dpi);
 	return 0;
 
@@ -716,6 +728,31 @@ static int mtk_dpi_probe(struct platform_device *pdev)
 	dpi->dev = dev;
 	dpi->conf = (struct mtk_dpi_conf *)of_device_get_match_data(dev);
 	dpi->dual_edge = of_property_read_bool(dev->of_node, "dpi_dual_edge");
+	dpi->dpi_pin_ctrl = of_property_read_bool(dev->of_node,
+						  "dpi_pin_mode_swap");
+
+	if (dpi->dpi_pin_ctrl) {
+		dpi->pinctrl = devm_pinctrl_get(&pdev->dev);
+		if (IS_ERR(dpi->pinctrl)) {
+			dev_err(&pdev->dev, "Cannot find pinctrl!\n");
+			return PTR_ERR(dpi->pinctrl);
+		}
+
+		dpi->pins_gpio = pinctrl_lookup_state(dpi->pinctrl,
+						      "gpiomode");
+		if (IS_ERR(dpi->pins_gpio)) {
+			dev_err(&pdev->dev, "Cannot find pinctrl gpiomode!\n");
+			return PTR_ERR(dpi->pins_gpio);
+		}
+
+		pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);
+
+		dpi->pins_dpi = pinctrl_lookup_state(dpi->pinctrl, "dpimode");
+		if (IS_ERR(dpi->pins_dpi)) {
+			dev_err(&pdev->dev, "Cannot find pinctrl dpimode!\n");
+			return PTR_ERR(dpi->pins_dpi);
+		}
+	}
 
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	dpi->regs = devm_ioremap_resource(dev, mem);
-- 
2.21.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips
  2020-02-21 11:28 ` [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips Jitao Shi
@ 2020-02-24  7:50   ` CK Hu
  2020-02-25  2:00     ` Jitao Shi
  2020-02-24  8:46   ` CK Hu
  1 sibling, 1 reply; 11+ messages in thread
From: CK Hu @ 2020-02-24  7:50 UTC (permalink / raw)
  To: Jitao Shi
  Cc: Mark Rutland, devicetree, srv_heupstream, David Airlie,
	huijuan.xie, stonea168, linux-kernel, dri-devel, cawa.cheng,
	Rob Herring, linux-mediatek, Matthias Brugger, yingjoe.chen,
	eddie.huang, linux-arm-kernel

Hi, Jitao:

On Fri, 2020-02-21 at 19:28 +0800, Jitao Shi wrote:
> Add decriptions about supported chips, including MT2701 & MT8173 &
> mt8183
> 
> 1. Add more chips support. ex. MT2701 & MT8173 & MT8183
> 2. Add property "dpi_pin_mode_swap" and "pinctrl-names" gpio mode dpi mode and
>    gpio oupput-low to avoid leakage current.
> 3. Add property "dpi_dual_edge" to config the dpi pin output mode dual edge or
>    single edge sample data.
> 
> Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> ---
>  .../bindings/display/mediatek/mediatek,dpi.txt        | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> index b6a7e7397b8b..cd6a1469c8b7 100644
> --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> @@ -7,6 +7,7 @@ output bus.
>  
>  Required properties:
>  - compatible: "mediatek,<chip>-dpi"
> +  the supported chips are mt2701 , mt8173 and mt8183.
>  - reg: Physical base address and length of the controller's registers
>  - interrupts: The interrupt signal from the function block.
>  - clocks: device clocks
> @@ -16,6 +17,11 @@ Required properties:
>    Documentation/devicetree/bindings/graph.txt. This port should be connected
>    to the input port of an attached HDMI or LVDS encoder chip.
>  
> +Optional properties:
> +- dpi_pin_mode_swap: Swap the pin mode between dpi mode and gpio mode.

When you have both pinctrl-name of "gpiomode" and "dpimode", it imply
that dpi_pin_mode_swap = true, isn't it? If so, I think this property is
redundant.

Regards,
CK

> +- pinctrl-names: Contain "gpiomode" and "dpimode".
> +- dpi_dual_edge: Control the RGB 24bit data on 12 pins or 24 pins.
> +
>  Example:
>  
>  dpi0: dpi@1401d000 {
> @@ -26,6 +32,11 @@ dpi0: dpi@1401d000 {
>  		 <&mmsys CLK_MM_DPI_ENGINE>,
>  		 <&apmixedsys CLK_APMIXED_TVDPLL>;
>  	clock-names = "pixel", "engine", "pll";
> +	dpi_dual_edge;
> +	dpi_pin_mode_swap;
> +	pinctrl-names = "gpiomode", "dpimode";
> +	pinctrl-0 = <&dpi_pin_gpio>;
> +	pinctrl-1 = <&dpi_pin_func>;
>  
>  	port {
>  		dpi0_out: endpoint {

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips
  2020-02-21 11:28 ` [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips Jitao Shi
  2020-02-24  7:50   ` CK Hu
@ 2020-02-24  8:46   ` CK Hu
  2020-02-25  2:05     ` Jitao Shi
  1 sibling, 1 reply; 11+ messages in thread
From: CK Hu @ 2020-02-24  8:46 UTC (permalink / raw)
  To: Jitao Shi
  Cc: Mark Rutland, devicetree, srv_heupstream, David Airlie,
	huijuan.xie, stonea168, linux-kernel, dri-devel, cawa.cheng,
	Rob Herring, linux-mediatek, Matthias Brugger, yingjoe.chen,
	eddie.huang, linux-arm-kernel

Hi, Jitao:

On Fri, 2020-02-21 at 19:28 +0800, Jitao Shi wrote:
> Add decriptions about supported chips, including MT2701 & MT8173 &
> mt8183
> 
> 1. Add more chips support. ex. MT2701 & MT8173 & MT8183
> 2. Add property "dpi_pin_mode_swap" and "pinctrl-names" gpio mode dpi mode and
>    gpio oupput-low to avoid leakage current.
> 3. Add property "dpi_dual_edge" to config the dpi pin output mode dual edge or
>    single edge sample data.
> 
> Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> ---
>  .../bindings/display/mediatek/mediatek,dpi.txt        | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> index b6a7e7397b8b..cd6a1469c8b7 100644
> --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> @@ -7,6 +7,7 @@ output bus.
>  
>  Required properties:
>  - compatible: "mediatek,<chip>-dpi"
> +  the supported chips are mt2701 , mt8173 and mt8183.
>  - reg: Physical base address and length of the controller's registers
>  - interrupts: The interrupt signal from the function block.
>  - clocks: device clocks
> @@ -16,6 +17,11 @@ Required properties:
>    Documentation/devicetree/bindings/graph.txt. This port should be connected
>    to the input port of an attached HDMI or LVDS encoder chip.
>  
> +Optional properties:
> +- dpi_pin_mode_swap: Swap the pin mode between dpi mode and gpio mode.
> +- pinctrl-names: Contain "gpiomode" and "dpimode".
> +- dpi_dual_edge: Control the RGB 24bit data on 12 pins or 24 pins.

I've find that in [1], there are already a property of "pclk-sample"
which like this, but it only have rising (1) or falling (0) status. Does
that property describe the same thing with this property? If they are
the same, I think you should add new state, dual (2), for "pclk-sample".

[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/media/video-interfaces.txt?h=v5.6-rc3

Regards,
CK

> +
>  Example:
>  
>  dpi0: dpi@1401d000 {
> @@ -26,6 +32,11 @@ dpi0: dpi@1401d000 {
>  		 <&mmsys CLK_MM_DPI_ENGINE>,
>  		 <&apmixedsys CLK_APMIXED_TVDPLL>;
>  	clock-names = "pixel", "engine", "pll";
> +	dpi_dual_edge;
> +	dpi_pin_mode_swap;
> +	pinctrl-names = "gpiomode", "dpimode";
> +	pinctrl-0 = <&dpi_pin_gpio>;
> +	pinctrl-1 = <&dpi_pin_func>;
>  
>  	port {
>  		dpi0_out: endpoint {

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips
  2020-02-24  7:50   ` CK Hu
@ 2020-02-25  2:00     ` Jitao Shi
  0 siblings, 0 replies; 11+ messages in thread
From: Jitao Shi @ 2020-02-25  2:00 UTC (permalink / raw)
  To: CK Hu
  Cc: Mark Rutland, devicetree, srv_heupstream, David Airlie,
	huijuan.xie, stonea168, linux-kernel, dri-devel, cawa.cheng,
	Rob Herring, linux-mediatek, Matthias Brugger, yingjoe.chen,
	eddie.huang, linux-arm-kernel

On Mon, 2020-02-24 at 15:50 +0800, CK Hu wrote:
> Hi, Jitao:
> 
> On Fri, 2020-02-21 at 19:28 +0800, Jitao Shi wrote:
> > Add decriptions about supported chips, including MT2701 & MT8173 &
> > mt8183
> > 
> > 1. Add more chips support. ex. MT2701 & MT8173 & MT8183
> > 2. Add property "dpi_pin_mode_swap" and "pinctrl-names" gpio mode dpi mode and
> >    gpio oupput-low to avoid leakage current.
> > 3. Add property "dpi_dual_edge" to config the dpi pin output mode dual edge or
> >    single edge sample data.
> > 
> > Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> > ---
> >  .../bindings/display/mediatek/mediatek,dpi.txt        | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > index b6a7e7397b8b..cd6a1469c8b7 100644
> > --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > @@ -7,6 +7,7 @@ output bus.
> >  
> >  Required properties:
> >  - compatible: "mediatek,<chip>-dpi"
> > +  the supported chips are mt2701 , mt8173 and mt8183.
> >  - reg: Physical base address and length of the controller's registers
> >  - interrupts: The interrupt signal from the function block.
> >  - clocks: device clocks
> > @@ -16,6 +17,11 @@ Required properties:
> >    Documentation/devicetree/bindings/graph.txt. This port should be connected
> >    to the input port of an attached HDMI or LVDS encoder chip.
> >  
> > +Optional properties:
> > +- dpi_pin_mode_swap: Swap the pin mode between dpi mode and gpio mode.
> 
> When you have both pinctrl-name of "gpiomode" and "dpimode", it imply
> that dpi_pin_mode_swap = true, isn't it? If so, I think this property is
> redundant.
> 
> Regards,
> CK

Yes,I'll fix it next verision.

Best Regards
Jitao

> 
> > +- pinctrl-names: Contain "gpiomode" and "dpimode".
> > +- dpi_dual_edge: Control the RGB 24bit data on 12 pins or 24 pins.
> > +
> >  Example:
> >  
> >  dpi0: dpi@1401d000 {
> > @@ -26,6 +32,11 @@ dpi0: dpi@1401d000 {
> >  		 <&mmsys CLK_MM_DPI_ENGINE>,
> >  		 <&apmixedsys CLK_APMIXED_TVDPLL>;
> >  	clock-names = "pixel", "engine", "pll";
> > +	dpi_dual_edge;
> > +	dpi_pin_mode_swap;
> > +	pinctrl-names = "gpiomode", "dpimode";
> > +	pinctrl-0 = <&dpi_pin_gpio>;
> > +	pinctrl-1 = <&dpi_pin_func>;
> >  
> >  	port {
> >  		dpi0_out: endpoint {
> 
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips
  2020-02-24  8:46   ` CK Hu
@ 2020-02-25  2:05     ` Jitao Shi
  2020-02-25  2:13       ` CK Hu
  0 siblings, 1 reply; 11+ messages in thread
From: Jitao Shi @ 2020-02-25  2:05 UTC (permalink / raw)
  To: CK Hu
  Cc: Mark Rutland, devicetree, srv_heupstream, David Airlie,
	huijuan.xie, stonea168, linux-kernel, dri-devel, cawa.cheng,
	Rob Herring, linux-mediatek, Matthias Brugger, yingjoe.chen,
	eddie.huang, linux-arm-kernel

On Mon, 2020-02-24 at 16:46 +0800, CK Hu wrote:
> Hi, Jitao:
> 
> On Fri, 2020-02-21 at 19:28 +0800, Jitao Shi wrote:
> > Add decriptions about supported chips, including MT2701 & MT8173 &
> > mt8183
> > 
> > 1. Add more chips support. ex. MT2701 & MT8173 & MT8183
> > 2. Add property "dpi_pin_mode_swap" and "pinctrl-names" gpio mode dpi mode and
> >    gpio oupput-low to avoid leakage current.
> > 3. Add property "dpi_dual_edge" to config the dpi pin output mode dual edge or
> >    single edge sample data.
> > 
> > Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> > ---
> >  .../bindings/display/mediatek/mediatek,dpi.txt        | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > index b6a7e7397b8b..cd6a1469c8b7 100644
> > --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > @@ -7,6 +7,7 @@ output bus.
> >  
> >  Required properties:
> >  - compatible: "mediatek,<chip>-dpi"
> > +  the supported chips are mt2701 , mt8173 and mt8183.
> >  - reg: Physical base address and length of the controller's registers
> >  - interrupts: The interrupt signal from the function block.
> >  - clocks: device clocks
> > @@ -16,6 +17,11 @@ Required properties:
> >    Documentation/devicetree/bindings/graph.txt. This port should be connected
> >    to the input port of an attached HDMI or LVDS encoder chip.
> >  
> > +Optional properties:
> > +- dpi_pin_mode_swap: Swap the pin mode between dpi mode and gpio mode.
> > +- pinctrl-names: Contain "gpiomode" and "dpimode".
> > +- dpi_dual_edge: Control the RGB 24bit data on 12 pins or 24 pins.
> 
> I've find that in [1], there are already a property of "pclk-sample"
> which like this, but it only have rising (1) or falling (0) status. Does
> that property describe the same thing with this property? If they are
> the same, I think you should add new state, dual (2), for "pclk-sample".
> 
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/media/video-interfaces.txt?h=v5.6-rc3
> 
> Regards,
> CK
> 

pclk-sample has two properties  rising or falling.
It means to sample on rising or falling edge.

But, dpi_dual_edge means to sample on both rising and falling edge.

Best Regards
Jitao
> > +
> >  Example:
> >  
> >  dpi0: dpi@1401d000 {
> > @@ -26,6 +32,11 @@ dpi0: dpi@1401d000 {
> >  		 <&mmsys CLK_MM_DPI_ENGINE>,
> >  		 <&apmixedsys CLK_APMIXED_TVDPLL>;
> >  	clock-names = "pixel", "engine", "pll";
> > +	dpi_dual_edge;
> > +	dpi_pin_mode_swap;
> > +	pinctrl-names = "gpiomode", "dpimode";
> > +	pinctrl-0 = <&dpi_pin_gpio>;
> > +	pinctrl-1 = <&dpi_pin_func>;
> >  
> >  	port {
> >  		dpi0_out: endpoint {
> 
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips
  2020-02-25  2:05     ` Jitao Shi
@ 2020-02-25  2:13       ` CK Hu
  2020-02-25  2:32         ` Jitao Shi
  0 siblings, 1 reply; 11+ messages in thread
From: CK Hu @ 2020-02-25  2:13 UTC (permalink / raw)
  To: Jitao Shi
  Cc: Mark Rutland, devicetree, srv_heupstream, David Airlie,
	huijuan.xie, stonea168, linux-kernel, dri-devel, cawa.cheng,
	Rob Herring, linux-mediatek, Matthias Brugger, yingjoe.chen,
	eddie.huang, linux-arm-kernel

Hi, Jitao:

On Tue, 2020-02-25 at 10:05 +0800, Jitao Shi wrote:
> On Mon, 2020-02-24 at 16:46 +0800, CK Hu wrote:
> > Hi, Jitao:
> > 
> > On Fri, 2020-02-21 at 19:28 +0800, Jitao Shi wrote:
> > > Add decriptions about supported chips, including MT2701 & MT8173 &
> > > mt8183
> > > 
> > > 1. Add more chips support. ex. MT2701 & MT8173 & MT8183
> > > 2. Add property "dpi_pin_mode_swap" and "pinctrl-names" gpio mode dpi mode and
> > >    gpio oupput-low to avoid leakage current.
> > > 3. Add property "dpi_dual_edge" to config the dpi pin output mode dual edge or
> > >    single edge sample data.
> > > 
> > > Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> > > ---
> > >  .../bindings/display/mediatek/mediatek,dpi.txt        | 11 +++++++++++
> > >  1 file changed, 11 insertions(+)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > > index b6a7e7397b8b..cd6a1469c8b7 100644
> > > --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > > @@ -7,6 +7,7 @@ output bus.
> > >  
> > >  Required properties:
> > >  - compatible: "mediatek,<chip>-dpi"
> > > +  the supported chips are mt2701 , mt8173 and mt8183.
> > >  - reg: Physical base address and length of the controller's registers
> > >  - interrupts: The interrupt signal from the function block.
> > >  - clocks: device clocks
> > > @@ -16,6 +17,11 @@ Required properties:
> > >    Documentation/devicetree/bindings/graph.txt. This port should be connected
> > >    to the input port of an attached HDMI or LVDS encoder chip.
> > >  
> > > +Optional properties:
> > > +- dpi_pin_mode_swap: Swap the pin mode between dpi mode and gpio mode.
> > > +- pinctrl-names: Contain "gpiomode" and "dpimode".
> > > +- dpi_dual_edge: Control the RGB 24bit data on 12 pins or 24 pins.
> > 
> > I've find that in [1], there are already a property of "pclk-sample"
> > which like this, but it only have rising (1) or falling (0) status. Does
> > that property describe the same thing with this property? If they are
> > the same, I think you should add new state, dual (2), for "pclk-sample".
> > 
> > [1]
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/media/video-interfaces.txt?h=v5.6-rc3
> > 
> > Regards,
> > CK
> > 
> 
> pclk-sample has two properties  rising or falling.
> It means to sample on rising or falling edge.
> 
> But, dpi_dual_edge means to sample on both rising and falling edge.
> 

It seems that both describe "When to sample data", so they are the same
for me.

I think we should prevent to invent a new property if there is already a
one. Even though pclk-sample just have two state (rising or falling
edge), I think we could add a new state (dual edge) to pclk-sample. 

Regards,
CK

> Best Regards
> Jitao
> > > +
> > >  Example:
> > >  
> > >  dpi0: dpi@1401d000 {
> > > @@ -26,6 +32,11 @@ dpi0: dpi@1401d000 {
> > >  		 <&mmsys CLK_MM_DPI_ENGINE>,
> > >  		 <&apmixedsys CLK_APMIXED_TVDPLL>;
> > >  	clock-names = "pixel", "engine", "pll";
> > > +	dpi_dual_edge;
> > > +	dpi_pin_mode_swap;
> > > +	pinctrl-names = "gpiomode", "dpimode";
> > > +	pinctrl-0 = <&dpi_pin_gpio>;
> > > +	pinctrl-1 = <&dpi_pin_func>;
> > >  
> > >  	port {
> > >  		dpi0_out: endpoint {
> > 
> > 
> 
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips
  2020-02-25  2:13       ` CK Hu
@ 2020-02-25  2:32         ` Jitao Shi
  0 siblings, 0 replies; 11+ messages in thread
From: Jitao Shi @ 2020-02-25  2:32 UTC (permalink / raw)
  To: CK Hu
  Cc: Mark Rutland, devicetree, srv_heupstream, David Airlie,
	huijuan.xie, stonea168, linux-kernel, dri-devel, cawa.cheng,
	Rob Herring, linux-mediatek, Matthias Brugger, yingjoe.chen,
	eddie.huang, linux-arm-kernel

On Tue, 2020-02-25 at 10:13 +0800, CK Hu wrote:
> Hi, Jitao:
> 
> On Tue, 2020-02-25 at 10:05 +0800, Jitao Shi wrote:
> > On Mon, 2020-02-24 at 16:46 +0800, CK Hu wrote:
> > > Hi, Jitao:
> > > 
> > > On Fri, 2020-02-21 at 19:28 +0800, Jitao Shi wrote:
> > > > Add decriptions about supported chips, including MT2701 & MT8173 &
> > > > mt8183
> > > > 
> > > > 1. Add more chips support. ex. MT2701 & MT8173 & MT8183
> > > > 2. Add property "dpi_pin_mode_swap" and "pinctrl-names" gpio mode dpi mode and
> > > >    gpio oupput-low to avoid leakage current.
> > > > 3. Add property "dpi_dual_edge" to config the dpi pin output mode dual edge or
> > > >    single edge sample data.
> > > > 
> > > > Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> > > > ---
> > > >  .../bindings/display/mediatek/mediatek,dpi.txt        | 11 +++++++++++
> > > >  1 file changed, 11 insertions(+)
> > > > 
> > > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > > > index b6a7e7397b8b..cd6a1469c8b7 100644
> > > > --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
> > > > @@ -7,6 +7,7 @@ output bus.
> > > >  
> > > >  Required properties:
> > > >  - compatible: "mediatek,<chip>-dpi"
> > > > +  the supported chips are mt2701 , mt8173 and mt8183.
> > > >  - reg: Physical base address and length of the controller's registers
> > > >  - interrupts: The interrupt signal from the function block.
> > > >  - clocks: device clocks
> > > > @@ -16,6 +17,11 @@ Required properties:
> > > >    Documentation/devicetree/bindings/graph.txt. This port should be connected
> > > >    to the input port of an attached HDMI or LVDS encoder chip.
> > > >  
> > > > +Optional properties:
> > > > +- dpi_pin_mode_swap: Swap the pin mode between dpi mode and gpio mode.
> > > > +- pinctrl-names: Contain "gpiomode" and "dpimode".
> > > > +- dpi_dual_edge: Control the RGB 24bit data on 12 pins or 24 pins.
> > > 
> > > I've find that in [1], there are already a property of "pclk-sample"
> > > which like this, but it only have rising (1) or falling (0) status. Does
> > > that property describe the same thing with this property? If they are
> > > the same, I think you should add new state, dual (2), for "pclk-sample".
> > > 
> > > [1]
> > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/media/video-interfaces.txt?h=v5.6-rc3
> > > 
> > > Regards,
> > > CK
> > > 
> > 
> > pclk-sample has two properties  rising or falling.
> > It means to sample on rising or falling edge.
> > 
> > But, dpi_dual_edge means to sample on both rising and falling edge.
> > 
> 
> It seems that both describe "When to sample data", so they are the same
> for me.
> 
> I think we should prevent to invent a new property if there is already a
> one. Even though pclk-sample just have two state (rising or falling
> edge), I think we could add a new state (dual edge) to pclk-sample. 
> 
> Regards,
> CK

Got it.
I'll fix them next verison.

Best Regards
Jitao
> 
> > Best Regards
> > Jitao
> > > > +
> > > >  Example:
> > > >  
> > > >  dpi0: dpi@1401d000 {
> > > > @@ -26,6 +32,11 @@ dpi0: dpi@1401d000 {
> > > >  		 <&mmsys CLK_MM_DPI_ENGINE>,
> > > >  		 <&apmixedsys CLK_APMIXED_TVDPLL>;
> > > >  	clock-names = "pixel", "engine", "pll";
> > > > +	dpi_dual_edge;
> > > > +	dpi_pin_mode_swap;
> > > > +	pinctrl-names = "gpiomode", "dpimode";
> > > > +	pinctrl-0 = <&dpi_pin_gpio>;
> > > > +	pinctrl-1 = <&dpi_pin_func>;
> > > >  
> > > >  	port {
> > > >  		dpi0_out: endpoint {
> > > 
> > > 
> > 
> > 
> 
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

end of thread, other threads:[~2020-02-25  2:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-21 11:28 [PATCH v6 0/4] add mt8183 dpi driver Jitao Shi
2020-02-21 11:28 ` [PATCH v6 1/4] dt-bindings: display: mediatek: update dpi supported chips Jitao Shi
2020-02-24  7:50   ` CK Hu
2020-02-25  2:00     ` Jitao Shi
2020-02-24  8:46   ` CK Hu
2020-02-25  2:05     ` Jitao Shi
2020-02-25  2:13       ` CK Hu
2020-02-25  2:32         ` Jitao Shi
2020-02-21 11:28 ` [PATCH v6 2/4] drm/mediatek: dpi dual edge support Jitao Shi
2020-02-21 11:28 ` [PATCH v6 3/4] drm/mediatek: add mt8183 dpi clock factor Jitao Shi
2020-02-21 11:28 ` [PATCH v6 4/4] drm/mediatek: set dpi pin mode to gpio low to avoid leakage current Jitao Shi

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).