Message ID | 1524817045-31252-4-git-send-email-ley.foon.tan@intel.com |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
Series | drivers: Add reset ctrl to drivers | expand |
On Fri, Apr 27, 2018 at 4:17 PM, Ley Foon Tan <ley.foon.tan@intel.com> wrote: > Add code to reset all reset signals as in Ethernet DT node. A reset property is an optional feature, > so only print out a warning and do not fail if a reset property is not present. > > If a reset property is discovered, then use it to deassert, thus bringing the > IP out of reset. > > Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com> > --- > drivers/net/designware.c | 13 +++++++++++++ > 1 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/designware.c b/drivers/net/designware.c > index 43670a7..e34f3fb 100644 > --- a/drivers/net/designware.c > +++ b/drivers/net/designware.c > @@ -16,6 +16,7 @@ > #include <miiphy.h> > #include <malloc.h> > #include <pci.h> > +#include <reset.h> > #include <linux/compiler.h> > #include <linux/err.h> > #include <linux/kernel.h> > @@ -713,6 +714,18 @@ int designware_eth_probe(struct udevice *dev) > } > #endif > > +#ifdef CONFIG_DM_RESET > + struct reset_ctl_bulk reset_bulk; > + > + ret = reset_get_bulk(dev, &reset_bulk); > + if (ret) { > + dev_warn(dev, "Can't get reset: %d\n", ret); > + return; Shouldn't return here, will fix in next revision. > + } > + > + reset_deassert_bulk(&reset_bulk); > +#endif > + > #ifdef CONFIG_DM_PCI > /* > * If we are on PCI bus, either directly attached to a PCI root port, > -- > 1.7.1 > Regards Ley Foon
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 43670a7..e34f3fb 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -16,6 +16,7 @@ #include <miiphy.h> #include <malloc.h> #include <pci.h> +#include <reset.h> #include <linux/compiler.h> #include <linux/err.h> #include <linux/kernel.h> @@ -713,6 +714,18 @@ int designware_eth_probe(struct udevice *dev) } #endif +#ifdef CONFIG_DM_RESET + struct reset_ctl_bulk reset_bulk; + + ret = reset_get_bulk(dev, &reset_bulk); + if (ret) { + dev_warn(dev, "Can't get reset: %d\n", ret); + return; + } + + reset_deassert_bulk(&reset_bulk); +#endif + #ifdef CONFIG_DM_PCI /* * If we are on PCI bus, either directly attached to a PCI root port,
Add code to reset all reset signals as in Ethernet DT node. A reset property is an optional feature, so only print out a warning and do not fail if a reset property is not present. If a reset property is discovered, then use it to deassert, thus bringing the IP out of reset. Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com> --- drivers/net/designware.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-)