From: Oleksij Rempel <o.rempel@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Oleksij Rempel <o.rempel@pengutronix.de>
Subject: [PATCH v2 2/3] net: fec_imx: add regulator support
Date: Tue, 16 Jul 2019 12:35:56 +0200 [thread overview]
Message-ID: <20190716103557.17446-2-o.rempel@pengutronix.de> (raw)
In-Reply-To: <20190716103557.17446-1-o.rempel@pengutronix.de>
at least imx28-evk need it to work with devicetree
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
drivers/net/fec_imx.c | 19 +++++++++++++++++++
drivers/net/fec_imx.h | 1 +
2 files changed, 20 insertions(+)
diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
index 38a29fc83e..31c9102189 100644
--- a/drivers/net/fec_imx.c
+++ b/drivers/net/fec_imx.c
@@ -19,6 +19,7 @@
#include <linux/err.h>
#include <of_net.h>
#include <of_gpio.h>
+#include <regulator.h>
#include <gpio.h>
#include <linux/iopoll.h>
@@ -776,6 +777,21 @@ static int fec_probe(struct device_d *dev)
}
fec->regs = IOMEM(iores->start);
+ fec->reg_phy = regulator_get(dev, "phy");
+ if (IS_ERR(fec->reg_phy)) {
+ if (PTR_ERR(fec->reg_phy) == -EPROBE_DEFER) {
+ ret = -EPROBE_DEFER;
+ goto disable_clk;
+ }
+ fec->reg_phy = NULL;
+ }
+
+ ret = regulator_enable(fec->reg_phy);
+ if (ret) {
+ dev_err(dev, "Failed to enable phy regulator: %d\n", ret);
+ goto disable_clk;
+ }
+
phy_reset = of_get_named_gpio(dev->device_node, "phy-reset-gpios", 0);
if (gpio_is_valid(phy_reset)) {
of_property_read_u32(dev->device_node, "phy-reset-duration", &msec);
@@ -868,6 +884,9 @@ free_gpio:
if (gpio_is_valid(phy_reset))
gpio_free(phy_reset);
release_res:
+ if (fec->reg_phy)
+ regulator_disable(fec->reg_phy);
+
release_region(iores);
disable_clk:
fec_clk_disable(fec);
diff --git a/drivers/net/fec_imx.h b/drivers/net/fec_imx.h
index 1a1fbc9872..d1ac92f0e3 100644
--- a/drivers/net/fec_imx.h
+++ b/drivers/net/fec_imx.h
@@ -152,6 +152,7 @@ struct fec_priv {
struct clk *clk[FEC_CLK_NUM];
struct clk *opt_clk[FEC_OPT_CLK_NUM];
enum fec_type type;
+ struct regulator *reg_phy;
};
static inline int fec_is_imx27(struct fec_priv *priv)
--
2.20.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2019-07-16 10:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-16 10:35 [PATCH v2 1/3] OF: gpio: Add special quirk to parse regulator flags Oleksij Rempel
2019-07-16 10:35 ` Oleksij Rempel [this message]
2019-07-16 10:35 ` [PATCH v2 3/3] arm: port imx28-evk to devicetree Oleksij Rempel
2019-07-17 9:25 ` [PATCH v2 1/3] OF: gpio: Add special quirk to parse regulator flags Sascha Hauer
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=20190716103557.17446-2-o.rempel@pengutronix.de \
--to=o.rempel@pengutronix.de \
--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