diff mbox series

[v6,4/8] phy: Add HDMI configuration options

Message ID cec469206a166c4b070fd7d7bbf89a8df656ccc6.1686729444.git.Sandor.yu@nxp.com
State Changes Requested
Headers show
Series Initial support for Cadence MHDP8501(HDMI/DP) for i.MX8MQ | expand

Commit Message

Sandor Yu June 15, 2023, 1:38 a.m. UTC
Allow HDMI PHYs to be configured through the generic
functions through a custom structure added to the generic union.

The parameters added here are based on HDMI PHY
implementation practices.  The current set of parameters
should cover the potential users.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
---
 include/linux/phy/phy-hdmi.h | 38 ++++++++++++++++++++++++++++++++++++
 include/linux/phy/phy.h      |  7 ++++++-
 2 files changed, 44 insertions(+), 1 deletion(-)
 create mode 100644 include/linux/phy/phy-hdmi.h

Comments

Vinod Koul June 21, 2023, 11:22 a.m. UTC | #1
On 15-06-23, 09:38, Sandor Yu wrote:
> Allow HDMI PHYs to be configured through the generic
> functions through a custom structure added to the generic union.
> 
> The parameters added here are based on HDMI PHY
> implementation practices.  The current set of parameters
> should cover the potential users.
> 
> Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> ---
>  include/linux/phy/phy-hdmi.h | 38 ++++++++++++++++++++++++++++++++++++
>  include/linux/phy/phy.h      |  7 ++++++-
>  2 files changed, 44 insertions(+), 1 deletion(-)
>  create mode 100644 include/linux/phy/phy-hdmi.h
> 
> diff --git a/include/linux/phy/phy-hdmi.h b/include/linux/phy/phy-hdmi.h
> new file mode 100644
> index 000000000000..5765aa5bc175
> --- /dev/null
> +++ b/include/linux/phy/phy-hdmi.h
> @@ -0,0 +1,38 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Copyright 2022 NXP
> + */
> +
> +#ifndef __PHY_HDMI_H_
> +#define __PHY_HDMI_H_
> +
> +/**
> + * Pixel Encoding as HDMI Specification
> + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> + * YUV420: HDMI Specification 2.a Section 7.1
> + */
> +enum hdmi_phy_colorspace {
> +	HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> +	HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> +	HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> +	HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */

Better add this comments and above one as expected by kernel-doc for
enum..

> +	HDMI_PHY_COLORSPACE_RESERVED4,
> +	HDMI_PHY_COLORSPACE_RESERVED5,
> +	HDMI_PHY_COLORSPACE_RESERVED6,
> +};
> +
> +/**
> + * struct phy_configure_opts_hdmi - HDMI configuration set
> + * @pixel_clk_rate:	Pixel clock of video modes in KHz.
> + * @bpc: Maximum bits per color channel.
> + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> + *
> + * This structure is used to represent the configuration state of a HDMI phy.
> + */
> +struct phy_configure_opts_hdmi {
> +	unsigned int pixel_clk_rate;
> +	unsigned int bpc;
> +	enum hdmi_phy_colorspace color_space;
> +};
> +
> +#endif /* __PHY_HDMI_H_ */
> diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
> index 3a570bc59fc7..93d77d45b1d4 100644
> --- a/include/linux/phy/phy.h
> +++ b/include/linux/phy/phy.h
> @@ -17,6 +17,7 @@
>  #include <linux/regulator/consumer.h>
>  
>  #include <linux/phy/phy-dp.h>
> +#include <linux/phy/phy-hdmi.h>
>  #include <linux/phy/phy-lvds.h>
>  #include <linux/phy/phy-mipi-dphy.h>
>  
> @@ -42,7 +43,8 @@ enum phy_mode {
>  	PHY_MODE_MIPI_DPHY,
>  	PHY_MODE_SATA,
>  	PHY_MODE_LVDS,
> -	PHY_MODE_DP
> +	PHY_MODE_DP,
> +	PHY_MODE_HDMI,
>  };
>  
>  enum phy_media {
> @@ -60,11 +62,14 @@ enum phy_media {
>   *		the DisplayPort protocol.
>   * @lvds:	Configuration set applicable for phys supporting
>   *		the LVDS phy mode.
> + * @hdmi:	Configuration set applicable for phys supporting
> + *		the HDMI phy mode.
>   */
>  union phy_configure_opts {
>  	struct phy_configure_opts_mipi_dphy	mipi_dphy;
>  	struct phy_configure_opts_dp		dp;
>  	struct phy_configure_opts_lvds		lvds;
> +	struct phy_configure_opts_hdmi		hdmi;
>  };
>  
>  /**
> -- 
> 2.34.1
Dmitry Baryshkov June 24, 2023, 6:02 p.m. UTC | #2
On 15/06/2023 04:38, Sandor Yu wrote:
> Allow HDMI PHYs to be configured through the generic
> functions through a custom structure added to the generic union.
> 
> The parameters added here are based on HDMI PHY
> implementation practices.  The current set of parameters
> should cover the potential users.
> 
> Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> ---
>   include/linux/phy/phy-hdmi.h | 38 ++++++++++++++++++++++++++++++++++++
>   include/linux/phy/phy.h      |  7 ++++++-
>   2 files changed, 44 insertions(+), 1 deletion(-)
>   create mode 100644 include/linux/phy/phy-hdmi.h
> 
> diff --git a/include/linux/phy/phy-hdmi.h b/include/linux/phy/phy-hdmi.h
> new file mode 100644
> index 000000000000..5765aa5bc175
> --- /dev/null
> +++ b/include/linux/phy/phy-hdmi.h
> @@ -0,0 +1,38 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Copyright 2022 NXP
> + */
> +
> +#ifndef __PHY_HDMI_H_
> +#define __PHY_HDMI_H_
> +
> +/**
> + * Pixel Encoding as HDMI Specification
> + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> + * YUV420: HDMI Specification 2.a Section 7.1
> + */
> +enum hdmi_phy_colorspace {
> +	HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> +	HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> +	HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> +	HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
> +	HDMI_PHY_COLORSPACE_RESERVED4,
> +	HDMI_PHY_COLORSPACE_RESERVED5,
> +	HDMI_PHY_COLORSPACE_RESERVED6,
> +};

This enum duplicates enum hdmi_colorspace from <linux/hdmi.h>
HDMI 2.0 defines '7' to be IDO-defined.

Would it be better to use that enum instead?

> +
> +/**
> + * struct phy_configure_opts_hdmi - HDMI configuration set
> + * @pixel_clk_rate:	Pixel clock of video modes in KHz.
> + * @bpc: Maximum bits per color channel.
> + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> + *
> + * This structure is used to represent the configuration state of a HDMI phy.
> + */
> +struct phy_configure_opts_hdmi {
> +	unsigned int pixel_clk_rate;
> +	unsigned int bpc;
> +	enum hdmi_phy_colorspace color_space;
> +};
> +
> +#endif /* __PHY_HDMI_H_ */

[skipped the rest]
Sandor Yu July 10, 2023, 7:28 a.m. UTC | #3
Hi Dmitry,

Thanks for your comments,

> -----Original Message-----
> From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Sent: 2023年6月25日 2:02
> To: Sandor Yu <sandor.yu@nxp.com>; andrzej.hajda@intel.com;
> neil.armstrong@linaro.org; robert.foss@linaro.org;
> Laurent.pinchart@ideasonboard.com; jonas@kwiboo.se;
> jernej.skrabec@gmail.com; airlied@gmail.com; daniel@ffwll.ch;
> robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> vkoul@kernel.org; dri-devel@lists.freedesktop.org;
> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org; linux-phy@lists.infradead.org
> Cc: kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; Oliver Brown
> <oliver.brown@nxp.com>
> Subject: [EXT] Re: [PATCH v6 4/8] phy: Add HDMI configuration options
> 
> Caution: This is an external email. Please take care when clicking links or
> opening attachments. When in doubt, report the message using the 'Report
> this email' button
> 
> 
> On 15/06/2023 04:38, Sandor Yu wrote:
> > Allow HDMI PHYs to be configured through the generic functions through
> > a custom structure added to the generic union.
> >
> > The parameters added here are based on HDMI PHY implementation
> > practices.  The current set of parameters should cover the potential
> > users.
> >
> > Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> > ---
> >   include/linux/phy/phy-hdmi.h | 38
> ++++++++++++++++++++++++++++++++++++
> >   include/linux/phy/phy.h      |  7 ++++++-
> >   2 files changed, 44 insertions(+), 1 deletion(-)
> >   create mode 100644 include/linux/phy/phy-hdmi.h
> >
> > diff --git a/include/linux/phy/phy-hdmi.h
> > b/include/linux/phy/phy-hdmi.h new file mode 100644 index
> > 000000000000..5765aa5bc175
> > --- /dev/null
> > +++ b/include/linux/phy/phy-hdmi.h
> > @@ -0,0 +1,38 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * Copyright 2022 NXP
> > + */
> > +
> > +#ifndef __PHY_HDMI_H_
> > +#define __PHY_HDMI_H_
> > +
> > +/**
> > + * Pixel Encoding as HDMI Specification
> > + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> > + * YUV420: HDMI Specification 2.a Section 7.1  */ enum
> > +hdmi_phy_colorspace {
> > +     HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> > +     HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> > +     HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> > +     HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
> > +     HDMI_PHY_COLORSPACE_RESERVED4,
> > +     HDMI_PHY_COLORSPACE_RESERVED5,
> > +     HDMI_PHY_COLORSPACE_RESERVED6,
> > +};
> 
> This enum duplicates enum hdmi_colorspace from <linux/hdmi.h> HDMI 2.0
> defines '7' to be IDO-defined.
> 
> Would it be better to use that enum instead?
Accept. I will create head file hdmi_colorspace.h to reuse enum hdmi_colorspace in <linux/hdmi.h>.

B.R
Sandor
> 
> > +
> > +/**
> > + * struct phy_configure_opts_hdmi - HDMI configuration set
> > + * @pixel_clk_rate:  Pixel clock of video modes in KHz.
> > + * @bpc: Maximum bits per color channel.
> > + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> > + *
> > + * This structure is used to represent the configuration state of a HDMI phy.
> > + */
> > +struct phy_configure_opts_hdmi {
> > +     unsigned int pixel_clk_rate;
> > +     unsigned int bpc;
> > +     enum hdmi_phy_colorspace color_space; };
> > +
> > +#endif /* __PHY_HDMI_H_ */
> 
> [skipped the rest]
> 
> --
> With best wishes
> Dmitry
Sandor Yu July 10, 2023, 7:28 a.m. UTC | #4
Hi Vinod,

Thanks for your comments,

> -----Original Message-----
> From: Vinod Koul <vkoul@kernel.org>
> Sent: 2023年6月21日 19:22
> To: Sandor Yu <sandor.yu@nxp.com>
> Cc: andrzej.hajda@intel.com; neil.armstrong@linaro.org;
> robert.foss@linaro.org; Laurent.pinchart@ideasonboard.com;
> jonas@kwiboo.se; jernej.skrabec@gmail.com; airlied@gmail.com;
> daniel@ffwll.ch; robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> dri-devel@lists.freedesktop.org; devicetree@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org;
> linux-phy@lists.infradead.org; kernel@pengutronix.de; dl-linux-imx
> <linux-imx@nxp.com>; Oliver Brown <oliver.brown@nxp.com>
> Subject: [EXT] Re: [PATCH v6 4/8] phy: Add HDMI configuration options
> 
> Caution: This is an external email. Please take care when clicking links or
> opening attachments. When in doubt, report the message using the 'Report
> this email' button
> 
> 
> On 15-06-23, 09:38, Sandor Yu wrote:
> > Allow HDMI PHYs to be configured through the generic functions through
> > a custom structure added to the generic union.
> >
> > The parameters added here are based on HDMI PHY implementation
> > practices.  The current set of parameters should cover the potential
> > users.
> >
> > Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> > ---
> >  include/linux/phy/phy-hdmi.h | 38
> ++++++++++++++++++++++++++++++++++++
> >  include/linux/phy/phy.h      |  7 ++++++-
> >  2 files changed, 44 insertions(+), 1 deletion(-)  create mode 100644
> > include/linux/phy/phy-hdmi.h
> >
> > diff --git a/include/linux/phy/phy-hdmi.h
> > b/include/linux/phy/phy-hdmi.h new file mode 100644 index
> > 000000000000..5765aa5bc175
> > --- /dev/null
> > +++ b/include/linux/phy/phy-hdmi.h
> > @@ -0,0 +1,38 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * Copyright 2022 NXP
> > + */
> > +
> > +#ifndef __PHY_HDMI_H_
> > +#define __PHY_HDMI_H_
> > +
> > +/**
> > + * Pixel Encoding as HDMI Specification
> > + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> > + * YUV420: HDMI Specification 2.a Section 7.1  */ enum
> > +hdmi_phy_colorspace {
> > +     HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> > +     HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> > +     HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> > +     HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
> 
> Better add this comments and above one as expected by kernel-doc for
> enum..
OK, I will add it and it will replace by enum hdmi_colorspace in <linux/hdmi.h> in the next version.

> 
> > +     HDMI_PHY_COLORSPACE_RESERVED4,
> > +     HDMI_PHY_COLORSPACE_RESERVED5,
> > +     HDMI_PHY_COLORSPACE_RESERVED6,
> > +};
> > +
> > +/**
> > + * struct phy_configure_opts_hdmi - HDMI configuration set
> > + * @pixel_clk_rate:  Pixel clock of video modes in KHz.
> > + * @bpc: Maximum bits per color channel.
> > + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> > + *
> > + * This structure is used to represent the configuration state of a HDMI phy.
> > + */
> > +struct phy_configure_opts_hdmi {
> > +     unsigned int pixel_clk_rate;
> > +     unsigned int bpc;
> > +     enum hdmi_phy_colorspace color_space; };
> > +
> > +#endif /* __PHY_HDMI_H_ */
> > diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index
> > 3a570bc59fc7..93d77d45b1d4 100644
> > --- a/include/linux/phy/phy.h
> > +++ b/include/linux/phy/phy.h
> > @@ -17,6 +17,7 @@
> >  #include <linux/regulator/consumer.h>
> >
> >  #include <linux/phy/phy-dp.h>
> > +#include <linux/phy/phy-hdmi.h>
> >  #include <linux/phy/phy-lvds.h>
> >  #include <linux/phy/phy-mipi-dphy.h>
> >
> > @@ -42,7 +43,8 @@ enum phy_mode {
> >       PHY_MODE_MIPI_DPHY,
> >       PHY_MODE_SATA,
> >       PHY_MODE_LVDS,
> > -     PHY_MODE_DP
> > +     PHY_MODE_DP,
> > +     PHY_MODE_HDMI,
> >  };
> >
> >  enum phy_media {
> > @@ -60,11 +62,14 @@ enum phy_media {
> >   *           the DisplayPort protocol.
> >   * @lvds:    Configuration set applicable for phys supporting
> >   *           the LVDS phy mode.
> > + * @hdmi:    Configuration set applicable for phys supporting
> > + *           the HDMI phy mode.
> >   */
> >  union phy_configure_opts {
> >       struct phy_configure_opts_mipi_dphy     mipi_dphy;
> >       struct phy_configure_opts_dp            dp;
> >       struct phy_configure_opts_lvds          lvds;
> > +     struct phy_configure_opts_hdmi          hdmi;
> >  };
> >
> >  /**
> > --
> > 2.34.1
> 
> --
> ~Vinod

B.R
Sandor
Dmitry Baryshkov July 10, 2023, 7:30 a.m. UTC | #5
On Mon, 10 Jul 2023 at 10:28, Sandor Yu <sandor.yu@nxp.com> wrote:
>
> Hi Dmitry,
>
> Thanks for your comments,
>
> > -----Original Message-----
> > From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > Sent: 2023年6月25日 2:02
> > To: Sandor Yu <sandor.yu@nxp.com>; andrzej.hajda@intel.com;
> > neil.armstrong@linaro.org; robert.foss@linaro.org;
> > Laurent.pinchart@ideasonboard.com; jonas@kwiboo.se;
> > jernej.skrabec@gmail.com; airlied@gmail.com; daniel@ffwll.ch;
> > robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> > shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> > vkoul@kernel.org; dri-devel@lists.freedesktop.org;
> > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> > linux-kernel@vger.kernel.org; linux-phy@lists.infradead.org
> > Cc: kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; Oliver Brown
> > <oliver.brown@nxp.com>
> > Subject: [EXT] Re: [PATCH v6 4/8] phy: Add HDMI configuration options

Is this part necessary?

> >
> > Caution: This is an external email. Please take care when clicking links or
> > opening attachments. When in doubt, report the message using the 'Report
> > this email' button
> >
> >
> > On 15/06/2023 04:38, Sandor Yu wrote:
> > > Allow HDMI PHYs to be configured through the generic functions through
> > > a custom structure added to the generic union.
> > >
> > > The parameters added here are based on HDMI PHY implementation
> > > practices.  The current set of parameters should cover the potential
> > > users.
> > >
> > > Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> > > ---
> > >   include/linux/phy/phy-hdmi.h | 38
> > ++++++++++++++++++++++++++++++++++++
> > >   include/linux/phy/phy.h      |  7 ++++++-
> > >   2 files changed, 44 insertions(+), 1 deletion(-)
> > >   create mode 100644 include/linux/phy/phy-hdmi.h
> > >
> > > diff --git a/include/linux/phy/phy-hdmi.h
> > > b/include/linux/phy/phy-hdmi.h new file mode 100644 index
> > > 000000000000..5765aa5bc175
> > > --- /dev/null
> > > +++ b/include/linux/phy/phy-hdmi.h
> > > @@ -0,0 +1,38 @@
> > > +/* SPDX-License-Identifier: GPL-2.0 */
> > > +/*
> > > + * Copyright 2022 NXP
> > > + */
> > > +
> > > +#ifndef __PHY_HDMI_H_
> > > +#define __PHY_HDMI_H_
> > > +
> > > +/**
> > > + * Pixel Encoding as HDMI Specification
> > > + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> > > + * YUV420: HDMI Specification 2.a Section 7.1  */ enum
> > > +hdmi_phy_colorspace {
> > > +     HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> > > +     HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> > > +     HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> > > +     HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
> > > +     HDMI_PHY_COLORSPACE_RESERVED4,
> > > +     HDMI_PHY_COLORSPACE_RESERVED5,
> > > +     HDMI_PHY_COLORSPACE_RESERVED6,
> > > +};
> >
> > This enum duplicates enum hdmi_colorspace from <linux/hdmi.h> HDMI 2.0
> > defines '7' to be IDO-defined.
> >
> > Would it be better to use that enum instead?
> Accept. I will create head file hdmi_colorspace.h to reuse enum hdmi_colorspace in <linux/hdmi.h>.

Hmm, you need another header file to reuse this enum.

>
> B.R
> Sandor
> >
> > > +
> > > +/**
> > > + * struct phy_configure_opts_hdmi - HDMI configuration set
> > > + * @pixel_clk_rate:  Pixel clock of video modes in KHz.
> > > + * @bpc: Maximum bits per color channel.
> > > + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> > > + *
> > > + * This structure is used to represent the configuration state of a HDMI phy.
> > > + */
> > > +struct phy_configure_opts_hdmi {
> > > +     unsigned int pixel_clk_rate;
> > > +     unsigned int bpc;
> > > +     enum hdmi_phy_colorspace color_space; };
> > > +
> > > +#endif /* __PHY_HDMI_H_ */
> >
> > [skipped the rest]
> >
> > --
> > With best wishes
> > Dmitry
>
Sandor Yu July 10, 2023, 7:41 a.m. UTC | #6
> -----Original Message-----
> From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Sent: 2023年7月10日 15:30
> To: Sandor Yu <sandor.yu@nxp.com>
> Cc: andrzej.hajda@intel.com; neil.armstrong@linaro.org;
> robert.foss@linaro.org; Laurent.pinchart@ideasonboard.com;
> jonas@kwiboo.se; jernej.skrabec@gmail.com; airlied@gmail.com;
> daniel@ffwll.ch; robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> vkoul@kernel.org; dri-devel@lists.freedesktop.org;
> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org; linux-phy@lists.infradead.org;
> kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; Oliver Brown
> <oliver.brown@nxp.com>
> Subject: Re: [EXT] Re: [PATCH v6 4/8] phy: Add HDMI configuration options
> 
> 
> On Mon, 10 Jul 2023 at 10:28, Sandor Yu <sandor.yu@nxp.com> wrote:
> >
> > Hi Dmitry,
> >
> > Thanks for your comments,
> >
> > > -----Original Message-----
> > > From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > > Sent: 2023年6月25日 2:02
> > > To: Sandor Yu <sandor.yu@nxp.com>; andrzej.hajda@intel.com;
> > > neil.armstrong@linaro.org; robert.foss@linaro.org;
> > > Laurent.pinchart@ideasonboard.com; jonas@kwiboo.se;
> > > jernej.skrabec@gmail.com; airlied@gmail.com; daniel@ffwll.ch;
> > > robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> > > shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> > > vkoul@kernel.org; dri-devel@lists.freedesktop.org;
> > > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> > > linux-kernel@vger.kernel.org; linux-phy@lists.infradead.org
> > > Cc: kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; Oliver
> > > Brown <oliver.brown@nxp.com>
> > > Subject: [EXT] Re: [PATCH v6 4/8] phy: Add HDMI configuration
> > > options
> 
> Is this part necessary?
No, forgot to remove the Caution it is auto added by mail system.
> 
> > >
> > > Caution: This is an external email. Please take care when clicking
> > > links or opening attachments. When in doubt, report the message
> > > using the 'Report this email' button
> > >
> > >
> > > On 15/06/2023 04:38, Sandor Yu wrote:
> > > > Allow HDMI PHYs to be configured through the generic functions
> > > > through a custom structure added to the generic union.
> > > >
> > > > The parameters added here are based on HDMI PHY implementation
> > > > practices.  The current set of parameters should cover the
> > > > potential users.
> > > >
> > > > Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> > > > ---
> > > >   include/linux/phy/phy-hdmi.h | 38
> > > ++++++++++++++++++++++++++++++++++++
> > > >   include/linux/phy/phy.h      |  7 ++++++-
> > > >   2 files changed, 44 insertions(+), 1 deletion(-)
> > > >   create mode 100644 include/linux/phy/phy-hdmi.h
> > > >
> > > > diff --git a/include/linux/phy/phy-hdmi.h
> > > > b/include/linux/phy/phy-hdmi.h new file mode 100644 index
> > > > 000000000000..5765aa5bc175
> > > > --- /dev/null
> > > > +++ b/include/linux/phy/phy-hdmi.h
> > > > @@ -0,0 +1,38 @@
> > > > +/* SPDX-License-Identifier: GPL-2.0 */
> > > > +/*
> > > > + * Copyright 2022 NXP
> > > > + */
> > > > +
> > > > +#ifndef __PHY_HDMI_H_
> > > > +#define __PHY_HDMI_H_
> > > > +
> > > > +/**
> > > > + * Pixel Encoding as HDMI Specification
> > > > + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> > > > + * YUV420: HDMI Specification 2.a Section 7.1  */ enum
> > > > +hdmi_phy_colorspace {
> > > > +     HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> > > > +     HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> > > > +     HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> > > > +     HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
> > > > +     HDMI_PHY_COLORSPACE_RESERVED4,
> > > > +     HDMI_PHY_COLORSPACE_RESERVED5,
> > > > +     HDMI_PHY_COLORSPACE_RESERVED6, };
> > >
> > > This enum duplicates enum hdmi_colorspace from <linux/hdmi.h> HDMI
> > > 2.0 defines '7' to be IDO-defined.
> > >
> > > Would it be better to use that enum instead?
> > Accept. I will create head file hdmi_colorspace.h to reuse enum
> hdmi_colorspace in <linux/hdmi.h>.
> 
> Hmm, you need another header file to reuse this enum.
> 
> >
> > B.R
> > Sandor
> > >
> > > > +
> > > > +/**
> > > > + * struct phy_configure_opts_hdmi - HDMI configuration set
> > > > + * @pixel_clk_rate:  Pixel clock of video modes in KHz.
> > > > + * @bpc: Maximum bits per color channel.
> > > > + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> > > > + *
> > > > + * This structure is used to represent the configuration state of a HDMI
> phy.
> > > > + */
> > > > +struct phy_configure_opts_hdmi {
> > > > +     unsigned int pixel_clk_rate;
> > > > +     unsigned int bpc;
> > > > +     enum hdmi_phy_colorspace color_space; };
> > > > +
> > > > +#endif /* __PHY_HDMI_H_ */
> > >
> > > [skipped the rest]
> > >
> > > --
> > > With best wishes
> > > Dmitry
> >
> 
> 
> --
> With best wishes
> Dmitry

B.R
Sandor
Dmitry Baryshkov July 10, 2023, 7:44 a.m. UTC | #7
On 10/07/2023 10:28, Sandor Yu wrote:
> Hi Dmitry,
> 
> Thanks for your comments,
> 
>> From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>> On 15/06/2023 04:38, Sandor Yu wrote:
>>> Allow HDMI PHYs to be configured through the generic functions through
>>> a custom structure added to the generic union.
>>>
>>> The parameters added here are based on HDMI PHY implementation
>>> practices.  The current set of parameters should cover the potential
>>> users.
>>>
>>> Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
>>> ---
>>>    include/linux/phy/phy-hdmi.h | 38
>> ++++++++++++++++++++++++++++++++++++
>>>    include/linux/phy/phy.h      |  7 ++++++-
>>>    2 files changed, 44 insertions(+), 1 deletion(-)
>>>    create mode 100644 include/linux/phy/phy-hdmi.h
>>>
>>> diff --git a/include/linux/phy/phy-hdmi.h
>>> b/include/linux/phy/phy-hdmi.h new file mode 100644 index
>>> 000000000000..5765aa5bc175
>>> --- /dev/null
>>> +++ b/include/linux/phy/phy-hdmi.h
>>> @@ -0,0 +1,38 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +/*
>>> + * Copyright 2022 NXP
>>> + */
>>> +
>>> +#ifndef __PHY_HDMI_H_
>>> +#define __PHY_HDMI_H_
>>> +
>>> +/**
>>> + * Pixel Encoding as HDMI Specification
>>> + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
>>> + * YUV420: HDMI Specification 2.a Section 7.1  */ enum
>>> +hdmi_phy_colorspace {
>>> +     HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
>>> +     HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
>>> +     HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
>>> +     HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
>>> +     HDMI_PHY_COLORSPACE_RESERVED4,
>>> +     HDMI_PHY_COLORSPACE_RESERVED5,
>>> +     HDMI_PHY_COLORSPACE_RESERVED6,
>>> +};
>>
>> This enum duplicates enum hdmi_colorspace from <linux/hdmi.h> HDMI 2.0
>> defines '7' to be IDO-defined.
>>
>> Would it be better to use that enum instead?
> Accept. I will create head file hdmi_colorspace.h to reuse enum hdmi_colorspace in <linux/hdmi.h>.

Excuse me, it was supposed to be a question.

Do you need another header file to reuse this enum?

> 
> B.R
> Sandor
>>
>>> +
>>> +/**
>>> + * struct phy_configure_opts_hdmi - HDMI configuration set
>>> + * @pixel_clk_rate:  Pixel clock of video modes in KHz.
>>> + * @bpc: Maximum bits per color channel.
>>> + * @color_space: Colorspace in enum hdmi_phy_colorspace.
>>> + *
>>> + * This structure is used to represent the configuration state of a HDMI phy.
>>> + */
>>> +struct phy_configure_opts_hdmi {
>>> +     unsigned int pixel_clk_rate;
>>> +     unsigned int bpc;
>>> +     enum hdmi_phy_colorspace color_space; };
>>> +
>>> +#endif /* __PHY_HDMI_H_ */
>>
>> [skipped the rest]
>>
>> --
>> With best wishes
>> Dmitry
>
Sandor Yu July 10, 2023, 8:01 a.m. UTC | #8
> -----Original Message-----
> From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Sent: 2023年7月10日 15:44
> To: Sandor Yu <sandor.yu@nxp.com>; andrzej.hajda@intel.com;
> neil.armstrong@linaro.org; robert.foss@linaro.org;
> Laurent.pinchart@ideasonboard.com; jonas@kwiboo.se;
> jernej.skrabec@gmail.com; airlied@gmail.com; daniel@ffwll.ch;
> robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> vkoul@kernel.org; dri-devel@lists.freedesktop.org;
> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org; linux-phy@lists.infradead.org
> Cc: kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; Oliver Brown
> <oliver.brown@nxp.com>
> Subject: Re: [EXT] Re: [PATCH v6 4/8] phy: Add HDMI configuration options
> 
> 
> On 10/07/2023 10:28, Sandor Yu wrote:
> > Hi Dmitry,
> >
> > Thanks for your comments,
> >
> >> From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> On 15/06/2023
> >> 04:38, Sandor Yu wrote:
> >>> Allow HDMI PHYs to be configured through the generic functions
> >>> through a custom structure added to the generic union.
> >>>
> >>> The parameters added here are based on HDMI PHY implementation
> >>> practices.  The current set of parameters should cover the potential
> >>> users.
> >>>
> >>> Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> >>> ---
> >>>    include/linux/phy/phy-hdmi.h | 38
> >> ++++++++++++++++++++++++++++++++++++
> >>>    include/linux/phy/phy.h      |  7 ++++++-
> >>>    2 files changed, 44 insertions(+), 1 deletion(-)
> >>>    create mode 100644 include/linux/phy/phy-hdmi.h
> >>>
> >>> diff --git a/include/linux/phy/phy-hdmi.h
> >>> b/include/linux/phy/phy-hdmi.h new file mode 100644 index
> >>> 000000000000..5765aa5bc175
> >>> --- /dev/null
> >>> +++ b/include/linux/phy/phy-hdmi.h
> >>> @@ -0,0 +1,38 @@
> >>> +/* SPDX-License-Identifier: GPL-2.0 */
> >>> +/*
> >>> + * Copyright 2022 NXP
> >>> + */
> >>> +
> >>> +#ifndef __PHY_HDMI_H_
> >>> +#define __PHY_HDMI_H_
> >>> +
> >>> +/**
> >>> + * Pixel Encoding as HDMI Specification
> >>> + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> >>> + * YUV420: HDMI Specification 2.a Section 7.1  */ enum
> >>> +hdmi_phy_colorspace {
> >>> +     HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> >>> +     HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> >>> +     HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> >>> +     HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
> >>> +     HDMI_PHY_COLORSPACE_RESERVED4,
> >>> +     HDMI_PHY_COLORSPACE_RESERVED5,
> >>> +     HDMI_PHY_COLORSPACE_RESERVED6, };
> >>
> >> This enum duplicates enum hdmi_colorspace from <linux/hdmi.h> HDMI
> >> 2.0 defines '7' to be IDO-defined.
> >>
> >> Would it be better to use that enum instead?
> > Accept. I will create head file hdmi_colorspace.h to reuse enum
> hdmi_colorspace in <linux/hdmi.h>.
> 
> Excuse me, it was supposed to be a question.
> 
> Do you need another header file to reuse this enum?
I'm not sure community whether would accept the patch that simply include <linux/hdmi.h> in phy-hdmi.h
because there are lots of other definition in <linux/hdmi.h> that not need by phy-hdmi.h.
If the answer is yes, I happy to follow.

> 
> >
> > B.R
> > Sandor
> >>
> >>> +
> >>> +/**
> >>> + * struct phy_configure_opts_hdmi - HDMI configuration set
> >>> + * @pixel_clk_rate:  Pixel clock of video modes in KHz.
> >>> + * @bpc: Maximum bits per color channel.
> >>> + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> >>> + *
> >>> + * This structure is used to represent the configuration state of a HDMI
> phy.
> >>> + */
> >>> +struct phy_configure_opts_hdmi {
> >>> +     unsigned int pixel_clk_rate;
> >>> +     unsigned int bpc;
> >>> +     enum hdmi_phy_colorspace color_space; };
> >>> +
> >>> +#endif /* __PHY_HDMI_H_ */
> >>
> >> [skipped the rest]
> >>
> >> --
> >> With best wishes
> >> Dmitry
> >
> 
> --
> With best wishes
> Dmitry

B.R
Sandor
Dmitry Baryshkov July 10, 2023, 8:05 a.m. UTC | #9
On Mon, 10 Jul 2023 at 11:01, Sandor Yu <sandor.yu@nxp.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > Sent: 2023年7月10日 15:44
> > To: Sandor Yu <sandor.yu@nxp.com>; andrzej.hajda@intel.com;
> > neil.armstrong@linaro.org; robert.foss@linaro.org;
> > Laurent.pinchart@ideasonboard.com; jonas@kwiboo.se;
> > jernej.skrabec@gmail.com; airlied@gmail.com; daniel@ffwll.ch;
> > robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> > shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> > vkoul@kernel.org; dri-devel@lists.freedesktop.org;
> > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> > linux-kernel@vger.kernel.org; linux-phy@lists.infradead.org
> > Cc: kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; Oliver Brown
> > <oliver.brown@nxp.com>
> > Subject: Re: [EXT] Re: [PATCH v6 4/8] phy: Add HDMI configuration options
> >
> >
> > On 10/07/2023 10:28, Sandor Yu wrote:
> > > Hi Dmitry,
> > >
> > > Thanks for your comments,
> > >
> > >> From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> On 15/06/2023
> > >> 04:38, Sandor Yu wrote:
> > >>> Allow HDMI PHYs to be configured through the generic functions
> > >>> through a custom structure added to the generic union.
> > >>>
> > >>> The parameters added here are based on HDMI PHY implementation
> > >>> practices.  The current set of parameters should cover the potential
> > >>> users.
> > >>>
> > >>> Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> > >>> ---
> > >>>    include/linux/phy/phy-hdmi.h | 38
> > >> ++++++++++++++++++++++++++++++++++++
> > >>>    include/linux/phy/phy.h      |  7 ++++++-
> > >>>    2 files changed, 44 insertions(+), 1 deletion(-)
> > >>>    create mode 100644 include/linux/phy/phy-hdmi.h
> > >>>
> > >>> diff --git a/include/linux/phy/phy-hdmi.h
> > >>> b/include/linux/phy/phy-hdmi.h new file mode 100644 index
> > >>> 000000000000..5765aa5bc175
> > >>> --- /dev/null
> > >>> +++ b/include/linux/phy/phy-hdmi.h
> > >>> @@ -0,0 +1,38 @@
> > >>> +/* SPDX-License-Identifier: GPL-2.0 */
> > >>> +/*
> > >>> + * Copyright 2022 NXP
> > >>> + */
> > >>> +
> > >>> +#ifndef __PHY_HDMI_H_
> > >>> +#define __PHY_HDMI_H_
> > >>> +
> > >>> +/**
> > >>> + * Pixel Encoding as HDMI Specification
> > >>> + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> > >>> + * YUV420: HDMI Specification 2.a Section 7.1  */ enum
> > >>> +hdmi_phy_colorspace {
> > >>> +     HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> > >>> +     HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> > >>> +     HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> > >>> +     HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
> > >>> +     HDMI_PHY_COLORSPACE_RESERVED4,
> > >>> +     HDMI_PHY_COLORSPACE_RESERVED5,
> > >>> +     HDMI_PHY_COLORSPACE_RESERVED6, };
> > >>
> > >> This enum duplicates enum hdmi_colorspace from <linux/hdmi.h> HDMI
> > >> 2.0 defines '7' to be IDO-defined.
> > >>
> > >> Would it be better to use that enum instead?
> > > Accept. I will create head file hdmi_colorspace.h to reuse enum
> > hdmi_colorspace in <linux/hdmi.h>.
> >
> > Excuse me, it was supposed to be a question.
> >
> > Do you need another header file to reuse this enum?
> I'm not sure community whether would accept the patch that simply include <linux/hdmi.h> in phy-hdmi.h
> because there are lots of other definition in <linux/hdmi.h> that not need by phy-hdmi.h.
> If the answer is yes, I happy to follow.

In my opinion it's a better alternative to creating yet another header.

>
> >
> > >
> > > B.R
> > > Sandor
> > >>
> > >>> +
> > >>> +/**
> > >>> + * struct phy_configure_opts_hdmi - HDMI configuration set
> > >>> + * @pixel_clk_rate:  Pixel clock of video modes in KHz.
> > >>> + * @bpc: Maximum bits per color channel.
> > >>> + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> > >>> + *
> > >>> + * This structure is used to represent the configuration state of a HDMI
> > phy.
> > >>> + */
> > >>> +struct phy_configure_opts_hdmi {
> > >>> +     unsigned int pixel_clk_rate;
> > >>> +     unsigned int bpc;
> > >>> +     enum hdmi_phy_colorspace color_space; };
> > >>> +
> > >>> +#endif /* __PHY_HDMI_H_ */
> > >>
> > >> [skipped the rest]
> > >>
> > >> --
> > >> With best wishes
> > >> Dmitry
> > >
> >
> > --
> > With best wishes
> > Dmitry
>
> B.R
> Sandor
>
Sandor Yu July 10, 2023, 8:11 a.m. UTC | #10
> 
> 
> On Mon, 10 Jul 2023 at 11:01, Sandor Yu <sandor.yu@nxp.com> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > > Sent: 2023年7月10日 15:44
> > > To: Sandor Yu <sandor.yu@nxp.com>; andrzej.hajda@intel.com;
> > > neil.armstrong@linaro.org; robert.foss@linaro.org;
> > > Laurent.pinchart@ideasonboard.com; jonas@kwiboo.se;
> > > jernej.skrabec@gmail.com; airlied@gmail.com; daniel@ffwll.ch;
> > > robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> > > shawnguo@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> > > vkoul@kernel.org; dri-devel@lists.freedesktop.org;
> > > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> > > linux-kernel@vger.kernel.org; linux-phy@lists.infradead.org
> > > Cc: kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; Oliver
> > > Brown <oliver.brown@nxp.com>
> > > Subject: Re: [EXT] Re: [PATCH v6 4/8] phy: Add HDMI configuration
> > > options
> > >
> > >
> > > On 10/07/2023 10:28, Sandor Yu wrote:
> > > > Hi Dmitry,
> > > >
> > > > Thanks for your comments,
> > > >
> > > >> From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> On
> > > >> 15/06/2023 04:38, Sandor Yu wrote:
> > > >>> Allow HDMI PHYs to be configured through the generic functions
> > > >>> through a custom structure added to the generic union.
> > > >>>
> > > >>> The parameters added here are based on HDMI PHY implementation
> > > >>> practices.  The current set of parameters should cover the
> > > >>> potential users.
> > > >>>
> > > >>> Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> > > >>> ---
> > > >>>    include/linux/phy/phy-hdmi.h | 38
> > > >> ++++++++++++++++++++++++++++++++++++
> > > >>>    include/linux/phy/phy.h      |  7 ++++++-
> > > >>>    2 files changed, 44 insertions(+), 1 deletion(-)
> > > >>>    create mode 100644 include/linux/phy/phy-hdmi.h
> > > >>>
> > > >>> diff --git a/include/linux/phy/phy-hdmi.h
> > > >>> b/include/linux/phy/phy-hdmi.h new file mode 100644 index
> > > >>> 000000000000..5765aa5bc175
> > > >>> --- /dev/null
> > > >>> +++ b/include/linux/phy/phy-hdmi.h
> > > >>> @@ -0,0 +1,38 @@
> > > >>> +/* SPDX-License-Identifier: GPL-2.0 */
> > > >>> +/*
> > > >>> + * Copyright 2022 NXP
> > > >>> + */
> > > >>> +
> > > >>> +#ifndef __PHY_HDMI_H_
> > > >>> +#define __PHY_HDMI_H_
> > > >>> +
> > > >>> +/**
> > > >>> + * Pixel Encoding as HDMI Specification
> > > >>> + * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
> > > >>> + * YUV420: HDMI Specification 2.a Section 7.1  */ enum
> > > >>> +hdmi_phy_colorspace {
> > > >>> +     HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
> > > >>> +     HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
> > > >>> +     HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
> > > >>> +     HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
> > > >>> +     HDMI_PHY_COLORSPACE_RESERVED4,
> > > >>> +     HDMI_PHY_COLORSPACE_RESERVED5,
> > > >>> +     HDMI_PHY_COLORSPACE_RESERVED6, };
> > > >>
> > > >> This enum duplicates enum hdmi_colorspace from <linux/hdmi.h>
> > > >> HDMI
> > > >> 2.0 defines '7' to be IDO-defined.
> > > >>
> > > >> Would it be better to use that enum instead?
> > > > Accept. I will create head file hdmi_colorspace.h to reuse enum
> > > hdmi_colorspace in <linux/hdmi.h>.
> > >
> > > Excuse me, it was supposed to be a question.
> > >
> > > Do you need another header file to reuse this enum?
> > I'm not sure community whether would accept the patch that simply
> > include <linux/hdmi.h> in phy-hdmi.h because there are lots of other
> definition in <linux/hdmi.h> that not need by phy-hdmi.h.
> > If the answer is yes, I happy to follow.
> 
> In my opinion it's a better alternative to creating yet another header.
OK, I will try include <linux/hdmi.h> in phy-hdmi.h in the next version.
Thanks for your comments.
B,R
Sandor
> 
> >
> > >
> > > >
> > > > B.R
> > > > Sandor
> > > >>
> > > >>> +
> > > >>> +/**
> > > >>> + * struct phy_configure_opts_hdmi - HDMI configuration set
> > > >>> + * @pixel_clk_rate:  Pixel clock of video modes in KHz.
> > > >>> + * @bpc: Maximum bits per color channel.
> > > >>> + * @color_space: Colorspace in enum hdmi_phy_colorspace.
> > > >>> + *
> > > >>> + * This structure is used to represent the configuration state
> > > >>> +of a HDMI
> > > phy.
> > > >>> + */
> > > >>> +struct phy_configure_opts_hdmi {
> > > >>> +     unsigned int pixel_clk_rate;
> > > >>> +     unsigned int bpc;
> > > >>> +     enum hdmi_phy_colorspace color_space; };
> > > >>> +
> > > >>> +#endif /* __PHY_HDMI_H_ */
> > > >>
> > > >> [skipped the rest]
> > > >>
> > > >> --
> > > >> With best wishes
> > > >> Dmitry
> > > >
> > >
> > > --
> > > With best wishes
> > > Dmitry
> >
> > B.R
> > Sandor
> >
> 
> 
> --
> With best wishes
> Dmitry
diff mbox series

Patch

diff --git a/include/linux/phy/phy-hdmi.h b/include/linux/phy/phy-hdmi.h
new file mode 100644
index 000000000000..5765aa5bc175
--- /dev/null
+++ b/include/linux/phy/phy-hdmi.h
@@ -0,0 +1,38 @@ 
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2022 NXP
+ */
+
+#ifndef __PHY_HDMI_H_
+#define __PHY_HDMI_H_
+
+/**
+ * Pixel Encoding as HDMI Specification
+ * RGB, YUV422, YUV444:HDMI Specification 1.4a Section 6.5
+ * YUV420: HDMI Specification 2.a Section 7.1
+ */
+enum hdmi_phy_colorspace {
+	HDMI_PHY_COLORSPACE_RGB,        /* RGB 4:4:4 */
+	HDMI_PHY_COLORSPACE_YUV422,     /* YCbCr 4:2:2 */
+	HDMI_PHY_COLORSPACE_YUV444,     /* YCbCr 4:4:4 */
+	HDMI_PHY_COLORSPACE_YUV420,     /* YCbCr 4:2:0 */
+	HDMI_PHY_COLORSPACE_RESERVED4,
+	HDMI_PHY_COLORSPACE_RESERVED5,
+	HDMI_PHY_COLORSPACE_RESERVED6,
+};
+
+/**
+ * struct phy_configure_opts_hdmi - HDMI configuration set
+ * @pixel_clk_rate:	Pixel clock of video modes in KHz.
+ * @bpc: Maximum bits per color channel.
+ * @color_space: Colorspace in enum hdmi_phy_colorspace.
+ *
+ * This structure is used to represent the configuration state of a HDMI phy.
+ */
+struct phy_configure_opts_hdmi {
+	unsigned int pixel_clk_rate;
+	unsigned int bpc;
+	enum hdmi_phy_colorspace color_space;
+};
+
+#endif /* __PHY_HDMI_H_ */
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
index 3a570bc59fc7..93d77d45b1d4 100644
--- a/include/linux/phy/phy.h
+++ b/include/linux/phy/phy.h
@@ -17,6 +17,7 @@ 
 #include <linux/regulator/consumer.h>
 
 #include <linux/phy/phy-dp.h>
+#include <linux/phy/phy-hdmi.h>
 #include <linux/phy/phy-lvds.h>
 #include <linux/phy/phy-mipi-dphy.h>
 
@@ -42,7 +43,8 @@  enum phy_mode {
 	PHY_MODE_MIPI_DPHY,
 	PHY_MODE_SATA,
 	PHY_MODE_LVDS,
-	PHY_MODE_DP
+	PHY_MODE_DP,
+	PHY_MODE_HDMI,
 };
 
 enum phy_media {
@@ -60,11 +62,14 @@  enum phy_media {
  *		the DisplayPort protocol.
  * @lvds:	Configuration set applicable for phys supporting
  *		the LVDS phy mode.
+ * @hdmi:	Configuration set applicable for phys supporting
+ *		the HDMI phy mode.
  */
 union phy_configure_opts {
 	struct phy_configure_opts_mipi_dphy	mipi_dphy;
 	struct phy_configure_opts_dp		dp;
 	struct phy_configure_opts_lvds		lvds;
+	struct phy_configure_opts_hdmi		hdmi;
 };
 
 /**