Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1533660

[PATCH net-next 2/6] net: dsa: mv88e6xxx: add helper to hardware reset

From Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Newsgroups linux.kernel
Subject [PATCH net-next 2/6] net: dsa: mv88e6xxx: add helper to hardware reset
Date 2016-12-01 00:10 +0100
Message-ID <sJmaK-472-31@gated-at.bofh.it> (permalink)
References <sJmaJ-472-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Add an helper to toggle the eventual GPIO connected to the reset pin.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
---
 drivers/net/dsa/mv88e6xxx/chip.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index c89701e..4a862c2 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2361,6 +2361,19 @@ static void mv88e6xxx_port_bridge_leave(struct dsa_switch *ds, int port)
 	mutex_unlock(&chip->reg_lock);
 }
 
+static void mv88e6xxx_hardware_reset(struct mv88e6xxx_chip *chip)
+{
+	struct gpio_desc *gpiod = chip->reset;
+
+	/* If there is a GPIO connected to the reset pin, toggle it */
+	if (gpiod) {
+		gpiod_set_value_cansleep(gpiod, 1);
+		usleep_range(10000, 20000);
+		gpiod_set_value_cansleep(gpiod, 0);
+		usleep_range(10000, 20000);
+	}
+}
+
 static int mv88e6xxx_disable_ports(struct mv88e6xxx_chip *chip)
 {
 	int i, err;
@@ -2385,7 +2398,6 @@ static int mv88e6xxx_switch_reset(struct mv88e6xxx_chip *chip)
 {
 	bool ppu_active = mv88e6xxx_has(chip, MV88E6XXX_FLAG_PPU_ACTIVE);
 	u16 is_reset = (ppu_active ? 0x8800 : 0xc800);
-	struct gpio_desc *gpiod = chip->reset;
 	unsigned long timeout;
 	u16 reg;
 	int err;
@@ -2394,13 +2406,7 @@ static int mv88e6xxx_switch_reset(struct mv88e6xxx_chip *chip)
 	if (err)
 		return err;
 
-	/* If there is a gpio connected to the reset pin, toggle it */
-	if (gpiod) {
-		gpiod_set_value_cansleep(gpiod, 1);
-		usleep_range(10000, 20000);
-		gpiod_set_value_cansleep(gpiod, 0);
-		usleep_range(10000, 20000);
-	}
+	mv88e6xxx_hardware_reset(chip);
 
 	/* Reset the switch. Keep the PPU active if requested. The PPU
 	 * needs to be active to support indirect phy register access
-- 
2.10.2

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH net-next 0/6] net: dsa: mv88e6xxx: rework reset and PPU code Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 00:10 +0100
  [PATCH net-next 6/6] net: dsa: mv88e6xxx: add PPU enable/disable ops Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 00:10 +0100
  [PATCH net-next 2/6] net: dsa: mv88e6xxx: add helper to hardware reset Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 00:10 +0100
    Re: [PATCH net-next 2/6] net: dsa: mv88e6xxx: add helper to hardware  reset Andrew Lunn <andrew@lunn.ch> - 2016-12-01 00:30 +0100
  [PATCH net-next 1/6] net: dsa: mv88e6xxx: add helper to disable ports Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 00:10 +0100
    Re: [PATCH net-next 1/6] net: dsa: mv88e6xxx: add helper to disable  ports Andrew Lunn <andrew@lunn.ch> - 2016-12-01 00:30 +0100
  [PATCH net-next 3/6] net: dsa: mv88e6xxx: add a software reset op Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 00:10 +0100
    Re: [PATCH net-next 3/6] net: dsa: mv88e6xxx: add a software reset op Andrew Lunn <andrew@lunn.ch> - 2016-12-01 00:30 +0100
      Re: [PATCH net-next 3/6] net: dsa: mv88e6xxx: add a software reset op Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 21:50 +0100
        Re: [PATCH net-next 3/6] net: dsa: mv88e6xxx: add a software reset op Andrew Lunn <andrew@lunn.ch> - 2016-12-02 16:50 +0100
          Re: [PATCH net-next 3/6] net: dsa: mv88e6xxx: add a software reset op Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-02 18:40 +0100
    Re: [PATCH net-next 3/6] net: dsa: mv88e6xxx: add a software reset  op David Miller <davem@davemloft.net> - 2016-12-02 18:30 +0100
  [PATCH net-next 5/6] net: dsa: mv88e6xxx: add helper for switch ready Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 00:10 +0100
    Re: [PATCH net-next 5/6] net: dsa: mv88e6xxx: add helper for switch  ready Andrew Lunn <andrew@lunn.ch> - 2016-12-01 00:40 +0100
      Re: [PATCH net-next 5/6] net: dsa: mv88e6xxx: add helper for switch ready Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 21:40 +0100
  [PATCH net-next 4/6] net: dsa: mv88e6xxx: add a PPU polling op Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2016-12-01 00:10 +0100

csiph-web