ARM: kirkwood: SBx81LIFKW: remove direct access of GPIO registers

Replace code that accessed the GPIO registers directly with code that
makes use of the LED_GPIO driver.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
Chris Packham 2022-08-04 21:06:23 +12:00 committed by Stefan Roese
parent c8ef618ae1
commit d1471948f3
3 changed files with 27 additions and 39 deletions

View File

@ -70,6 +70,20 @@
}; };
}; };
}; };
gpio-leds {
compatible = "gpio-leds";
ledn {
label = "status:ledn";
gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
};
ledp {
label = "status:ledp";
gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
};
};
}; };
&spi0 { &spi0 {

View File

@ -13,7 +13,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <miiphy.h> #include <miiphy.h>
#include <netdev.h> #include <netdev.h>
#include <status_led.h> #include <led.h>
#include <asm/arch/cpu.h> #include <asm/arch/cpu.h>
#include <asm/arch/soc.h> #include <asm/arch/soc.h>
#include <asm/arch/mpp.h> #include <asm/arch/mpp.h>
@ -41,41 +41,6 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
struct led {
u32 reg;
u32 value;
u32 mask;
};
struct led amber_solid = {
MVEBU_GPIO0_BASE,
BIT(10),
BIT(18) | BIT(10)
};
struct led green_solid = {
MVEBU_GPIO0_BASE,
BIT(18) | BIT(10),
BIT(18) | BIT(10)
};
struct led amber_flash = {
MVEBU_GPIO0_BASE,
0,
BIT(18) | BIT(10)
};
struct led green_flash = {
MVEBU_GPIO0_BASE,
BIT(18),
BIT(18) | BIT(10)
};
static void status_led_set(struct led *led)
{
clrsetbits_le32(led->reg, led->mask, led->value);
}
int board_early_init_f(void) int board_early_init_f(void)
{ {
/* /*
@ -165,8 +130,6 @@ int board_init(void)
/* address of boot parameters */ /* address of boot parameters */
gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100; gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100;
status_led_set(&amber_solid);
return 0; return 0;
} }
@ -196,7 +159,16 @@ int mv88e61xx_hw_reset(struct phy_device *phydev)
#ifdef CONFIG_MISC_INIT_R #ifdef CONFIG_MISC_INIT_R
int misc_init_r(void) int misc_init_r(void)
{ {
status_led_set(&green_flash); struct udevice *dev;
int ret;
ret = led_get_by_label("status:ledp", &dev);
if (!ret)
led_set_state(dev, LEDST_ON);
ret = led_get_by_label("status:ledn", &dev);
if (!ret)
led_set_state(dev, LEDST_OFF);
return 0; return 0;
} }

View File

@ -46,6 +46,8 @@ CONFIG_DM_I2C=y
CONFIG_SYS_I2C_MVTWSI=y CONFIG_SYS_I2C_MVTWSI=y
CONFIG_I2C_MUX=y CONFIG_I2C_MUX=y
CONFIG_I2C_MUX_PCA954x=y CONFIG_I2C_MUX_PCA954x=y
CONFIG_LED=y
CONFIG_LED_GPIO=y
# CONFIG_MMC is not set # CONFIG_MMC is not set
CONFIG_MTD=y CONFIG_MTD=y
CONFIG_DM_SPI_FLASH=y CONFIG_DM_SPI_FLASH=y