summaryrefslogtreecommitdiff
path: root/board/alliedtelesis
diff options
context:
space:
mode:
authorChris Packham <judge.packham@gmail.com>2022-08-04 21:06:24 +1200
committerStefan Roese <sr@denx.de>2022-08-09 08:58:27 +0200
commit923d0a899344350ad3e1f53f95b3f9aa85307b2e (patch)
tree7c5b0b76c627ebcac0e6d74521dfb8ed4be87033 /board/alliedtelesis
parentd1471948f336be8cd754cdc2d826e47e8d3e6c2c (diff)
ARM: kirkwood: SBx81LIFKW: update for DM_GPIO
Update mv88e61xx_hw_reset() to use the DM_GPIO API to toggle the reset line for the linkstreet switch. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'board/alliedtelesis')
-rw-r--r--board/alliedtelesis/SBx81LIFKW/sbx81lifkw.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/board/alliedtelesis/SBx81LIFKW/sbx81lifkw.c b/board/alliedtelesis/SBx81LIFKW/sbx81lifkw.c
index feb8b6b83f..e0a7f3fa89 100644
--- a/board/alliedtelesis/SBx81LIFKW/sbx81lifkw.c
+++ b/board/alliedtelesis/SBx81LIFKW/sbx81lifkw.c
@@ -17,7 +17,8 @@
#include <asm/arch/cpu.h>
#include <asm/arch/soc.h>
#include <asm/arch/mpp.h>
-#include <asm/arch/gpio.h>
+#include <asm-generic/gpio.h>
+#include <dm.h>
/* Note: GPIO differences between specific boards
*
@@ -37,8 +38,6 @@
#define SBX81LIFKW_OE_VAL_LOW (BIT(31) | BIT(30) | BIT(28) | BIT(27))
#define SBX81LIFKW_OE_VAL_HIGH (BIT(0) | BIT(1))
-#define MV88E6097_RESET 27
-
DECLARE_GLOBAL_DATA_PTR;
int board_early_init_f(void)
@@ -143,11 +142,23 @@ void reset_phy(void)
#ifdef CONFIG_MV88E61XX_SWITCH
int mv88e61xx_hw_reset(struct phy_device *phydev)
{
+ struct gpio_desc desc;
+ int ret;
+
+ ret = dm_gpio_lookup_name("mvebu0_27", &desc);
+ if (ret)
+ return ret;
+
+ ret = dm_gpio_request(&desc, "linkstreet_rst");
+ if (ret)
+ return ret;
+
/* Ensure the 88e6097 gets at least 10ms Reset
*/
- kw_gpio_set_value(MV88E6097_RESET, 0);
+ dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
+ dm_gpio_set_value(&desc, 0);
mdelay(20);
- kw_gpio_set_value(MV88E6097_RESET, 1);
+ dm_gpio_set_value(&desc, 1);
mdelay(20);
phydev->advertising = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full;