From: Sascha Hauer <sha@pengutronix.de>
To: Renaud Barbier <Renaud.Barbier@ametek.com>
Cc: Barebox List <barebox@lists.infradead.org>
Subject: Re: [PATCH 2/2] ARM: Layerscape: Add LS1021A IOT board support
Date: Thu, 16 Feb 2023 13:54:34 +0100 [thread overview]
Message-ID: <20230216125434.GN10447@pengutronix.de> (raw)
In-Reply-To: <BL0PR07MB5665285FB23BBC620897BABEECA09@BL0PR07MB5665.namprd07.prod.outlook.com>
On Thu, Feb 16, 2023 at 11:54:14AM +0000, Renaud Barbier wrote:
>
>
> > > +
> > > +/* Currently 1000FD is not working. Below is a bit of guess work
> > > + * from reading MMD3/MMD7 of the AR8033 */ static int
> > > +phy_fixup(struct phy_device *phydev) {
> > > + unsigned short val;
> > > + int advertise = SUPPORTED_1000baseT_Full |
> > > +SUPPORTED_1000baseT_Half;
> > > +
> > > + phydev->advertising &= ~advertise;
> > > +
> > > + /* Ar8031 phy SmartEEE feature cause link status generates glitch,
> > > + * which cause ethernet link down/up issue, so disable SmartEEE
> > > + */
> > > + phy_write(phydev, 0xd, 0x3);
> > > + phy_write(phydev, 0xe, 0x805d);
> > > + phy_write(phydev, 0xd, 0x4003);
> > > + val = phy_read(phydev, 0xe);
> > > + val &= ~(0x1 << 8);
> > > + phy_write(phydev, 0xe, val);
> > > +
> > > + /* Use XTAL */
> > > + phy_write(phydev, 0xd, 0x7);
> > > + phy_write(phydev, 0xe, 0x8016);
> > > + phy_write(phydev, 0xd, 0x4007);
> > > + val = phy_read(phydev, 0xe);
> > > + val &= 0xffe3;
> > > + phy_write(phydev, 0xe, val);
> > > +
> > > + return 0;
> > > +}
> >
> > We have a phy driver for the AR8033. Can you use it instead of putting this
> > into board code?
>
> Hello I have enabled the at803x driver to support the AR8031. However, only the generic PHY driver config_init get called.
> phy_driver_register: 00000000
> register generic for: Generic PHY, 0xffffffff
> phy_driver_register: bbe15d54
> register specific for: Atheros 8035 ethernet, 0x4dd072
> phy_driver_register: bbe15d54
> register specific for: Atheros 8030 ethernet, 0x4dd076
> phy_driver_register: bbe15d54
> register specific for: Atheros 8031 ethernet, 0x4dd074
>
> call phy_init_hw
> call config_init for: Generic PHY, 0xffffffff
>
> I do not understand how to connect the AR802x phy driver to the device. Do I need to add something to the device tree?
>
> barebox@LS1021A-IOT Board:/ md -w -s /dev/mdio0-phy03
Is this the only phy or are there others? What does "devinfo mdio0-phy03" say?
miitool -v output might be interesting as well.
I had a short look at your changes to the gianfar driver. You added
this:
+ priv->phyaddr = -1;
+ np = of_parse_phandle_from(dev->device_node, NULL, "phy-handle", 0);
+ if (np) {
+ struct device_node *parent;
+ uint32_t reg = 0;
+
+ /* Get mdio parent */
+ parent = of_get_parent(np);
+ if (!parent) {
+ pr_err("No parent node for phy-handle\n");
+ return PTR_ERR(parent);
+ }
+ priv->gfar_mdio = parent->dev->priv;
+ if (!of_property_read_u32(np, "reg", ®))
+ priv->phyaddr = reg;
+ }
This is not necessary when your phy is described in the device tree. You
neither need the mdiobus in the ethernet driver nor the phy address.
Instead, just call:
ret = phy_device_connect(edev, NULL, -1, gfar_adjust_link, 0, interface);
phy_device_connect() will parse the phy-handle property then and connect
the ethernet device to the correct phy.
I am not sure though if that's part of your problem, because correctly
open coding what phy_device_connect() does should have the same effect.
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2023-02-16 12:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-08 13:26 Renaud Barbier
2023-02-10 12:23 ` Sascha Hauer
2023-02-16 11:54 ` Renaud Barbier
2023-02-16 12:54 ` Sascha Hauer [this message]
2023-02-16 13:56 ` Renaud Barbier
2023-02-17 9:36 ` Sascha Hauer
2023-02-17 13:44 ` Renaud Barbier
2023-02-17 14:51 ` Sascha Hauer
2023-02-17 18:06 ` Renaud Barbier
2023-02-21 10:31 ` Sascha Hauer
2023-02-17 15:22 ` Renaud Barbier
2023-02-16 13:58 ` Renaud Barbier
2023-03-13 14:43 Renaud Barbier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230216125434.GN10447@pengutronix.de \
--to=sha@pengutronix.de \
--cc=Renaud.Barbier@ametek.com \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox