2022-11-08 13:27:48

by Sandor Yu

[permalink] [raw]
Subject: [PATCH v3 04/10] phy: Add HDMI configuration options

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 <[email protected]>
---
include/linux/phy/phy-hdmi.h | 33 +++++++++++++++++++++++++++++++++
include/linux/phy/phy.h | 7 ++++++-
2 files changed, 39 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..73a32eb535b0
--- /dev/null
+++ b/include/linux/phy/phy-hdmi.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2022 NXP
+ */
+
+#ifndef __PHY_HDMI_H_
+#define __PHY_HDMI_H_
+
+enum hdmi_phy_colorspace {
+ HDMI_PHY_COLORSPACE_RGB,
+ HDMI_PHY_COLORSPACE_YUV422,
+ HDMI_PHY_COLORSPACE_YUV444,
+ HDMI_PHY_COLORSPACE_YUV420,
+ 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 b1413757fcc3..6f6873ea7270 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



2022-11-10 08:01:48

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH v3 04/10] phy: Add HDMI configuration options

On 08-11-22, 21:00, 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.

Is there any dpendency b/w phy and hdmi, I dont see anything in cover..

Pls consider splitting the phy series ..

>
> Signed-off-by: Sandor Yu <[email protected]>
> ---
> include/linux/phy/phy-hdmi.h | 33 +++++++++++++++++++++++++++++++++
> include/linux/phy/phy.h | 7 ++++++-
> 2 files changed, 39 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..73a32eb535b0
> --- /dev/null
> +++ b/include/linux/phy/phy-hdmi.h
> @@ -0,0 +1,33 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Copyright 2022 NXP
> + */
> +
> +#ifndef __PHY_HDMI_H_
> +#define __PHY_HDMI_H_
> +
> +enum hdmi_phy_colorspace {
> + HDMI_PHY_COLORSPACE_RGB,
> + HDMI_PHY_COLORSPACE_YUV422,
> + HDMI_PHY_COLORSPACE_YUV444,
> + HDMI_PHY_COLORSPACE_YUV420,
> + HDMI_PHY_COLORSPACE_RESERVED4,
> + HDMI_PHY_COLORSPACE_RESERVED5,
> + HDMI_PHY_COLORSPACE_RESERVED6,
> +};

kernel-doc style comments here too please

> +
> +/**
> + * 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 b1413757fcc3..6f6873ea7270 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

2022-11-10 08:48:05

by Sandor Yu

[permalink] [raw]
Subject: RE: [EXT] Re: [PATCH v3 04/10] phy: Add HDMI configuration options

Thanks your comments,

> -----Original Message-----
> From: Vinod Koul <[email protected]>
> Sent: 2022??11??10?? 15:39
> To: Sandor Yu <[email protected]>
> Cc: [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected]; dl-linux-imx
> <[email protected]>; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; Oliver Brown <[email protected]>
> Subject: [EXT] Re: [PATCH v3 04/10] phy: Add HDMI configuration options
>
> Caution: EXT Email
>
> On 08-11-22, 21:00, 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.
>
> Is there any dpendency b/w phy and hdmi, I dont see anything in cover..
>
> Pls consider splitting the phy series ..
Both HDMI/DP and PHY patch set depend on each other to pass build.
HDMI driver depend on phy-hdmi.h and
PHY driver depend on cdns-mhdp-mailbox.h to pass build.
The followed description had in cover patch:
"The patch set compose of DRM bridge drivers and PHY drivers.
Both of them need the followed two patches to pass build.
drm: bridge: cadence: convert mailbox functions to macro functions
phy: Add HDMI configuration options"

>
> >
> > Signed-off-by: Sandor Yu <[email protected]>
> > ---
> > include/linux/phy/phy-hdmi.h | 33
> +++++++++++++++++++++++++++++++++
> > include/linux/phy/phy.h | 7 ++++++-
> > 2 files changed, 39 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..73a32eb535b0
> > --- /dev/null
> > +++ b/include/linux/phy/phy-hdmi.h
> > @@ -0,0 +1,33 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * Copyright 2022 NXP
> > + */
> > +
> > +#ifndef __PHY_HDMI_H_
> > +#define __PHY_HDMI_H_
> > +
> > +enum hdmi_phy_colorspace {
> > + HDMI_PHY_COLORSPACE_RGB,
> > + HDMI_PHY_COLORSPACE_YUV422,
> > + HDMI_PHY_COLORSPACE_YUV444,
> > + HDMI_PHY_COLORSPACE_YUV420,
> > + HDMI_PHY_COLORSPACE_RESERVED4,
> > + HDMI_PHY_COLORSPACE_RESERVED5,
> > + HDMI_PHY_COLORSPACE_RESERVED6,
> > +};
>
> kernel-doc style comments here too please
OK, I will add it.
>
> > +
> > +/**
> > + * 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
> > b1413757fcc3..6f6873ea7270 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