public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor
@ 2026-01-20 23:19 Fabio Estevam
  2026-01-20 23:19 ` [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled Fabio Estevam
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Fabio Estevam @ 2026-01-20 23:19 UTC (permalink / raw)
  To: victor.liu
  Cc: marek.vasut, neil.armstrong, robh, krzk+dt, conor+dt, dri-devel,
	devicetree, frank.li, Fabio Estevam

From: Fabio Estevam <festevam@nabladev.com>

Document the optional nxp,enable-termination-resistor property for the
i.MX LVDS display bridge.

This boolean property indicates that the built-in 100 Ohm termination
resistor on the LVDS output is enabled. It is controlled via the HS_EN
bit in the LVDS_CTRL register. Enabling the resistor can improve LVDS
signal quality and may prevent visual artifacts on some boards, but
increases the power consumption.

Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v1:
- Restrict it to i.MX6SX. (Liu Ying)

 .../bindings/display/bridge/fsl,ldb.yaml       | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
index 49664101a353..7f380879fffd 100644
--- a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
@@ -35,6 +35,15 @@ properties:
       - const: ldb
       - const: lvds
 
+  nxp,enable-termination-resistor:
+    type: boolean
+    description:
+      Indicates that the built-in 100 Ohm termination resistor on the LVDS
+      output is enabled. This property is optional and controlled via the
+      HS_EN bit in the LVDS_CTRL register. Enabling it can improve signal
+      quality and prevent visual artifacts on some boards, but increases
+      power consumption.
+
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
 
@@ -84,6 +93,15 @@ allOf:
       required:
         - reg-names
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: fsl,imx6sx-ldb
+    then:
+      properties:
+        nxp,enable-termination-resistor: false
+
 additionalProperties: false
 
 examples:
-- 
2.34.1


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

* [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled
  2026-01-20 23:19 [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor Fabio Estevam
@ 2026-01-20 23:19 ` Fabio Estevam
  2026-01-21  8:24   ` Liu Ying
  2026-01-28  3:41   ` Liu Ying
  2026-01-21  2:36 ` [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor Rob Herring (Arm)
  2026-01-28  3:40 ` Liu Ying
  2 siblings, 2 replies; 7+ messages in thread
From: Fabio Estevam @ 2026-01-20 23:19 UTC (permalink / raw)
  To: victor.liu
  Cc: marek.vasut, neil.armstrong, robh, krzk+dt, conor+dt, dri-devel,
	devicetree, frank.li, Fabio Estevam

From: Fabio Estevam <festevam@nabladev.com>

The LVDS Control Register (LVDS_CTRL) register has an HS_EN bit that allows
the 100 Ohm termination resistor in the chip to be enabled.

Add support to setting the HS_EN bit when the optional property
"nxp,enable-termination-resistor" is present.

The motivation for introducing this property was a custom i.MX8MP board
that was showing visual artifacts. After enabling the 100 Ohm termination
resistor the LVDS signal quality improved causing the artifacts to
disappear.

Signed-off-by: Fabio Estevam <festevam@nabladev.com>
---
Changes since v2:
- Rename variable to 'use_termination_resistor'. (Liu Ying)
- Remove clearing the LVDS_CTRL_HS_EN bit. (Liu Ying)
- Use dev->of_node. (Liu Ying)

 drivers/gpu/drm/bridge/fsl-ldb.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/bridge/fsl-ldb.c b/drivers/gpu/drm/bridge/fsl-ldb.c
index 5c3cf37200bc..7b71cde173e0 100644
--- a/drivers/gpu/drm/bridge/fsl-ldb.c
+++ b/drivers/gpu/drm/bridge/fsl-ldb.c
@@ -92,6 +92,7 @@ struct fsl_ldb {
 	const struct fsl_ldb_devdata *devdata;
 	bool ch0_enabled;
 	bool ch1_enabled;
+	bool use_termination_resistor;
 };
 
 static bool fsl_ldb_is_dual(const struct fsl_ldb *fsl_ldb)
@@ -212,6 +213,9 @@ static void fsl_ldb_atomic_enable(struct drm_bridge *bridge,
 	/* Program LVDS_CTRL */
 	reg = LVDS_CTRL_CC_ADJ(2) | LVDS_CTRL_PRE_EMPH_EN |
 	      LVDS_CTRL_PRE_EMPH_ADJ(3) | LVDS_CTRL_VBG_EN;
+
+	if (fsl_ldb->use_termination_resistor)
+		reg |= LVDS_CTRL_HS_EN;
 	regmap_write(fsl_ldb->regmap, fsl_ldb->devdata->lvds_ctrl, reg);
 
 	/* Wait for VBG to stabilize. */
@@ -340,6 +344,9 @@ static int fsl_ldb_probe(struct platform_device *pdev)
 	if (IS_ERR(panel))
 		return PTR_ERR(panel);
 
+	if (of_property_present(dev->of_node, "nxp,enable-termination-resistor"))
+		fsl_ldb->use_termination_resistor = true;
+
 	fsl_ldb->panel_bridge = devm_drm_panel_bridge_add(dev, panel);
 	if (IS_ERR(fsl_ldb->panel_bridge))
 		return PTR_ERR(fsl_ldb->panel_bridge);
-- 
2.34.1


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

* Re: [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor
  2026-01-20 23:19 [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor Fabio Estevam
  2026-01-20 23:19 ` [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled Fabio Estevam
@ 2026-01-21  2:36 ` Rob Herring (Arm)
  2026-01-28  3:40 ` Liu Ying
  2 siblings, 0 replies; 7+ messages in thread
From: Rob Herring (Arm) @ 2026-01-21  2:36 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: conor+dt, krzk+dt, frank.li, devicetree, dri-devel, marek.vasut,
	Fabio Estevam, victor.liu, neil.armstrong


On Tue, 20 Jan 2026 20:19:29 -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@nabladev.com>
> 
> Document the optional nxp,enable-termination-resistor property for the
> i.MX LVDS display bridge.
> 
> This boolean property indicates that the built-in 100 Ohm termination
> resistor on the LVDS output is enabled. It is controlled via the HS_EN
> bit in the LVDS_CTRL register. Enabling the resistor can improve LVDS
> signal quality and may prevent visual artifacts on some boards, but
> increases the power consumption.
> 
> Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> ---
> Changes since v1:
> - Restrict it to i.MX6SX. (Liu Ying)
> 
>  .../bindings/display/bridge/fsl,ldb.yaml       | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 

Acked-by: Rob Herring (Arm) <robh@kernel.org>


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

* Re: [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled
  2026-01-20 23:19 ` [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled Fabio Estevam
@ 2026-01-21  8:24   ` Liu Ying
  2026-01-27 11:37     ` Fabio Estevam
  2026-01-28  3:41   ` Liu Ying
  1 sibling, 1 reply; 7+ messages in thread
From: Liu Ying @ 2026-01-21  8:24 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: marek.vasut, neil.armstrong, robh, krzk+dt, conor+dt, dri-devel,
	devicetree, frank.li, Fabio Estevam



On Tue, Jan 20, 2026 at 08:19:30PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@nabladev.com>
> 
> The LVDS Control Register (LVDS_CTRL) register has an HS_EN bit that allows
> the 100 Ohm termination resistor in the chip to be enabled.
> 
> Add support to setting the HS_EN bit when the optional property
> "nxp,enable-termination-resistor" is present.
> 
> The motivation for introducing this property was a custom i.MX8MP board
> that was showing visual artifacts. After enabling the 100 Ohm termination
> resistor the LVDS signal quality improved causing the artifacts to
> disappear.
> 
> Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> ---
> Changes since v2:
> - Rename variable to 'use_termination_resistor'. (Liu Ying)
> - Remove clearing the LVDS_CTRL_HS_EN bit. (Liu Ying)
> - Use dev->of_node. (Liu Ying)
> 
>  drivers/gpu/drm/bridge/fsl-ldb.c | 7 +++++++
>  1 file changed, 7 insertions(+)

Reviewed-by: Liu Ying <victor.liu@nxp.com>

Thanks!

-- 
Regards,
Liu Ying

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

* Re: [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled
  2026-01-21  8:24   ` Liu Ying
@ 2026-01-27 11:37     ` Fabio Estevam
  0 siblings, 0 replies; 7+ messages in thread
From: Fabio Estevam @ 2026-01-27 11:37 UTC (permalink / raw)
  To: Liu Ying
  Cc: marek.vasut, neil.armstrong, robh, krzk+dt, conor+dt, dri-devel,
	devicetree, frank.li, Fabio Estevam

Hi Liu Ying,

On Wed, Jan 21, 2026 at 5:23 AM Liu Ying <victor.liu@nxp.com> wrote:
>
>
>
> On Tue, Jan 20, 2026 at 08:19:30PM -0300, Fabio Estevam wrote:
> > From: Fabio Estevam <festevam@nabladev.com>
> >
> > The LVDS Control Register (LVDS_CTRL) register has an HS_EN bit that allows
> > the 100 Ohm termination resistor in the chip to be enabled.
> >
> > Add support to setting the HS_EN bit when the optional property
> > "nxp,enable-termination-resistor" is present.
> >
> > The motivation for introducing this property was a custom i.MX8MP board
> > that was showing visual artifacts. After enabling the 100 Ohm termination
> > resistor the LVDS signal quality improved causing the artifacts to
> > disappear.
> >
> > Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> > ---
> > Changes since v2:
> > - Rename variable to 'use_termination_resistor'. (Liu Ying)
> > - Remove clearing the LVDS_CTRL_HS_EN bit. (Liu Ying)
> > - Use dev->of_node. (Liu Ying)
> >
> >  drivers/gpu/drm/bridge/fsl-ldb.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
>
> Reviewed-by: Liu Ying <victor.liu@nxp.com>

Could you please help apply this series?

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

* Re: [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor
  2026-01-20 23:19 [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor Fabio Estevam
  2026-01-20 23:19 ` [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled Fabio Estevam
  2026-01-21  2:36 ` [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor Rob Herring (Arm)
@ 2026-01-28  3:40 ` Liu Ying
  2 siblings, 0 replies; 7+ messages in thread
From: Liu Ying @ 2026-01-28  3:40 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: marek.vasut, neil.armstrong, robh, krzk+dt, conor+dt, dri-devel,
	devicetree, frank.li, Fabio Estevam



On Tue, Jan 20, 2026 at 08:19:29PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@nabladev.com>
> 
> Document the optional nxp,enable-termination-resistor property for the
> i.MX LVDS display bridge.
> 
> This boolean property indicates that the built-in 100 Ohm termination
> resistor on the LVDS output is enabled. It is controlled via the HS_EN
> bit in the LVDS_CTRL register. Enabling the resistor can improve LVDS
> signal quality and may prevent visual artifacts on some boards, but
> increases the power consumption.
> 
> Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> ---
> Changes since v1:
> - Restrict it to i.MX6SX. (Liu Ying)
> 
>  .../bindings/display/bridge/fsl,ldb.yaml       | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
> index 49664101a353..7f380879fffd 100644
> --- a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
> @@ -35,6 +35,15 @@ properties:
>        - const: ldb
>        - const: lvds
>  
> +  nxp,enable-termination-resistor:
> +    type: boolean
> +    description:
> +      Indicates that the built-in 100 Ohm termination resistor on the LVDS
> +      output is enabled. This property is optional and controlled via the
> +      HS_EN bit in the LVDS_CTRL register. Enabling it can improve signal
> +      quality and prevent visual artifacts on some boards, but increases
> +      power consumption.
> +
>    ports:
>      $ref: /schemas/graph.yaml#/properties/ports
>  
> @@ -84,6 +93,15 @@ allOf:
>        required:
>          - reg-names
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: fsl,imx6sx-ldb
> +    then:
> +      properties:
> +        nxp,enable-termination-resistor: false
> +
>  additionalProperties: false
>  
>  examples:

Applied to misc/kernel.git (drm-misc-next).  Thanks!

-- 
Regards,
Liu Ying

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

* Re: [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled
  2026-01-20 23:19 ` [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled Fabio Estevam
  2026-01-21  8:24   ` Liu Ying
@ 2026-01-28  3:41   ` Liu Ying
  1 sibling, 0 replies; 7+ messages in thread
From: Liu Ying @ 2026-01-28  3:41 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: marek.vasut, neil.armstrong, robh, krzk+dt, conor+dt, dri-devel,
	devicetree, frank.li, Fabio Estevam



On Tue, Jan 20, 2026 at 08:19:30PM -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@nabladev.com>
> 
> The LVDS Control Register (LVDS_CTRL) register has an HS_EN bit that allows
> the 100 Ohm termination resistor in the chip to be enabled.
> 
> Add support to setting the HS_EN bit when the optional property
> "nxp,enable-termination-resistor" is present.
> 
> The motivation for introducing this property was a custom i.MX8MP board
> that was showing visual artifacts. After enabling the 100 Ohm termination
> resistor the LVDS signal quality improved causing the artifacts to
> disappear.
> 
> Signed-off-by: Fabio Estevam <festevam@nabladev.com>
> ---
> Changes since v2:
> - Rename variable to 'use_termination_resistor'. (Liu Ying)
> - Remove clearing the LVDS_CTRL_HS_EN bit. (Liu Ying)
> - Use dev->of_node. (Liu Ying)
> 
>  drivers/gpu/drm/bridge/fsl-ldb.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/gpu/drm/bridge/fsl-ldb.c b/drivers/gpu/drm/bridge/fsl-ldb.c
> index 5c3cf37200bc..7b71cde173e0 100644
> --- a/drivers/gpu/drm/bridge/fsl-ldb.c
> +++ b/drivers/gpu/drm/bridge/fsl-ldb.c
> @@ -92,6 +92,7 @@ struct fsl_ldb {
>  	const struct fsl_ldb_devdata *devdata;
>  	bool ch0_enabled;
>  	bool ch1_enabled;
> +	bool use_termination_resistor;
>  };
>  
>  static bool fsl_ldb_is_dual(const struct fsl_ldb *fsl_ldb)
> @@ -212,6 +213,9 @@ static void fsl_ldb_atomic_enable(struct drm_bridge *bridge,
>  	/* Program LVDS_CTRL */
>  	reg = LVDS_CTRL_CC_ADJ(2) | LVDS_CTRL_PRE_EMPH_EN |
>  	      LVDS_CTRL_PRE_EMPH_ADJ(3) | LVDS_CTRL_VBG_EN;
> +
> +	if (fsl_ldb->use_termination_resistor)
> +		reg |= LVDS_CTRL_HS_EN;
>  	regmap_write(fsl_ldb->regmap, fsl_ldb->devdata->lvds_ctrl, reg);
>  
>  	/* Wait for VBG to stabilize. */
> @@ -340,6 +344,9 @@ static int fsl_ldb_probe(struct platform_device *pdev)
>  	if (IS_ERR(panel))
>  		return PTR_ERR(panel);
>  
> +	if (of_property_present(dev->of_node, "nxp,enable-termination-resistor"))
> +		fsl_ldb->use_termination_resistor = true;
> +
>  	fsl_ldb->panel_bridge = devm_drm_panel_bridge_add(dev, panel);
>  	if (IS_ERR(fsl_ldb->panel_bridge))
>  		return PTR_ERR(fsl_ldb->panel_bridge);

Applied to misc/kernel.git (drm-misc-next).  Thanks!

-- 
Regards,
Liu Ying

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

end of thread, other threads:[~2026-01-28  3:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-20 23:19 [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor Fabio Estevam
2026-01-20 23:19 ` [PATCH v3 2/2] drm/bridge: fsl-ldb: Allow the termination resistor to be enabled Fabio Estevam
2026-01-21  8:24   ` Liu Ying
2026-01-27 11:37     ` Fabio Estevam
2026-01-28  3:41   ` Liu Ying
2026-01-21  2:36 ` [PATCH v3 1/2] dt-bindings: display: bridge: ldb: Document nxp,enable-termination-resistor Rob Herring (Arm)
2026-01-28  3:40 ` Liu Ying

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox