From: Jerome Brunet <jbrunet@baylibre.com>
To: Andrew Lunn <andrew@lunn.ch>, Florian Fainelli <f.fainelli@gmail.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>,
Kevin Hilman <khilman@baylibre.com>,
netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [PATCH net-next v2 7/8] net: phy: meson-gxl: add interrupt support
Date: Thu, 7 Dec 2017 15:27:14 +0100 [thread overview]
Message-ID: <20171207142715.32578-8-jbrunet@baylibre.com> (raw)
In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com>
Enable interrupt support in meson-gxl PHY driver
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
drivers/net/phy/meson-gxl.c | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c
index 5325940fe899..861b021b9758 100644
--- a/drivers/net/phy/meson-gxl.c
+++ b/drivers/net/phy/meson-gxl.c
@@ -33,6 +33,14 @@
#define TSTCNTL_WRITE_ADDRESS GENMASK(4, 0)
#define TSTREAD1 21
#define TSTWRITE 23
+#define INTSRC_FLAG 29
+#define INTSRC_ANEG_PR BIT(1)
+#define INTSRC_PARALLEL_FAULT BIT(2)
+#define INTSRC_ANEG_LP_ACK BIT(3)
+#define INTSRC_LINK_DOWN BIT(4)
+#define INTSRC_REMOTE_FAULT BIT(5)
+#define INTSRC_ANEG_COMPLETE BIT(6)
+#define INTSRC_MASK 30
#define BANK_ANALOG_DSP 0
#define BANK_WOL 1
@@ -193,17 +201,44 @@ int meson_gxl_read_status(struct phy_device *phydev)
return genphy_read_status(phydev);
}
+static int meson_gxl_ack_interrupt(struct phy_device *phydev)
+{
+ int ret = phy_read(phydev, INTSRC_FLAG);
+
+ return ret < 0 ? ret : 0;
+}
+
+static int meson_gxl_config_intr(struct phy_device *phydev)
+{
+ u16 val;
+
+ if (phydev->interrupts == PHY_INTERRUPT_ENABLED) {
+ val = INTSRC_ANEG_PR
+ | INTSRC_PARALLEL_FAULT
+ | INTSRC_ANEG_LP_ACK
+ | INTSRC_LINK_DOWN
+ | INTSRC_REMOTE_FAULT
+ | INTSRC_ANEG_COMPLETE;
+ } else {
+ val = 0;
+ }
+
+ return phy_write(phydev, INTSRC_MASK, val);
+}
+
static struct phy_driver meson_gxl_phy[] = {
{
.phy_id = 0x01814400,
.phy_id_mask = 0xfffffff0,
.name = "Meson GXL Internal PHY",
.features = PHY_BASIC_FEATURES,
- .flags = PHY_IS_INTERNAL,
+ .flags = PHY_IS_INTERNAL | PHY_HAS_INTERRUPT,
.config_init = meson_gxl_config_init,
.config_aneg = genphy_config_aneg,
.aneg_done = genphy_aneg_done,
.read_status = meson_gxl_read_status,
+ .ack_interrupt = meson_gxl_ack_interrupt,
+ .config_intr = meson_gxl_config_intr,
.suspend = genphy_suspend,
.resume = genphy_resume,
},
--
2.14.3
WARNING: multiple messages have this Message-ID (diff)
From: jbrunet@baylibre.com (Jerome Brunet)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH net-next v2 7/8] net: phy: meson-gxl: add interrupt support
Date: Thu, 7 Dec 2017 15:27:14 +0100 [thread overview]
Message-ID: <20171207142715.32578-8-jbrunet@baylibre.com> (raw)
In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com>
Enable interrupt support in meson-gxl PHY driver
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
drivers/net/phy/meson-gxl.c | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c
index 5325940fe899..861b021b9758 100644
--- a/drivers/net/phy/meson-gxl.c
+++ b/drivers/net/phy/meson-gxl.c
@@ -33,6 +33,14 @@
#define TSTCNTL_WRITE_ADDRESS GENMASK(4, 0)
#define TSTREAD1 21
#define TSTWRITE 23
+#define INTSRC_FLAG 29
+#define INTSRC_ANEG_PR BIT(1)
+#define INTSRC_PARALLEL_FAULT BIT(2)
+#define INTSRC_ANEG_LP_ACK BIT(3)
+#define INTSRC_LINK_DOWN BIT(4)
+#define INTSRC_REMOTE_FAULT BIT(5)
+#define INTSRC_ANEG_COMPLETE BIT(6)
+#define INTSRC_MASK 30
#define BANK_ANALOG_DSP 0
#define BANK_WOL 1
@@ -193,17 +201,44 @@ int meson_gxl_read_status(struct phy_device *phydev)
return genphy_read_status(phydev);
}
+static int meson_gxl_ack_interrupt(struct phy_device *phydev)
+{
+ int ret = phy_read(phydev, INTSRC_FLAG);
+
+ return ret < 0 ? ret : 0;
+}
+
+static int meson_gxl_config_intr(struct phy_device *phydev)
+{
+ u16 val;
+
+ if (phydev->interrupts == PHY_INTERRUPT_ENABLED) {
+ val = INTSRC_ANEG_PR
+ | INTSRC_PARALLEL_FAULT
+ | INTSRC_ANEG_LP_ACK
+ | INTSRC_LINK_DOWN
+ | INTSRC_REMOTE_FAULT
+ | INTSRC_ANEG_COMPLETE;
+ } else {
+ val = 0;
+ }
+
+ return phy_write(phydev, INTSRC_MASK, val);
+}
+
static struct phy_driver meson_gxl_phy[] = {
{
.phy_id = 0x01814400,
.phy_id_mask = 0xfffffff0,
.name = "Meson GXL Internal PHY",
.features = PHY_BASIC_FEATURES,
- .flags = PHY_IS_INTERNAL,
+ .flags = PHY_IS_INTERNAL | PHY_HAS_INTERRUPT,
.config_init = meson_gxl_config_init,
.config_aneg = genphy_config_aneg,
.aneg_done = genphy_aneg_done,
.read_status = meson_gxl_read_status,
+ .ack_interrupt = meson_gxl_ack_interrupt,
+ .config_intr = meson_gxl_config_intr,
.suspend = genphy_suspend,
.resume = genphy_resume,
},
--
2.14.3
WARNING: multiple messages have this Message-ID (diff)
From: jbrunet@baylibre.com (Jerome Brunet)
To: linus-amlogic@lists.infradead.org
Subject: [PATCH net-next v2 7/8] net: phy: meson-gxl: add interrupt support
Date: Thu, 7 Dec 2017 15:27:14 +0100 [thread overview]
Message-ID: <20171207142715.32578-8-jbrunet@baylibre.com> (raw)
In-Reply-To: <20171207142715.32578-1-jbrunet@baylibre.com>
Enable interrupt support in meson-gxl PHY driver
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
drivers/net/phy/meson-gxl.c | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c
index 5325940fe899..861b021b9758 100644
--- a/drivers/net/phy/meson-gxl.c
+++ b/drivers/net/phy/meson-gxl.c
@@ -33,6 +33,14 @@
#define TSTCNTL_WRITE_ADDRESS GENMASK(4, 0)
#define TSTREAD1 21
#define TSTWRITE 23
+#define INTSRC_FLAG 29
+#define INTSRC_ANEG_PR BIT(1)
+#define INTSRC_PARALLEL_FAULT BIT(2)
+#define INTSRC_ANEG_LP_ACK BIT(3)
+#define INTSRC_LINK_DOWN BIT(4)
+#define INTSRC_REMOTE_FAULT BIT(5)
+#define INTSRC_ANEG_COMPLETE BIT(6)
+#define INTSRC_MASK 30
#define BANK_ANALOG_DSP 0
#define BANK_WOL 1
@@ -193,17 +201,44 @@ int meson_gxl_read_status(struct phy_device *phydev)
return genphy_read_status(phydev);
}
+static int meson_gxl_ack_interrupt(struct phy_device *phydev)
+{
+ int ret = phy_read(phydev, INTSRC_FLAG);
+
+ return ret < 0 ? ret : 0;
+}
+
+static int meson_gxl_config_intr(struct phy_device *phydev)
+{
+ u16 val;
+
+ if (phydev->interrupts == PHY_INTERRUPT_ENABLED) {
+ val = INTSRC_ANEG_PR
+ | INTSRC_PARALLEL_FAULT
+ | INTSRC_ANEG_LP_ACK
+ | INTSRC_LINK_DOWN
+ | INTSRC_REMOTE_FAULT
+ | INTSRC_ANEG_COMPLETE;
+ } else {
+ val = 0;
+ }
+
+ return phy_write(phydev, INTSRC_MASK, val);
+}
+
static struct phy_driver meson_gxl_phy[] = {
{
.phy_id = 0x01814400,
.phy_id_mask = 0xfffffff0,
.name = "Meson GXL Internal PHY",
.features = PHY_BASIC_FEATURES,
- .flags = PHY_IS_INTERNAL,
+ .flags = PHY_IS_INTERNAL | PHY_HAS_INTERRUPT,
.config_init = meson_gxl_config_init,
.config_aneg = genphy_config_aneg,
.aneg_done = genphy_aneg_done,
.read_status = meson_gxl_read_status,
+ .ack_interrupt = meson_gxl_ack_interrupt,
+ .config_intr = meson_gxl_config_intr,
.suspend = genphy_suspend,
.resume = genphy_resume,
},
--
2.14.3
next prev parent reply other threads:[~2017-12-07 14:28 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-07 14:27 [PATCH net-next v2 0/8] phy: net: meson-gxl: clean-up and improvements Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` [PATCH net-next v2 1/8] net: phy: meson-gxl: check phy_write return value Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 15:34 ` Andrew Lunn
2017-12-07 15:34 ` Andrew Lunn
2017-12-07 15:34 ` Andrew Lunn
2017-12-07 14:27 ` [PATCH net-next v2 2/8] net: phy: meson-gxl: define control registers Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` [PATCH net-next v2 3/8] net: phy: meson-gxl: add read and write helpers for bank registers Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 15:46 ` Andrew Lunn
2017-12-07 15:46 ` Andrew Lunn
2017-12-07 15:46 ` Andrew Lunn
2017-12-07 15:49 ` Neil Armstrong
2017-12-07 15:49 ` Neil Armstrong
2017-12-07 15:49 ` Neil Armstrong
2017-12-07 15:51 ` Jerome Brunet
2017-12-07 15:51 ` Jerome Brunet
2017-12-07 15:51 ` Jerome Brunet
2017-12-07 16:02 ` Andrew Lunn
2017-12-07 16:02 ` Andrew Lunn
2017-12-07 16:02 ` Andrew Lunn
2017-12-08 9:11 ` Russell King - ARM Linux
2017-12-08 9:11 ` Russell King - ARM Linux
2017-12-08 9:11 ` Russell King - ARM Linux
2017-12-07 14:27 ` [PATCH net-next v2 4/8] net: phy: meson-gxl: use genphy_config_init Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 15:46 ` Andrew Lunn
2017-12-07 15:46 ` Andrew Lunn
2017-12-07 15:46 ` Andrew Lunn
2017-12-07 15:46 ` Andrew Lunn
2017-12-07 14:27 ` [PATCH net-next v2 5/8] net: phy: meson-gxl: detect LPA corruption Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 15:34 ` Andrew Lunn
2017-12-07 15:34 ` Andrew Lunn
2017-12-07 15:34 ` Andrew Lunn
2017-12-07 15:42 ` Jerome Brunet
2017-12-07 15:42 ` Jerome Brunet
2017-12-07 15:42 ` Jerome Brunet
2017-12-07 16:12 ` Andrew Lunn
2017-12-07 16:12 ` Andrew Lunn
2017-12-07 16:12 ` Andrew Lunn
2017-12-07 16:22 ` Jerome Brunet
2017-12-07 16:22 ` Jerome Brunet
2017-12-07 16:22 ` Jerome Brunet
2017-12-07 14:27 ` [PATCH net-next v2 6/8] net: phy: meson-gxl: leave CONFIG_A6 untouched Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 15:49 ` Andrew Lunn
2017-12-07 15:49 ` Andrew Lunn
2017-12-07 15:49 ` Andrew Lunn
2017-12-07 15:49 ` Andrew Lunn
2017-12-07 15:56 ` Jerome Brunet
2017-12-07 15:56 ` Jerome Brunet
2017-12-07 15:56 ` Jerome Brunet
2017-12-07 15:56 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet [this message]
2017-12-07 14:27 ` [PATCH net-next v2 7/8] net: phy: meson-gxl: add interrupt support Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 15:54 ` Andrew Lunn
2017-12-07 15:54 ` Andrew Lunn
2017-12-07 15:54 ` Andrew Lunn
2017-12-07 16:04 ` Jerome Brunet
2017-12-07 16:04 ` Jerome Brunet
2017-12-07 16:04 ` Jerome Brunet
2017-12-07 16:07 ` Andrew Lunn
2017-12-07 16:07 ` Andrew Lunn
2017-12-07 16:07 ` Andrew Lunn
2017-12-07 14:27 ` [PATCH net-next v2 8/8] net: phy: meson-gxl: join the authors Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 14:27 ` Jerome Brunet
2017-12-07 15:55 ` Andrew Lunn
2017-12-07 15:55 ` Andrew Lunn
2017-12-07 15:55 ` Andrew Lunn
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=20171207142715.32578-8-jbrunet@baylibre.com \
--to=jbrunet@baylibre.com \
--cc=andrew@lunn.ch \
--cc=f.fainelli@gmail.com \
--cc=khilman@baylibre.com \
--cc=linux-amlogic@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--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.