Patchwork [U-Boot,v4,3/3] mx23_olinuxino: Add support for status LED

login
register
mail settings
Submitter Otavio Salvador
Date Jan. 28, 2013, 3:51 p.m.
Message ID <1359388311-25487-3-git-send-email-otavio@ossystems.com.br>
Download mbox | patch
Permalink /patch/216233/
State Not Applicable
Headers show

Comments

Otavio Salvador - Jan. 28, 2013, 3:51 p.m.
This allow user to know if the bootloader is running, even without a
serial console.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v4:
- Use MUX PIN macro

Changes in v3:
- Added the MUX settings back (requested by Fabio)
- Added name of the PIN in the board config file

Changes in v2:
- Remove MUX setting - not need

 board/olimex/mx23_olinuxino/mx23_olinuxino.c |  7 +++++++
 board/olimex/mx23_olinuxino/spl_boot.c       |  4 ++++
 include/configs/mx23_olinuxino.h             | 14 ++++++++++++++
 3 files changed, 25 insertions(+)
Fabio Estevam - Jan. 28, 2013, 6:59 p.m.
On Mon, Jan 28, 2013 at 1:51 PM, Otavio Salvador
<otavio@ossystems.com.br> wrote:

>  /*
> + * Status LED
> + */
> +#define        CONFIG_STATUS_LED
> +#define        CONFIG_GPIO_LED
> +#define        CONFIG_BOARD_SPECIFIC_LED
> +#define        STATUS_LED_BOOT 0
> +#define        STATUS_LED_BIT  MX23_PAD_SSP1_DETECT__GPIO_2_1

Is this really correct?

#define MX23_PAD_SSP1_DETECT__GPIO_2_1		MXS_IOMUX_PAD_NAKED(2,  1,
PAD_MUXSEL_GPIO)

Does the LED API need this symbol?

I thought that you would only need to setup this pin as GPIO and then
define something like:
+#define        STATUS_LED_BIT 1
Otavio Salvador - Jan. 28, 2013, 7:12 p.m.
On Mon, Jan 28, 2013 at 4:59 PM, Fabio Estevam <festevam@gmail.com> wrote:
> On Mon, Jan 28, 2013 at 1:51 PM, Otavio Salvador
> <otavio@ossystems.com.br> wrote:
>
>>  /*
>> + * Status LED
>> + */
>> +#define        CONFIG_STATUS_LED
>> +#define        CONFIG_GPIO_LED
>> +#define        CONFIG_BOARD_SPECIFIC_LED
>> +#define        STATUS_LED_BOOT 0
>> +#define        STATUS_LED_BIT  MX23_PAD_SSP1_DETECT__GPIO_2_1
>
> Is this really correct?
>
> #define MX23_PAD_SSP1_DETECT__GPIO_2_1          MXS_IOMUX_PAD_NAKED(2,  1,
> PAD_MUXSEL_GPIO)
>
> Does the LED API need this symbol?
>
> I thought that you would only need to setup this pin as GPIO and then
> define something like:
> +#define        STATUS_LED_BIT 1

Maybe it can be done in a better way ... but I failed to figure the
GPIO number to use. Any hint?

--
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

Patch

diff --git a/board/olimex/mx23_olinuxino/mx23_olinuxino.c b/board/olimex/mx23_olinuxino/mx23_olinuxino.c
index 6a6053b..2501417 100644
--- a/board/olimex/mx23_olinuxino/mx23_olinuxino.c
+++ b/board/olimex/mx23_olinuxino/mx23_olinuxino.c
@@ -28,6 +28,9 @@ 
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/sys_proto.h>
+#ifdef CONFIG_STATUS_LED
+#include <status_led.h>
+#endif
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -67,5 +70,9 @@  int board_init(void)
 	/* Adress of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
+#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
+	status_led_set(STATUS_LED_BOOT, STATUS_LED_STATE);
+#endif
+
 	return 0;
 }
diff --git a/board/olimex/mx23_olinuxino/spl_boot.c b/board/olimex/mx23_olinuxino/spl_boot.c
index 7def8bc..3bbf5ad 100644
--- a/board/olimex/mx23_olinuxino/spl_boot.c
+++ b/board/olimex/mx23_olinuxino/spl_boot.c
@@ -84,6 +84,10 @@  const iomux_cfg_t iomux_setup[] = {
 	MX23_PAD_EMI_RASN__EMI_RASN | MUX_CONFIG_EMI,
 	MX23_PAD_EMI_WEN__EMI_WEN | MUX_CONFIG_EMI,
 
+	/* Green LED */
+	MX23_PAD_SSP1_DETECT__GPIO_2_1 |
+		(MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_NOPULL),
+
 	/* MMC 0 */
 	MX23_PAD_SSP1_CMD__SSP1_CMD | MUX_CONFIG_SSP,
 	MX23_PAD_SSP1_DATA0__SSP1_DATA0 | MUX_CONFIG_SSP,
diff --git a/include/configs/mx23_olinuxino.h b/include/configs/mx23_olinuxino.h
index 7983c5d..d019944 100644
--- a/include/configs/mx23_olinuxino.h
+++ b/include/configs/mx23_olinuxino.h
@@ -19,6 +19,8 @@ 
 #ifndef __MX23_OLINUXINO_CONFIG_H__
 #define __MX23_OLINUXINO_CONFIG_H__
 
+#include <asm/arch/iomux-mx23.h>
+
 /*
  * SoC configurations
  */
@@ -56,6 +58,7 @@ 
 #define	CONFIG_CMD_EXT2
 #define	CONFIG_CMD_FAT
 #define	CONFIG_CMD_GPIO
+#define	CONFIG_CMD_LED
 #define	CONFIG_CMD_MMC
 
 /*
@@ -112,6 +115,17 @@ 
 #define	CONFIG_BAUDRATE			115200	/* Default baud rate */
 
 /*
+ * Status LED
+ */
+#define	CONFIG_STATUS_LED
+#define	CONFIG_GPIO_LED
+#define	CONFIG_BOARD_SPECIFIC_LED
+#define	STATUS_LED_BOOT	0
+#define	STATUS_LED_BIT	MX23_PAD_SSP1_DETECT__GPIO_2_1
+#define	STATUS_LED_STATE	STATUS_LED_ON
+#define	STATUS_LED_PERIOD	(CONFIG_SYS_HZ / 2)
+
+/*
  * MMC Driver
  */
 #ifdef	CONFIG_CMD_MMC