All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework
@ 2020-05-26 14:35 Yuti Amonkar
  2020-05-26 14:35 ` [PATCH v2 1/2] phy: Add max_link_rate as a PHY attribute and APIs to get/set phy_attrs Yuti Amonkar
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Yuti Amonkar @ 2020-05-26 14:35 UTC (permalink / raw)
  To: linux-kernel, kishon, robh+dt, mark.rutland, maxime
  Cc: nsekhar, jsarha, tomi.valkeinen, praneeth, mparab, sjakhade, yamonkar

This patch series adds support to use kernel PHY subsystem APIs to get/set PHY
attributes like number of lanes and maximum link rate.

It includes following patches:

1. v2-0001-phy-Add-max_link_rate-as-a-PHY-attribute-and-APIs.patch 
This patch adds max_link_rate as a PHY attribute along with a pair of APIs that
allow the generic PHY subsystem to get/set PHY attributes supported by the PHY.
The PHY provider driver may use phy_set_attrs() API to set the values that PHY supports.
The controller driver may then use phy_get_attrs() API to fetch the PHY attributes in 
order to properly configure the controller.

2. v2-0002-phy-phy-cadence-torrent-Use-kernel-PHY-API-to-set.patch
This patch uses kernel PHY API phy_set_attrs to set corresponding PHY properties
in Cadence Torrent PHY driver. This will enable drivers using this PHY to read 
these properties using PHY framework.

The phy_get_attrs() API will be used in the DRM bridge driver [1] which is in process of upstreaming.

[1]

https://lkml.org/lkml/2020/2/26/263

Version History:

v2:
    - Implemented single pair of functions to get/set all PHY attributes

Swapnil Jakhade (1):
  phy: phy-cadence-torrent: Use kernel PHY API to set PHY attributes

Yuti Amonkar (1):
  phy: Add max_link_rate as a PHY attribute and APIs to get/set
    phy_attrs

 drivers/phy/cadence/phy-cadence-torrent.c |  7 +++++++
 include/linux/phy/phy.h                   | 25 +++++++++++++++++++++++
 2 files changed, 32 insertions(+)

-- 
2.17.1


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

* [PATCH v2 1/2] phy: Add max_link_rate as a PHY attribute and APIs to get/set phy_attrs
  2020-05-26 14:35 [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework Yuti Amonkar
@ 2020-05-26 14:35 ` Yuti Amonkar
  2020-05-26 14:35 ` [PATCH v2 2/2] phy: phy-cadence-torrent: Use kernel PHY API to set PHY attributes Yuti Amonkar
  2020-07-09  7:02 ` [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework Swapnil Kashinath Jakhade
  2 siblings, 0 replies; 5+ messages in thread
From: Yuti Amonkar @ 2020-05-26 14:35 UTC (permalink / raw)
  To: linux-kernel, kishon, robh+dt, mark.rutland, maxime
  Cc: nsekhar, jsarha, tomi.valkeinen, praneeth, mparab, sjakhade, yamonkar

The patch adds a pair of APIs that allows generic PHY subsystem
to get/set PHY attributes supported by the PHY. The PHY provider
driver may use phy_set_attrs() to set phy attributes that the PHY
supports. The controller driver may then use phy_get_attrs()
to fetch the PHY attributes to properly configure the controller.

Signed-off-by: Yuti Amonkar <yamonkar@cadence.com>
---
 include/linux/phy/phy.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
index bcee8eba62b3..48693321ae36 100644
--- a/include/linux/phy/phy.h
+++ b/include/linux/phy/phy.h
@@ -119,6 +119,7 @@ struct phy_ops {
  */
 struct phy_attrs {
 	u32			bus_width;
+	u32			max_link_rate;
 	enum phy_mode		mode;
 };
 
@@ -231,6 +232,20 @@ static inline void phy_set_bus_width(struct phy *phy, int bus_width)
 {
 	phy->attrs.bus_width = bus_width;
 }
+
+static inline void phy_get_attrs(struct phy *phy, struct phy_attrs *attrs)
+{
+	attrs->bus_width = phy->attrs.bus_width;
+	attrs->max_link_rate = phy->attrs.max_link_rate;
+	attrs->mode = phy->attrs.mode;
+}
+
+static inline void phy_set_attrs(struct phy *phy, struct phy_attrs attrs)
+{
+	phy->attrs.bus_width = attrs.bus_width;
+	phy->attrs.max_link_rate = attrs.max_link_rate;
+	phy->attrs.mode = attrs.mode;
+}
 struct phy *phy_get(struct device *dev, const char *string);
 struct phy *phy_optional_get(struct device *dev, const char *string);
 struct phy *devm_phy_get(struct device *dev, const char *string);
@@ -389,6 +404,16 @@ static inline void phy_set_bus_width(struct phy *phy, int bus_width)
 	return;
 }
 
+static inline void phy_get_attrs(struct phy *phy, struct phy_attrs *attrs)
+{
+	return;
+}
+
+static inline void phy_set_attrs(struct phy *phy, struct phy_attrs attrs)
+{
+	return;
+}
+
 static inline struct phy *phy_get(struct device *dev, const char *string)
 {
 	return ERR_PTR(-ENOSYS);
-- 
2.17.1


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

* [PATCH v2 2/2] phy: phy-cadence-torrent: Use kernel PHY API to set PHY attributes
  2020-05-26 14:35 [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework Yuti Amonkar
  2020-05-26 14:35 ` [PATCH v2 1/2] phy: Add max_link_rate as a PHY attribute and APIs to get/set phy_attrs Yuti Amonkar
@ 2020-05-26 14:35 ` Yuti Amonkar
  2020-07-09  7:02 ` [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework Swapnil Kashinath Jakhade
  2 siblings, 0 replies; 5+ messages in thread
From: Yuti Amonkar @ 2020-05-26 14:35 UTC (permalink / raw)
  To: linux-kernel, kishon, robh+dt, mark.rutland, maxime
  Cc: nsekhar, jsarha, tomi.valkeinen, praneeth, mparab, sjakhade, yamonkar

From: Swapnil Jakhade <sjakhade@cadence.com>

Use generic PHY framework function phy_set_attrs() to set number
of lanes and maximum link rate supported by PHY.

Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com>
Signed-off-by: Yuti Amonkar <yamonkar@cadence.com>
---
 drivers/phy/cadence/phy-cadence-torrent.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/phy/cadence/phy-cadence-torrent.c b/drivers/phy/cadence/phy-cadence-torrent.c
index 7116127358ee..af81707ff0c6 100644
--- a/drivers/phy/cadence/phy-cadence-torrent.c
+++ b/drivers/phy/cadence/phy-cadence-torrent.c
@@ -1710,6 +1710,7 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
 	struct cdns_torrent_phy *cdns_phy;
 	struct device *dev = &pdev->dev;
 	struct phy_provider *phy_provider;
+	struct phy_attrs torrent_attr;
 	const struct of_device_id *match;
 	struct cdns_torrent_data *data;
 	struct device_node *child;
@@ -1852,6 +1853,12 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
 				 cdns_phy->phys[node].num_lanes,
 				 cdns_phy->max_bit_rate / 1000,
 				 cdns_phy->max_bit_rate % 1000);
+
+			torrent_attr.bus_width = cdns_phy->phys[node].num_lanes;
+			torrent_attr.max_link_rate = cdns_phy->max_bit_rate;
+			torrent_attr.mode = PHY_MODE_DP;
+
+			phy_set_attrs(gphy, torrent_attr);
 		} else {
 			dev_err(dev, "Driver supports only PHY_TYPE_DP\n");
 			ret = -ENOTSUPP;
-- 
2.17.1


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

* RE: [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework
  2020-05-26 14:35 [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework Yuti Amonkar
  2020-05-26 14:35 ` [PATCH v2 1/2] phy: Add max_link_rate as a PHY attribute and APIs to get/set phy_attrs Yuti Amonkar
  2020-05-26 14:35 ` [PATCH v2 2/2] phy: phy-cadence-torrent: Use kernel PHY API to set PHY attributes Yuti Amonkar
@ 2020-07-09  7:02 ` Swapnil Kashinath Jakhade
  2020-07-09  7:40   ` Vinod Koul
  2 siblings, 1 reply; 5+ messages in thread
From: Swapnil Kashinath Jakhade @ 2020-07-09  7:02 UTC (permalink / raw)
  To: linux-kernel, kishon, robh+dt, mark.rutland, maxime, Vinod Koul
  Cc: nsekhar, jsarha, tomi.valkeinen, praneeth, Milind Parab,
	Yuti Suresh Amonkar

Ping requesting review comments.
https://lkml.org/lkml/2020/5/26/507

Thanks & regards,
Swapnil

> -----Original Message-----
> From: Yuti Amonkar <yamonkar@cadence.com>
> Sent: Tuesday, May 26, 2020 8:05 PM
> To: linux-kernel@vger.kernel.org; kishon@ti.com; robh+dt@kernel.org;
> mark.rutland@arm.com; maxime@cerno.tech
> Cc: nsekhar@ti.com; jsarha@ti.com; tomi.valkeinen@ti.com;
> praneeth@ti.com; Milind Parab <mparab@cadence.com>; Swapnil Kashinath
> Jakhade <sjakhade@cadence.com>; Yuti Suresh Amonkar
> <yamonkar@cadence.com>
> Subject: [PATCH v2 0/2] Add support to get/set PHY attributes using PHY
> framework
> 
> This patch series adds support to use kernel PHY subsystem APIs to get/set
> PHY attributes like number of lanes and maximum link rate.
> 
> It includes following patches:
> 
> 1. v2-0001-phy-Add-max_link_rate-as-a-PHY-attribute-and-APIs.patch
> This patch adds max_link_rate as a PHY attribute along with a pair of APIs
> that allow the generic PHY subsystem to get/set PHY attributes supported by
> the PHY.
> The PHY provider driver may use phy_set_attrs() API to set the values that
> PHY supports.
> The controller driver may then use phy_get_attrs() API to fetch the PHY
> attributes in order to properly configure the controller.
> 
> 2. v2-0002-phy-phy-cadence-torrent-Use-kernel-PHY-API-to-set.patch
> This patch uses kernel PHY API phy_set_attrs to set corresponding PHY
> properties in Cadence Torrent PHY driver. This will enable drivers using this
> PHY to read these properties using PHY framework.
> 
> The phy_get_attrs() API will be used in the DRM bridge driver [1] which is in
> process of upstreaming.
> 
> [1]
> 
> https://lkml.org/lkml/2020/2/26/263
> 
> Version History:
> 
> v2:
>     - Implemented single pair of functions to get/set all PHY attributes
> 
> Swapnil Jakhade (1):
>   phy: phy-cadence-torrent: Use kernel PHY API to set PHY attributes
> 
> Yuti Amonkar (1):
>   phy: Add max_link_rate as a PHY attribute and APIs to get/set
>     phy_attrs
> 
>  drivers/phy/cadence/phy-cadence-torrent.c |  7 +++++++
>  include/linux/phy/phy.h                   | 25 +++++++++++++++++++++++
>  2 files changed, 32 insertions(+)
> 
> --
> 2.17.1


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

* Re: [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework
  2020-07-09  7:02 ` [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework Swapnil Kashinath Jakhade
@ 2020-07-09  7:40   ` Vinod Koul
  0 siblings, 0 replies; 5+ messages in thread
From: Vinod Koul @ 2020-07-09  7:40 UTC (permalink / raw)
  To: Swapnil Kashinath Jakhade
  Cc: linux-kernel, kishon, robh+dt, mark.rutland, maxime, nsekhar,
	jsarha, tomi.valkeinen, praneeth, Milind Parab,
	Yuti Suresh Amonkar

On 09-07-20, 07:02, Swapnil Kashinath Jakhade wrote:
> Ping requesting review comments.
> https://lkml.org/lkml/2020/5/26/507

I dont have this, can you repost?

Thanks
> 
> Thanks & regards,
> Swapnil
> 
> > -----Original Message-----
> > From: Yuti Amonkar <yamonkar@cadence.com>
> > Sent: Tuesday, May 26, 2020 8:05 PM
> > To: linux-kernel@vger.kernel.org; kishon@ti.com; robh+dt@kernel.org;
> > mark.rutland@arm.com; maxime@cerno.tech
> > Cc: nsekhar@ti.com; jsarha@ti.com; tomi.valkeinen@ti.com;
> > praneeth@ti.com; Milind Parab <mparab@cadence.com>; Swapnil Kashinath
> > Jakhade <sjakhade@cadence.com>; Yuti Suresh Amonkar
> > <yamonkar@cadence.com>
> > Subject: [PATCH v2 0/2] Add support to get/set PHY attributes using PHY
> > framework
> > 
> > This patch series adds support to use kernel PHY subsystem APIs to get/set
> > PHY attributes like number of lanes and maximum link rate.
> > 
> > It includes following patches:
> > 
> > 1. v2-0001-phy-Add-max_link_rate-as-a-PHY-attribute-and-APIs.patch
> > This patch adds max_link_rate as a PHY attribute along with a pair of APIs
> > that allow the generic PHY subsystem to get/set PHY attributes supported by
> > the PHY.
> > The PHY provider driver may use phy_set_attrs() API to set the values that
> > PHY supports.
> > The controller driver may then use phy_get_attrs() API to fetch the PHY
> > attributes in order to properly configure the controller.
> > 
> > 2. v2-0002-phy-phy-cadence-torrent-Use-kernel-PHY-API-to-set.patch
> > This patch uses kernel PHY API phy_set_attrs to set corresponding PHY
> > properties in Cadence Torrent PHY driver. This will enable drivers using this
> > PHY to read these properties using PHY framework.
> > 
> > The phy_get_attrs() API will be used in the DRM bridge driver [1] which is in
> > process of upstreaming.
> > 
> > [1]
> > 
> > https://lkml.org/lkml/2020/2/26/263
> > 
> > Version History:
> > 
> > v2:
> >     - Implemented single pair of functions to get/set all PHY attributes
> > 
> > Swapnil Jakhade (1):
> >   phy: phy-cadence-torrent: Use kernel PHY API to set PHY attributes
> > 
> > Yuti Amonkar (1):
> >   phy: Add max_link_rate as a PHY attribute and APIs to get/set
> >     phy_attrs
> > 
> >  drivers/phy/cadence/phy-cadence-torrent.c |  7 +++++++
> >  include/linux/phy/phy.h                   | 25 +++++++++++++++++++++++
> >  2 files changed, 32 insertions(+)
> > 
> > --
> > 2.17.1

-- 
~Vinod

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

end of thread, other threads:[~2020-07-09  7:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-26 14:35 [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework Yuti Amonkar
2020-05-26 14:35 ` [PATCH v2 1/2] phy: Add max_link_rate as a PHY attribute and APIs to get/set phy_attrs Yuti Amonkar
2020-05-26 14:35 ` [PATCH v2 2/2] phy: phy-cadence-torrent: Use kernel PHY API to set PHY attributes Yuti Amonkar
2020-07-09  7:02 ` [PATCH v2 0/2] Add support to get/set PHY attributes using PHY framework Swapnil Kashinath Jakhade
2020-07-09  7:40   ` Vinod Koul

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.