mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 14:38:58 +00:00
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:
parent
c8ef618ae1
commit
d1471948f3
3 changed files with 27 additions and 39 deletions
|
@ -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 {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <linux/io.h>
|
||||
#include <miiphy.h>
|
||||
#include <netdev.h>
|
||||
#include <status_led.h>
|
||||
#include <led.h>
|
||||
#include <asm/arch/cpu.h>
|
||||
#include <asm/arch/soc.h>
|
||||
#include <asm/arch/mpp.h>
|
||||
|
@ -41,41 +41,6 @@
|
|||
|
||||
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)
|
||||
{
|
||||
/*
|
||||
|
@ -165,8 +130,6 @@ int board_init(void)
|
|||
/* address of boot parameters */
|
||||
gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100;
|
||||
|
||||
status_led_set(&amber_solid);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -196,7 +159,16 @@ int mv88e61xx_hw_reset(struct phy_device *phydev)
|
|||
#ifdef CONFIG_MISC_INIT_R
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -46,6 +46,8 @@ CONFIG_DM_I2C=y
|
|||
CONFIG_SYS_I2C_MVTWSI=y
|
||||
CONFIG_I2C_MUX=y
|
||||
CONFIG_I2C_MUX_PCA954x=y
|
||||
CONFIG_LED=y
|
||||
CONFIG_LED_GPIO=y
|
||||
# CONFIG_MMC is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_DM_SPI_FLASH=y
|
||||
|
|
Loading…
Add table
Reference in a new issue