From: "Ramón Nordin Rodriguez" <ramon.nordin.rodriguez@ferroamp.se>
To: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, horms@kernel.org, saeedm@nvidia.com,
anthony.l.nguyen@intel.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, andrew@lunn.ch, corbet@lwn.net,
linux-doc@vger.kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
devicetree@vger.kernel.org, horatiu.vultur@microchip.com,
ruanjinjie@huawei.com, steen.hegelund@microchip.com,
vladimir.oltean@nxp.com, UNGLinuxDriver@microchip.com,
Thorsten.Kummermehr@microchip.com, Pier.Beruto@onsemi.com,
Selvamani.Rajagopal@onsemi.com, Nicolas.Ferre@microchip.com,
benjamin.bigler@bernformulastudent.ch
Subject: Re: [PATCH net-next v4 11/12] microchip: lan865x: add driver support for Microchip's LAN865X MAC-PHY
Date: Sat, 27 Apr 2024 21:35:06 +0200 [thread overview]
Message-ID: <Zi1Tang5RQMmEFdx@builder> (raw)
In-Reply-To: <20240418125648.372526-12-Parthiban.Veerasooran@microchip.com>
I'm running a dual lan8650 setup, neither IC passed the sw reset in the
oa_tc.c module, I need to pull the reset pin low to reset the pin before
the rest of the init stuff happens.
The datasheet recommends not doing a sw reset, excerpt from section
4.1.1.3 Software Reset
"Note: The SW_RESET bit of the Clause 22 Basic Control register will reset only the internal PHY, not
the entire device. This PHY only reset is not recommended for use. If such a reset is detected, by
reading the RESETC bit of the STS2 register, reset the entire device."
Doing a hw reset followed by a sw reset seems to work fine though. I
added the folloing patch to get things moving.
diff --git a/drivers/net/ethernet/microchip/lan865x/lan865x.c b/drivers/net/ethernet/microchip/lan865x/lan865x.c
index 72a663f14f50..993c4f9dec7e 100644
--- a/drivers/net/ethernet/microchip/lan865x/lan865x.c
+++ b/drivers/net/ethernet/microchip/lan865x/lan865x.c
@@ -9,6 +9,7 @@
#include <linux/kernel.h>
#include <linux/phy.h>
#include <linux/oa_tc6.h>
+#include <linux/gpio/driver.h>
#define DRV_NAME "lan865x"
@@ -36,6 +37,7 @@ struct lan865x_priv {
struct net_device *netdev;
struct spi_device *spi;
struct oa_tc6 *tc6;
+ struct gpio_desc *reset_gpio;
};
static int lan865x_set_hw_macaddr_low_bytes(struct oa_tc6 *tc6, const u8 *mac)
@@ -283,6 +285,29 @@ static int lan865x_set_zarfe(struct lan865x_priv *priv)
return oa_tc6_write_register(priv->tc6, OA_TC6_REG_CONFIG0, regval);
}
+static int lan865x_probe_reset_gpio(struct lan865x_priv *priv)
+{
+ priv->reset_gpio = devm_gpiod_get_optional(&priv->spi->dev,
+ "reset",
+ GPIOD_OUT_HIGH);
+ if (IS_ERR(priv->reset_gpio)) {
+ dev_err(&priv->spi->dev, "failed to parse reset gpio from dt");
+ return PTR_ERR(priv->reset_gpio);
+ }
+
+ return 0;
+}
+
+static void lan865x_hw_reset(struct lan865x_priv *priv)
+{
+ dev_info(&priv->spi->dev, "resetting device");
+ gpiod_set_value(priv->reset_gpio, 1);
+ // the datasheet specifies a minimum 5µs hold time
+ usleep_range(5,10);
+ gpiod_set_value(priv->reset_gpio, 0);
+ dev_info(&priv->spi->dev, "reset completed");
+}
+
static int lan865x_probe(struct spi_device *spi)
{
struct net_device *netdev;
@@ -297,6 +322,9 @@ static int lan865x_probe(struct spi_device *spi)
priv->netdev = netdev;
priv->spi = spi;
spi_set_drvdata(spi, priv);
+ lan865x_probe_reset_gpio(priv);
+ if(priv->reset_gpio)
+ lan865x_hw_reset(priv);
INIT_WORK(&priv->multicast_work, lan865x_multicast_work_handler);
priv->tc6 = oa_tc6_init(spi, netdev);
Since the chip does have a HW reset pin I think it would be nice to
at least expose this as an optional dt binding.
Maybe ignore the prints I forgot to remove :)
next prev parent reply other threads:[~2024-04-27 19:35 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-18 12:56 [PATCH net-next v4 00/12] Add support for OPEN Alliance 10BASE-T1x MACPHY Serial Interface Parthiban Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 01/12] Documentation: networking: add OPEN Alliance 10BASE-T1x MAC-PHY serial interface Parthiban Veerasooran
2024-04-28 9:33 ` Bagas Sanjaya
2024-04-29 11:31 ` Parthiban.Veerasooran
2024-04-29 16:17 ` Simon Horman
2024-04-30 11:30 ` Parthiban.Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 02/12] net: ethernet: oa_tc6: implement register write operation Parthiban Veerasooran
2024-04-22 23:48 ` Andrew Lunn
2024-04-23 4:38 ` Parthiban.Veerasooran
2024-04-23 23:14 ` Andrew Lunn
2024-04-26 5:55 ` Parthiban.Veerasooran
2024-04-29 16:36 ` Simon Horman
2024-04-30 8:14 ` Parthiban.Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 03/12] net: ethernet: oa_tc6: implement register read operation Parthiban Veerasooran
2024-04-23 23:17 ` Andrew Lunn
2024-04-26 5:56 ` Parthiban.Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 04/12] net: ethernet: oa_tc6: implement software reset Parthiban Veerasooran
2024-04-23 23:26 ` Andrew Lunn
2024-04-26 6:38 ` Parthiban.Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 05/12] net: ethernet: oa_tc6: implement error interrupts unmasking Parthiban Veerasooran
2024-04-23 23:27 ` Andrew Lunn
2024-04-27 19:52 ` Ramón Nordin Rodriguez
2024-04-27 21:17 ` Andrew Lunn
2024-04-27 21:55 ` Ramón Nordin Rodriguez
2024-04-28 14:48 ` Andrew Lunn
2024-04-28 9:54 ` Ramón Nordin Rodriguez
2024-04-28 14:59 ` Andrew Lunn
2024-04-28 22:04 ` Ramón Nordin Rodriguez
2024-05-01 18:29 ` Ramón Nordin Rodriguez
2024-05-01 19:58 ` Andrew Lunn
2024-05-01 20:07 ` Andrew Lunn
2024-05-02 10:10 ` Parthiban.Veerasooran
2024-05-02 10:19 ` Ramón Nordin Rodriguez
2024-05-03 7:10 ` Parthiban.Veerasooran
2024-05-06 1:21 ` Andrew Lunn
2024-05-06 6:47 ` Piergiorgio Beruto
2024-05-07 12:44 ` Ramón Nordin Rodriguez
2024-05-13 6:41 ` Ramón Nordin Rodriguez
2024-05-13 13:00 ` Andrew Lunn
2024-05-13 13:50 ` Ramón Nordin Rodriguez
2024-05-13 14:04 ` Andrew Lunn
2024-05-15 21:45 ` Ramón Nordin Rodriguez
2024-05-14 4:46 ` Parthiban.Veerasooran
2024-05-15 21:48 ` Ramón Nordin Rodriguez
2024-05-17 9:38 ` Parthiban.Veerasooran
2024-05-17 12:43 ` Ramón Nordin Rodriguez
2024-05-24 18:12 ` Ramón Nordin Rodriguez
2024-05-24 18:31 ` Andrew Lunn
2024-05-24 18:49 ` Piergiorgio Beruto
2024-05-27 9:30 ` Parthiban.Veerasooran
2024-05-27 8:38 ` Parthiban.Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 06/12] net: ethernet: oa_tc6: implement internal PHY initialization Parthiban Veerasooran
2024-04-23 23:48 ` Andrew Lunn
2024-04-26 13:17 ` Parthiban.Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 07/12] net: ethernet: oa_tc6: enable open alliance tc6 data communication Parthiban Veerasooran
2024-04-23 23:49 ` Andrew Lunn
2024-04-18 12:56 ` [PATCH net-next v4 08/12] net: ethernet: oa_tc6: implement transmit path to transfer tx ethernet frames Parthiban Veerasooran
2024-04-24 0:02 ` Andrew Lunn
2024-04-26 13:19 ` Parthiban.Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 09/12] net: ethernet: oa_tc6: implement receive path to receive rx " Parthiban Veerasooran
2024-04-24 0:08 ` Andrew Lunn
2024-04-26 13:45 ` Parthiban.Veerasooran
2024-04-26 18:13 ` Andrew Lunn
2024-04-29 6:13 ` Parthiban.Veerasooran
2024-04-27 20:02 ` Ramón Nordin Rodriguez
2024-04-29 8:32 ` Parthiban.Veerasooran
2024-04-29 10:45 ` Ramón Nordin Rodriguez
2024-04-18 12:56 ` [PATCH net-next v4 10/12] net: ethernet: oa_tc6: implement mac-phy interrupt Parthiban Veerasooran
2024-04-24 0:10 ` Andrew Lunn
2024-04-18 12:56 ` [PATCH net-next v4 11/12] microchip: lan865x: add driver support for Microchip's LAN865X MAC-PHY Parthiban Veerasooran
2024-04-24 0:27 ` Andrew Lunn
2024-04-26 13:32 ` Parthiban.Veerasooran
2024-04-26 18:14 ` Andrew Lunn
2024-04-29 6:13 ` Parthiban.Veerasooran
2024-04-27 19:19 ` Ramón Nordin Rodriguez
2024-04-27 19:57 ` Conor Dooley
2024-04-27 20:13 ` Ramón Nordin Rodriguez
2024-04-27 20:22 ` Conor Dooley
2024-04-27 21:09 ` Ramón Nordin Rodriguez
2024-04-29 9:47 ` Parthiban.Veerasooran
2024-04-29 12:09 ` Andrew Lunn
2024-04-30 13:30 ` Parthiban.Veerasooran
2024-04-30 16:55 ` Conor Dooley
2024-05-02 5:56 ` Parthiban.Veerasooran
2024-04-27 20:40 ` Andrew Lunn
2024-04-27 21:06 ` Ramón Nordin Rodriguez
2024-04-28 14:18 ` Andrew Lunn
2024-04-27 19:35 ` Ramón Nordin Rodriguez [this message]
2024-04-27 20:58 ` Andrew Lunn
2024-04-27 21:29 ` Ramón Nordin Rodriguez
2024-04-28 14:25 ` Andrew Lunn
2024-04-28 22:00 ` Ramón Nordin Rodriguez
2024-07-16 5:35 ` Stefan Bigler
2024-07-23 11:04 ` Parthiban.Veerasooran
2024-04-18 12:56 ` [PATCH net-next v4 12/12] dt-bindings: net: add Microchip's LAN865X 10BASE-T1S MACPHY Parthiban Veerasooran
2024-04-18 15:39 ` Conor Dooley
2024-04-22 3:59 ` Parthiban.Veerasooran
2024-04-22 15:50 ` Conor Dooley
2024-04-23 3:27 ` Parthiban.Veerasooran
2024-04-22 20:07 ` [PATCH net-next v4 00/12] Add support for OPEN Alliance 10BASE-T1x MACPHY Serial Interface Andrew Lunn
2024-04-22 20:08 ` Andrew Lunn
2024-04-22 23:23 ` Andrew Lunn
2024-05-08 13:05 ` Parthiban.Veerasooran
2024-05-08 17:04 ` Andrew Lunn
2024-05-09 13:04 ` Parthiban.Veerasooran
2024-05-09 20:39 ` Andrew Lunn
2024-05-10 11:22 ` Parthiban.Veerasooran
2024-05-24 20:52 ` Selvamani Rajagopal
2024-05-24 21:27 ` Andrew Lunn
2024-05-24 21:45 ` Piergiorgio Beruto
2024-05-24 21:54 ` Andrew Lunn
2024-05-24 22:08 ` Piergiorgio Beruto
2024-05-25 14:46 ` Andrew Lunn
2024-05-30 9:43 ` Piergiorgio Beruto
2024-05-30 13:06 ` Andrew Lunn
2024-05-30 21:37 ` Piergiorgio Beruto
2024-05-31 0:33 ` Andrew Lunn
2024-05-31 12:13 ` Parthiban.Veerasooran
2024-05-31 12:37 ` Andrew Lunn
2024-05-31 15:13 ` Piergiorgio Beruto
2024-06-03 6:55 ` Parthiban.Veerasooran
2024-06-05 21:40 ` Selvamani Rajagopal
2024-06-05 23:43 ` Andrew Lunn
2024-06-06 0:35 ` Selvamani Rajagopal
2024-06-06 13:12 ` Andrew Lunn
2024-06-07 4:40 ` Selvamani Rajagopal
2024-06-03 6:55 ` Parthiban.Veerasooran
2024-04-22 23:43 ` Andrew Lunn
2024-04-28 21:16 ` [PATCH net-next v4 13/12] net: lan865x: optional hardware reset Ramón Nordin Rodriguez
2024-04-28 23:17 ` Andrew Lunn
2024-04-29 10:42 ` Ramón Nordin Rodriguez
2024-04-29 6:09 ` Parthiban.Veerasooran
2024-04-29 10:38 ` Ramón Nordin Rodriguez
2024-04-29 12:19 ` Andrew Lunn
2024-04-30 8:04 ` Ramón Nordin Rodriguez
2024-04-30 13:30 ` Parthiban.Veerasooran
2024-04-30 14:14 ` Andrew Lunn
2024-05-02 10:10 ` Parthiban.Veerasooran
2024-04-29 6:09 ` Krzysztof Kozlowski
2024-04-29 10:44 ` Ramón Nordin Rodriguez
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=Zi1Tang5RQMmEFdx@builder \
--to=ramon.nordin.rodriguez@ferroamp.se \
--cc=Nicolas.Ferre@microchip.com \
--cc=Parthiban.Veerasooran@microchip.com \
--cc=Pier.Beruto@onsemi.com \
--cc=Selvamani.Rajagopal@onsemi.com \
--cc=Thorsten.Kummermehr@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=andrew@lunn.ch \
--cc=anthony.l.nguyen@intel.com \
--cc=benjamin.bigler@bernformulastudent.ch \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=horatiu.vultur@microchip.com \
--cc=horms@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh+dt@kernel.org \
--cc=ruanjinjie@huawei.com \
--cc=saeedm@nvidia.com \
--cc=steen.hegelund@microchip.com \
--cc=vladimir.oltean@nxp.com \
/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.