diff mbox series

[1/2] arm64: dts: imx8mp-verdin: add dsi to hdmi functionality

Message ID 20220901154051.1885509-1-max.oss.09@gmail.com (mailing list archive)
State New, archived
Headers show
Series [1/2] arm64: dts: imx8mp-verdin: add dsi to hdmi functionality | expand

Commit Message

Max Krummenacher Sept. 1, 2022, 3:40 p.m. UTC
From: Max Krummenacher <max.krummenacher@toradex.com>

Add the hdmi connector present on the dsi to hdmi adapter now
required by the upstream lontium bridge driver.
The dsi to hdmi adapter is enabled in an device tree overlay.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>

---

 arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Laurent Pinchart Sept. 1, 2022, 6:07 p.m. UTC | #1
Hi Max,

Thank you for the patch.

On Thu, Sep 01, 2022 at 05:40:50PM +0200, Max Krummenacher wrote:
> From: Max Krummenacher <max.krummenacher@toradex.com>
> 
> Add the hdmi connector present on the dsi to hdmi adapter now
> required by the upstream lontium bridge driver.
> The dsi to hdmi adapter is enabled in an device tree overlay.

Shouldn't the connector also be in the overlay ? There's certainly no
physical HDMI connector on the i.MX8MP Verdin SoM :-)

> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> 
> ---
> 
>  arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
> index 76cc89296150..bd84a0d135dc 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
> @@ -59,6 +59,14 @@ button-wakeup {
>  		};
>  	};
>  
> +	hdmi_connector: hdmi-connector {
> +		compatible = "hdmi-connector";
> +		ddc-i2c-bus = <&i2c2>;
> +		label = "hdmi";
> +		type = "a";
> +		status = "disabled";
> +	};
> +
>  	/* Carrier Board Supplies */
>  	reg_1p8v: regulator-1p8v {
>  		compatible = "regulator-fixed";
Francesco Dolcini Sept. 2, 2022, 3:57 p.m. UTC | #2
Hello Laurent,
answering here for both patches (1/2 and 2/2).

On Thu, Sep 01, 2022 at 09:07:49PM +0300, Laurent Pinchart wrote:
> On Thu, Sep 01, 2022 at 05:40:50PM +0200, Max Krummenacher wrote:
> > From: Max Krummenacher <max.krummenacher@toradex.com>
> > 
> > Add the hdmi connector present on the dsi to hdmi adapter now
> > required by the upstream lontium bridge driver.
> > The dsi to hdmi adapter is enabled in an device tree overlay.
> 
> Shouldn't the connector also be in the overlay ? There's certainly no
> physical HDMI connector on the i.MX8MP Verdin SoM :-)

Toradex DTS include and overlay files structure so far has been a little
bit different and not following the expectation you just stated here,
you can just check the current *toradex*dts* files and you'll see that there
is other stuff that is not strictly part of the module.

Copying from a previous email thread on a very similar discussion [0]
some of the reasons:

 - The SoM dtsi representing not only the functionality implemented into
   the SoM, but the whole connector pinout to the carrier makes very easy
   to just include a different som.dtsi in the carrier board dts and just
   switch SoM, for example from a colibri-imx6 to a colibri-imx7.
 - We avoid code duplication

This is working for us pretty well so far and the majority of the users
of ours modules rely on this structure, we would prefer not to change that.

Francesco

[0] https://lore.kernel.org/all/20220413094449.GB118560@francesco-nb.int.toradex.com/
Laurent Pinchart Sept. 3, 2022, 12:24 a.m. UTC | #3
Hi Francesco,

On Fri, Sep 02, 2022 at 05:57:20PM +0200, Francesco Dolcini wrote:
> Hello Laurent,
> answering here for both patches (1/2 and 2/2).
> 
> On Thu, Sep 01, 2022 at 09:07:49PM +0300, Laurent Pinchart wrote:
> > On Thu, Sep 01, 2022 at 05:40:50PM +0200, Max Krummenacher wrote:
> > > From: Max Krummenacher <max.krummenacher@toradex.com>
> > > 
> > > Add the hdmi connector present on the dsi to hdmi adapter now
> > > required by the upstream lontium bridge driver.
> > > The dsi to hdmi adapter is enabled in an device tree overlay.
> > 
> > Shouldn't the connector also be in the overlay ? There's certainly no
> > physical HDMI connector on the i.MX8MP Verdin SoM :-)
> 
> Toradex DTS include and overlay files structure so far has been a little
> bit different and not following the expectation you just stated here,
> you can just check the current *toradex*dts* files and you'll see that there
> is other stuff that is not strictly part of the module.
> 
> Copying from a previous email thread on a very similar discussion [0]
> some of the reasons:
> 
>  - The SoM dtsi representing not only the functionality implemented into
>    the SoM, but the whole connector pinout to the carrier makes very easy
>    to just include a different som.dtsi in the carrier board dts and just
>    switch SoM, for example from a colibri-imx6 to a colibri-imx7.

That's fine, but I don't see how that's related to the issue at hand.
The DSI to HDMI bridge wouldn't be present on either SoM, would it ?

>  - We avoid code duplication
> 
> This is working for us pretty well so far and the majority of the users
> of ours modules rely on this structure, we would prefer not to change that.

It may work for your current use cases, but it doesn't make it right :-)
Someone can integrate a Verdin SoM with a carrier board that has no DSI
to HDMI (or LVDS) bridge, there should thus be no such device in the
device tree. The SoM has DSI signals present on its connector, that's
what the SoM .dtsi should expose.

> [0] https://lore.kernel.org/all/20220413094449.GB118560@francesco-nb.int.toradex.com/
Francesco Dolcini Sept. 3, 2022, 12:47 p.m. UTC | #4
On Sat, Sep 03, 2022 at 03:24:51AM +0300, Laurent Pinchart wrote:
> Hi Francesco,
> 
> On Fri, Sep 02, 2022 at 05:57:20PM +0200, Francesco Dolcini wrote:
> > Hello Laurent,
> > answering here for both patches (1/2 and 2/2).
> > 
> > On Thu, Sep 01, 2022 at 09:07:49PM +0300, Laurent Pinchart wrote:
> > > On Thu, Sep 01, 2022 at 05:40:50PM +0200, Max Krummenacher wrote:
> > > > From: Max Krummenacher <max.krummenacher@toradex.com>
> > > > 
> > > > Add the hdmi connector present on the dsi to hdmi adapter now
> > > > required by the upstream lontium bridge driver.
> > > > The dsi to hdmi adapter is enabled in an device tree overlay.
> > > 
> > > Shouldn't the connector also be in the overlay ? There's certainly no
> > > physical HDMI connector on the i.MX8MP Verdin SoM :-)
> > 
> > Toradex DTS include and overlay files structure so far has been a little
> > bit different and not following the expectation you just stated here,
> > you can just check the current *toradex*dts* files and you'll see that there
> > is other stuff that is not strictly part of the module.
> > 
> > Copying from a previous email thread on a very similar discussion [0]
> > some of the reasons:
> > 
> >  - The SoM dtsi representing not only the functionality implemented into
> >    the SoM, but the whole connector pinout to the carrier makes very easy
> >    to just include a different som.dtsi in the carrier board dts and just
> >    switch SoM, for example from a colibri-imx6 to a colibri-imx7.
> 
> That's fine, but I don't see how that's related to the issue at hand.
> The DSI to HDMI bridge wouldn't be present on either SoM, would it ?
> 
> >  - We avoid code duplication
> > 
> > This is working for us pretty well so far and the majority of the users
> > of ours modules rely on this structure, we would prefer not to change that.
> 
> It may work for your current use cases, but it doesn't make it right :-)

Most of engineering is about compromise, being consistent with what we
did so far and the end-user experience need to be taken into account.

> Someone can integrate a Verdin SoM with a carrier board that has no DSI
> to HDMI (or LVDS) bridge, there should thus be no such device in the
> device tree. The SoM has DSI signals present on its connector, that's
> what the SoM .dtsi should expose.

Just for the record Verdin i.MX8M Plus do have both HDMI and LVDS on the
connector (in addition to DSI) [1], of course we do have also the option to
have LVDS or HDMI using an external add-on DSI bridge as this patches are
about.

Said that it's true that sometime we describe peripherals that are part of the
SOM family into the SOM dtsi, this avoid quite a lot of duplications given the
amount of carrier board that are available on the market that use just the same
building blocks (and this was one of the 2 points I mentioned as a reasoning
for our current DTS files structure).

Of course, we keep these stuff disabled by default, so apart for some small size
increase I do not see a real issue.

Francesco

[1] https://docs.toradex.com/110977-verdin_imx8m_plus_v1.1_datasheet.pdf
Laurent Pinchart Sept. 5, 2022, 7:26 p.m. UTC | #5
Hi Francesco,

On Sat, Sep 03, 2022 at 02:47:43PM +0200, Francesco Dolcini wrote:
> On Sat, Sep 03, 2022 at 03:24:51AM +0300, Laurent Pinchart wrote:
> > On Fri, Sep 02, 2022 at 05:57:20PM +0200, Francesco Dolcini wrote:
> > > Hello Laurent,
> > > answering here for both patches (1/2 and 2/2).
> > > 
> > > On Thu, Sep 01, 2022 at 09:07:49PM +0300, Laurent Pinchart wrote:
> > > > On Thu, Sep 01, 2022 at 05:40:50PM +0200, Max Krummenacher wrote:
> > > > > From: Max Krummenacher <max.krummenacher@toradex.com>
> > > > > 
> > > > > Add the hdmi connector present on the dsi to hdmi adapter now
> > > > > required by the upstream lontium bridge driver.
> > > > > The dsi to hdmi adapter is enabled in an device tree overlay.
> > > > 
> > > > Shouldn't the connector also be in the overlay ? There's certainly no
> > > > physical HDMI connector on the i.MX8MP Verdin SoM :-)
> > > 
> > > Toradex DTS include and overlay files structure so far has been a little
> > > bit different and not following the expectation you just stated here,
> > > you can just check the current *toradex*dts* files and you'll see that there
> > > is other stuff that is not strictly part of the module.
> > > 
> > > Copying from a previous email thread on a very similar discussion [0]
> > > some of the reasons:
> > > 
> > >  - The SoM dtsi representing not only the functionality implemented into
> > >    the SoM, but the whole connector pinout to the carrier makes very easy
> > >    to just include a different som.dtsi in the carrier board dts and just
> > >    switch SoM, for example from a colibri-imx6 to a colibri-imx7.
> > 
> > That's fine, but I don't see how that's related to the issue at hand.
> > The DSI to HDMI bridge wouldn't be present on either SoM, would it ?
> > 
> > >  - We avoid code duplication
> > > 
> > > This is working for us pretty well so far and the majority of the users
> > > of ours modules rely on this structure, we would prefer not to change that.
> > 
> > It may work for your current use cases, but it doesn't make it right :-)
> 
> Most of engineering is about compromise, being consistent with what we
> did so far and the end-user experience need to be taken into account.

Sure, and so do mainline requirements :-)

> > Someone can integrate a Verdin SoM with a carrier board that has no DSI
> > to HDMI (or LVDS) bridge, there should thus be no such device in the
> > device tree. The SoM has DSI signals present on its connector, that's
> > what the SoM .dtsi should expose.
> 
> Just for the record Verdin i.MX8M Plus do have both HDMI and LVDS on the
> connector (in addition to DSI) [1], of course we do have also the option to
> have LVDS or HDMI using an external add-on DSI bridge as this patches are
> about.
> 
> Said that it's true that sometime we describe peripherals that are part of the
> SOM family into the SOM dtsi, this avoid quite a lot of duplications given the
> amount of carrier board that are available on the market that use just the same
> building blocks (and this was one of the 2 points I mentioned as a reasoning
> for our current DTS files structure).

If those "SoM family" peripherals are on the carrier board, what's the
issue with describing them in the carrier board .dtsi ? And if they're
on an add-on board (such as, if I understand correctly, the DSI to HDMI
encoder for the Dahlia carrier board), what's the issue with describing
them in an overlay ?

> Of course, we keep these stuff disabled by default, so apart for some small size
> increase I do not see a real issue.

It's the same issue as adding any DT node for peripherals that do not
exist, I fail to see a compelling reason to do so here, given that this
seems to be easy to handle in the carrier board .dtsi or in overlays.
Maybe I'm missing something ?

> [1] https://docs.toradex.com/110977-verdin_imx8m_plus_v1.1_datasheet.pdf
Francesco Dolcini Sept. 5, 2022, 9:17 p.m. UTC | #6
Hello Laurent,

On Mon, Sep 05, 2022 at 10:26:14PM +0300, Laurent Pinchart wrote:
> On Sat, Sep 03, 2022 at 02:47:43PM +0200, Francesco Dolcini wrote:
> > On Sat, Sep 03, 2022 at 03:24:51AM +0300, Laurent Pinchart wrote:
> > > On Fri, Sep 02, 2022 at 05:57:20PM +0200, Francesco Dolcini wrote:
> > > > On Thu, Sep 01, 2022 at 09:07:49PM +0300, Laurent Pinchart wrote:
> > > Someone can integrate a Verdin SoM with a carrier board that has no DSI
> > > to HDMI (or LVDS) bridge, there should thus be no such device in the
> > > device tree. The SoM has DSI signals present on its connector, that's
> > > what the SoM .dtsi should expose.
> > 
> > Just for the record Verdin i.MX8M Plus do have both HDMI and LVDS on the
> > connector (in addition to DSI) [1], of course we do have also the option to
> > have LVDS or HDMI using an external add-on DSI bridge as this patches are
> > about.
> > 
> > Said that it's true that sometime we describe peripherals that are part of the
> > SOM family into the SOM dtsi, this avoid quite a lot of duplications given the
> > amount of carrier board that are available on the market that use just the same
> > building blocks (and this was one of the 2 points I mentioned as a reasoning
> > for our current DTS files structure).
> 
> If those "SoM family" peripherals are on the carrier board, what's the
> issue with describing them in the carrier board .dtsi ? And if they're
> on an add-on board (such as, if I understand correctly, the DSI to HDMI
> encoder for the Dahlia carrier board), what's the issue with describing
> them in an overlay ?

These SOM family peripherals are in multiples(!) carrier boards AND on
accessories. The drawback of being strict as you are asking is that we
would end-up with a massive duplication of this small DTS building
blocks, therefore the decision in the past to put those in the base SOM
dtsi file.

Maybe adding something like imx8mp-verdin-dsi-hdmi.dtsi and
imx8mp-verdin-dsi-lvds.dtsi that can be included by both overlay and
carrier dts files as needed would solve both the need of being strict on
the board definition in the dts file and avoid duplications?
Not sure if that would work smoothly, it looks like adding some
complexity and maintenance overhead, but maybe is the correct solution.

Anyway, while I fully understand your reasoning, I'm still not happy to
change this for the current toradex products, since users of
our dts file currently rely on the expectations I tried to explain in
this email thread and Max patches are implementing (and this is
currently uniform over the whole toradex product range).

> Maybe I'm missing something ?
I tried to give more insights.

Francesco
Laurent Pinchart Sept. 5, 2022, 10:03 p.m. UTC | #7
Hi Francesco,

On Mon, Sep 05, 2022 at 11:17:03PM +0200, Francesco Dolcini wrote:
> On Mon, Sep 05, 2022 at 10:26:14PM +0300, Laurent Pinchart wrote:
> > On Sat, Sep 03, 2022 at 02:47:43PM +0200, Francesco Dolcini wrote:
> > > On Sat, Sep 03, 2022 at 03:24:51AM +0300, Laurent Pinchart wrote:
> > > > On Fri, Sep 02, 2022 at 05:57:20PM +0200, Francesco Dolcini wrote:
> > > > > On Thu, Sep 01, 2022 at 09:07:49PM +0300, Laurent Pinchart wrote:
> > > > Someone can integrate a Verdin SoM with a carrier board that has no DSI
> > > > to HDMI (or LVDS) bridge, there should thus be no such device in the
> > > > device tree. The SoM has DSI signals present on its connector, that's
> > > > what the SoM .dtsi should expose.
> > > 
> > > Just for the record Verdin i.MX8M Plus do have both HDMI and LVDS on the
> > > connector (in addition to DSI) [1], of course we do have also the option to
> > > have LVDS or HDMI using an external add-on DSI bridge as this patches are
> > > about.
> > > 
> > > Said that it's true that sometime we describe peripherals that are part of the
> > > SOM family into the SOM dtsi, this avoid quite a lot of duplications given the
> > > amount of carrier board that are available on the market that use just the same
> > > building blocks (and this was one of the 2 points I mentioned as a reasoning
> > > for our current DTS files structure).
> > 
> > If those "SoM family" peripherals are on the carrier board, what's the
> > issue with describing them in the carrier board .dtsi ? And if they're
> > on an add-on board (such as, if I understand correctly, the DSI to HDMI
> > encoder for the Dahlia carrier board), what's the issue with describing
> > them in an overlay ?
> 
> These SOM family peripherals are in multiples(!) carrier boards AND on
> accessories. The drawback of being strict as you are asking is that we
> would end-up with a massive duplication of this small DTS building
> blocks, therefore the decision in the past to put those in the base SOM
> dtsi file.

OK, I got it now.

> Maybe adding something like imx8mp-verdin-dsi-hdmi.dtsi and
> imx8mp-verdin-dsi-lvds.dtsi that can be included by both overlay and
> carrier dts files as needed would solve both the need of being strict on
> the board definition in the dts file and avoid duplications?
> Not sure if that would work smoothly, it looks like adding some
> complexity and maintenance overhead, but maybe is the correct solution.

That sounds good to me. Would you be able to give it a try to see if it
works well ?

> Anyway, while I fully understand your reasoning, I'm still not happy to
> change this for the current toradex products, since users of
> our dts file currently rely on the expectations I tried to explain in
> this email thread and Max patches are implementing (and this is
> currently uniform over the whole toradex product range).

This sounds like a broader question, not specific to Toradex, opinions
from Rob and Krzysztof would be useful.

> > Maybe I'm missing something ?
> 
> I tried to give more insights.

Thank you, that's very appreciated.
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
index 76cc89296150..bd84a0d135dc 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
@@ -59,6 +59,14 @@  button-wakeup {
 		};
 	};
 
+	hdmi_connector: hdmi-connector {
+		compatible = "hdmi-connector";
+		ddc-i2c-bus = <&i2c2>;
+		label = "hdmi";
+		type = "a";
+		status = "disabled";
+	};
+
 	/* Carrier Board Supplies */
 	reg_1p8v: regulator-1p8v {
 		compatible = "regulator-fixed";