diff mbox

[v7,1/7] drivers: net: cpsw: Add reading of DT phy-handle node

Message ID 1461931167-24110-1-git-send-email-dmurphy@ti.com
State Superseded
Headers show

Commit Message

Dan Murphy April 29, 2016, 11:59 a.m. UTC
Add the ability to read the phy-handle node of the
cpsw slave.  Upon reading this handle the phy-id
can be stored based on the reg node in the DT.

The phy-handle also needs to be stored and passed
to the phy to access any phy data that is available.

Signed-off-by: Dan Murphy <dmurphy@ti.com>

---

v7 - Fixed checkpatch issues - https://patchwork.ozlabs.org/patch/610946/
Checkpatch LTL issues still remain and resolving will break readability

WARNING: line over 80 characters
#47: FILE: drivers/net/cpsw.c:1230:
WARNING: line over 80 characters
#50: FILE: drivers/net/cpsw.c:1233:


 drivers/net/cpsw.c | 23 +++++++++++++++++++++--
 include/cpsw.h     |  1 +
 2 files changed, 22 insertions(+), 2 deletions(-)

-- 
2.8.1.116.g7b0d47b

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Comments

Dan Murphy May 2, 2016, 5:54 p.m. UTC | #1
Joe

On 05/02/2016 11:08 AM, Joe Hershberger wrote:
> On Fri, Apr 29, 2016 at 6:59 AM, Dan Murphy <dmurphy@ti.com> wrote:

>> Add the ability to read the phy-handle node of the

>> cpsw slave.  Upon reading this handle the phy-id

>> can be stored based on the reg node in the DT.

>>

>> The phy-handle also needs to be stored and passed

>> to the phy to access any phy data that is available.

>>

>> Signed-off-by: Dan Murphy <dmurphy@ti.com>

>> ---

>>

>> v7 - Fixed checkpatch issues - https://patchwork.ozlabs.org/patch/610946/

>> Checkpatch LTL issues still remain and resolving will break readability

>>

>> WARNING: line over 80 characters

>> #47: FILE: drivers/net/cpsw.c:1230:

>> WARNING: line over 80 characters

>> #50: FILE: drivers/net/cpsw.c:1233:

> Looks like you dropped most of the Acked-by and Tested-by from the

> last version. Please resend with those included.


Do we include the Acked-by in the patch?

Dan

> Thanks,

> -Joe



-- 
------------------
Dan Murphy

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Dan Murphy May 2, 2016, 6:03 p.m. UTC | #2
Tom

On 05/02/2016 12:58 PM, Tom Rini wrote:
> On Mon, May 02, 2016 at 12:54:43PM -0500, Dan Murphy wrote:

>> Joe

>>

>> On 05/02/2016 11:08 AM, Joe Hershberger wrote:

>>> On Fri, Apr 29, 2016 at 6:59 AM, Dan Murphy <dmurphy@ti.com> wrote:

>>>> Add the ability to read the phy-handle node of the

>>>> cpsw slave.  Upon reading this handle the phy-id

>>>> can be stored based on the reg node in the DT.

>>>>

>>>> The phy-handle also needs to be stored and passed

>>>> to the phy to access any phy data that is available.

>>>>

>>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>

>>>> ---

>>>>

>>>> v7 - Fixed checkpatch issues - https://patchwork.ozlabs.org/patch/610946/

>>>> Checkpatch LTL issues still remain and resolving will break readability

>>>>

>>>> WARNING: line over 80 characters

>>>> #47: FILE: drivers/net/cpsw.c:1230:

>>>> WARNING: line over 80 characters

>>>> #50: FILE: drivers/net/cpsw.c:1233:

>>> Looks like you dropped most of the Acked-by and Tested-by from the

>>> last version. Please resend with those included.

>> Do we include the Acked-by in the patch?

> So, you don't need to resend vX -> v(X+1) if the only change for the

> whole series is collecting ack/tested/reviewed, patchwork does that for

> us.  If you're making changes to part of a series from vX -> v(X+1) and

> some areas are unchanged, yes, you should collect the previous

> acked/reviewed.  I think you need to go back and see what

> ack/tested/reviewed still apply and include those in v8, yes.  Thanks!

>

Do I have to up rev the series if I am just adding in acked/reviewed information?

Dan

-- 
------------------
Dan Murphy

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
diff mbox

Patch

diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index 7104754..a2d9527 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -965,6 +965,11 @@  static int cpsw_phy_init(struct cpsw_priv *priv, struct cpsw_slave *slave)
 	phydev->supported &= supported;
 	phydev->advertising = phydev->supported;
 
+#ifdef CONFIG_DM_ETH
+	if (slave->data->phy_of_handle)
+		phydev->dev->of_offset = slave->data->phy_of_handle;
+#endif
+
 	priv->phydev = phydev;
 	phy_config(phydev);
 
@@ -1217,8 +1222,22 @@  static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
 			if (phy_mode)
 				priv->data.slave_data[slave_index].phy_if =
 					phy_get_interface_by_name(phy_mode);
-			fdtdec_get_int_array(fdt, subnode, "phy_id", phy_id, 2);
-			priv->data.slave_data[slave_index].phy_addr = phy_id[1];
+
+			priv->data.slave_data[slave_index].phy_of_handle =
+				fdtdec_lookup_phandle(fdt, subnode,
+						      "phy-handle");
+
+			if (priv->data.slave_data[slave_index].phy_of_handle >= 0) {
+				priv->data.slave_data[slave_index].phy_addr =
+						fdtdec_get_int(gd->fdt_blob,
+							       priv->data.slave_data[slave_index].phy_of_handle,
+							       "reg", -1);
+			} else {
+				fdtdec_get_int_array(fdt, subnode, "phy_id",
+						     phy_id, 2);
+				priv->data.slave_data[slave_index].phy_addr =
+						phy_id[1];
+			}
 			slave_index++;
 		}
 
diff --git a/include/cpsw.h b/include/cpsw.h
index cf1d30b..ff95cd8 100644
--- a/include/cpsw.h
+++ b/include/cpsw.h
@@ -21,6 +21,7 @@  struct cpsw_slave_data {
 	u32		sliver_reg_ofs;
 	int		phy_addr;
 	int		phy_if;
+	int		phy_of_handle;
 };
 
 enum {