From: Horatiu Vultur <horatiu.vultur@microchip.com>
To: Heiner Kallweit <hkallweit1@gmail.com>
Cc: <andrew@lunn.ch>, <linux@armlinux.org.uk>, <davem@davemloft.net>,
<kuba@kernel.org>, <netdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net-next] net: phy: micrel: Add config_init for LAN8814
Date: Mon, 29 Nov 2021 09:29:58 +0100 [thread overview]
Message-ID: <20211129082958.ap6xtsb6jad3os4x@soft-dev3-1.localhost> (raw)
In-Reply-To: <402780af-9d12-45dd-e435-e7279f1b9263@gmail.com>
The 11/26/2021 12:57, Heiner Kallweit wrote:
Hi Heiner,
>
> On 26.11.2021 11:38, Horatiu Vultur wrote:
> >
> > +static int lan8814_config_init(struct phy_device *phydev)
> > +{
> > + int val;
> > +
> > + /* Reset the PHY */
> > + val = lanphy_read_page_reg(phydev, 4, LAN8814_QSGMII_SOFT_RESET);
> > + val |= LAN8814_QSGMII_SOFT_RESET_BIT;
> > + lanphy_write_page_reg(phydev, 4, LAN8814_QSGMII_SOFT_RESET, val);
> > +
> > + /* Disable ANEG with QSGMII PCS Host side */
> > + val = lanphy_read_page_reg(phydev, 5, LAN8814_QSGMII_PCS1G_ANEG_CONFIG);
> > + val &= ~LAN8814_QSGMII_PCS1G_ANEG_CONFIG_ANEG_ENA;
> > + lanphy_write_page_reg(phydev, 5, LAN8814_QSGMII_PCS1G_ANEG_CONFIG, val);
> > +
> > + /* MDI-X setting for swap A,B transmit */
> > + val = lanphy_read_page_reg(phydev, 2, LAN8814_ALIGN_SWAP);
> > + val &= ~LAN8814_ALIGN_TX_A_B_SWAP_MASK;
> > + val |= LAN8814_ALIGN_TX_A_B_SWAP;
> > + lanphy_write_page_reg(phydev, 2, LAN8814_ALIGN_SWAP, val);
> > +
>
> Not directly related to just this patch:
> Did you consider implementing the read_page and write_page PHY driver
> callbacks? Then you could use phylib functions like phy_modify_paged et al
> and you wouldn't have to open-code the paged register operations.
>
> I think write_page would just be
> phy_write(phydev, LAN_EXT_PAGE_ACCESS_CONTROL, page);
> phy_write(phydev, LAN_EXT_PAGE_ACCESS_ADDRESS_DATA, addr);
> phy_write(phydev, LAN_EXT_PAGE_ACCESS_CONTROL, (page | LAN_EXT_PAGE_ACCESS_CTRL_EP_FUNC));
>
> and read_page
> phy_read(phydev, LAN_EXT_PAGE_ACCESS_CONTROL);
Thanks for the suggestion, but unfortunately it would not work.
The reason is that in the callback 'write_page' I don't actually get
also the address in the page that is needed to be read/write.
If this issue would be fixed, then there is another problem.
To read/write the data in the extended page is required to access the
register LAN_EXT_PAGE_ACCESS_ADDRESS_DATA. But that would not happen
when using the phy_read_paged, it would read actually the register in
page 0.
If I have missed something, please let me know.
>
> > + return 0;
> > +}
> > +
> > static int lan8804_config_init(struct phy_device *phydev)
> > {
> > int val;
> > @@ -1793,6 +1824,7 @@ static struct phy_driver ksphy_driver[] = {
> > .phy_id = PHY_ID_LAN8814,
> > .phy_id_mask = MICREL_PHY_ID_MASK,
> > .name = "Microchip INDY Gigabit Quad PHY",
> > + .config_init = lan8814_config_init,
> > .driver_data = &ksz9021_type,
> > .probe = kszphy_probe,
> > .soft_reset = genphy_soft_reset,
> >
>
--
/Horatiu
next prev parent reply other threads:[~2021-11-29 8:30 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-26 10:38 [PATCH net-next] net: phy: micrel: Add config_init for LAN8814 Horatiu Vultur
2021-11-26 11:57 ` Heiner Kallweit
2021-11-26 12:09 ` Russell King (Oracle)
2021-11-29 8:29 ` Horatiu Vultur [this message]
2021-11-29 17:07 ` Heiner Kallweit
2021-11-26 15:15 ` Andrew Lunn
2021-11-29 9:01 ` Horatiu Vultur
2021-12-22 11:48 ` Horatiu Vultur
2021-12-22 15:23 ` Jakub Kicinski
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=20211129082958.ap6xtsb6jad3os4x@soft-dev3-1.localhost \
--to=horatiu.vultur@microchip.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.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 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.