This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 62e1af457d stm32h7/linum-stm32h753bi: add support to leds
62e1af457d is described below

commit 62e1af457d1af0c7ce84150f7cae282600762f84
Author: Jorge Guzman <jorge....@gmail.com>
AuthorDate: Wed Mar 27 23:10:51 2024 -0300

    stm32h7/linum-stm32h753bi: add support to leds
    
    Signed-off-by: Jorge Guzman <jorge....@gmail.com>
---
 .../arm/stm32h7/boards/linum-stm32h753bi/index.rst | 32 ++++++++++--
 .../linum-stm32h753bi/configs/leds/defconfig       | 60 ++++++++++++++++++++++
 .../linum-stm32h753bi/src/linum-stm32h753bi.h      | 15 +++++-
 .../stm32h7/linum-stm32h753bi/src/stm32_userleds.c | 24 ++++-----
 4 files changed, 115 insertions(+), 16 deletions(-)

diff --git 
a/Documentation/platforms/arm/stm32h7/boards/linum-stm32h753bi/index.rst 
b/Documentation/platforms/arm/stm32h7/boards/linum-stm32h753bi/index.rst
index 5b671ace0a..0fa66201dd 100644
--- a/Documentation/platforms/arm/stm32h7/boards/linum-stm32h753bi/index.rst
+++ b/Documentation/platforms/arm/stm32h7/boards/linum-stm32h753bi/index.rst
@@ -51,8 +51,8 @@ Expansion connector 2 features.
 
 Board documentation: https://wittetech.com/
 
-LEDs
-====
+BOARD-LEDs
+==========
 
 The LINUM-STM32H753BI has 3 software controllable LEDs.
 
@@ -473,4 +473,30 @@ This example use the timer 4 with channel 2 to generate a 
PWM output signal on b
     pwm_main: stopping output
     nsh> pwm -f 300 -t 3
     pwm_main: starting output with frequency: 300 duty: 0000bfff
-    pwm_main: stopping output
\ No newline at end of file
+    pwm_main: stopping output
+
+leds
+------
+
+Example to blink 3 leds, the example use the gpios(PB0, PB1 and PC13) located 
on the expancion IO board::
+
+    nsh> leds
+    leds_main: Starting the led_daemon
+    leds_main: led_daemon started
+
+    led_daemon (pid# 3): Running
+    led_daemon: Opening /dev/userleds
+    led_daemon: Supported LEDs 0x07
+    led_daemon: LED set 0x01
+    nsh> led_daemon: LED set 0x02
+    led_daemon: LED set 0x03
+    led_daemon: LED set 0x04
+    led_daemon: LED set 0x05
+    led_daemon: LED set 0x06
+    led_daemon: LED set 0x07
+    led_daemon: LED set 0x06
+    led_daemon: LED set 0x05
+    led_daemon: LED set 0x04
+    led_daemon: LED set 0x03
+    led_daemon: LED set 0x02
+    led_daemon: LED set 0x01
\ No newline at end of file
diff --git a/boards/arm/stm32h7/linum-stm32h753bi/configs/leds/defconfig 
b/boards/arm/stm32h7/linum-stm32h753bi/configs/leds/defconfig
new file mode 100644
index 0000000000..9d63ecd082
--- /dev/null
+++ b/boards/arm/stm32h7/linum-stm32h753bi/configs/leds/defconfig
@@ -0,0 +1,60 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_NSH_DISABLE_IFCONFIG is not set
+# CONFIG_NSH_DISABLE_PS is not set
+# CONFIG_STANDARD_SERIAL is not set
+# CONFIG_STM32H7_USE_LEGACY_PINMAP is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="linum-stm32h753bi"
+CONFIG_ARCH_BOARD_LINUM_STM32H753BI=y
+CONFIG_ARCH_CHIP="stm32h7"
+CONFIG_ARCH_CHIP_STM32H753BI=y
+CONFIG_ARCH_CHIP_STM32H7=y
+CONFIG_ARCH_CHIP_STM32H7_CORTEXM7=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_ARMV7M_DCACHE=y
+CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y
+CONFIG_ARMV7M_DTCM=y
+CONFIG_ARMV7M_ICACHE=y
+CONFIG_BOARD_LOOPSPERMSEC=43103
+CONFIG_BUILTIN=y
+CONFIG_DEBUG_FEATURES=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_EXAMPLES_ALARM=y
+CONFIG_EXAMPLES_LEDS=y
+CONFIG_EXAMPLES_LEDS_LEDSET=0x07
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INTELHEX_BINARY=y
+CONFIG_LIBM=y
+CONFIG_MM_REGIONS=4
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_FILEIOSIZE=512
+CONFIG_NSH_LINELEN=64
+CONFIG_NSH_READLINE=y
+CONFIG_PREALLOC_TIMERS=4
+CONFIG_RAM_SIZE=245760
+CONFIG_RAM_START=0x20010000
+CONFIG_RAW_BINARY=y
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_RTC_ALARM=y
+CONFIG_RTC_DATETIME=y
+CONFIG_RTC_DRIVER=y
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=6
+CONFIG_START_MONTH=12
+CONFIG_START_YEAR=2011
+CONFIG_STM32H7_PWR=y
+CONFIG_STM32H7_RTC=y
+CONFIG_STM32H7_USART1=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_TASK_NAME_SIZE=0
+CONFIG_USART1_SERIAL_CONSOLE=y
+CONFIG_USERLED=y
+CONFIG_USERLED_LOWER=y
diff --git a/boards/arm/stm32h7/linum-stm32h753bi/src/linum-stm32h753bi.h 
b/boards/arm/stm32h7/linum-stm32h753bi/src/linum-stm32h753bi.h
index be4aad4890..2d9d3201af 100644
--- a/boards/arm/stm32h7/linum-stm32h753bi/src/linum-stm32h753bi.h
+++ b/boards/arm/stm32h7/linum-stm32h753bi/src/linum-stm32h753bi.h
@@ -36,7 +36,7 @@
 
 /* Configuration ************************************************************/
 
-/* LED */
+/* LED of board */
 
 #define GPIO_LD1       (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | \
                         GPIO_OUTPUT_SET | GPIO_PORTG | GPIO_PIN2)
@@ -49,6 +49,19 @@
 #define GPIO_LED_GREEN   GPIO_LD2
 #define GPIO_LED_BLUE    GPIO_LD3
 
+/* LED of shield */
+
+#define GPIO_LED1       (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | \
+                        GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN0)
+#define GPIO_LED2       (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | \
+                        GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN1)
+#define GPIO_LED3       (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | \
+                        GPIO_OUTPUT_SET | GPIO_PORTC | GPIO_PIN13)
+
+#define LED1_BIT    (1 << 0)
+#define LED2_BIT    (1 << 1)
+#define LED3_BIT    (1 << 2)
+#define LED_NUM     3
 /* Check if we can support the RTC driver */
 
 #define HAVE_RTC_DRIVER 1
diff --git a/boards/arm/stm32h7/linum-stm32h753bi/src/stm32_userleds.c 
b/boards/arm/stm32h7/linum-stm32h753bi/src/stm32_userleds.c
index 3120ff9357..b71af50b31 100644
--- a/boards/arm/stm32h7/linum-stm32h753bi/src/stm32_userleds.c
+++ b/boards/arm/stm32h7/linum-stm32h753bi/src/stm32_userleds.c
@@ -37,7 +37,7 @@
 #include "stm32.h"
 #include "linum-stm32h753bi.h"
 
-#ifndef CONFIG_ARCH_LEDS
+#ifdef CONFIG_USERLED
 
 /****************************************************************************
  * Private Data
@@ -47,9 +47,9 @@
 
 static uint32_t g_ledcfg[BOARD_NLEDS] =
 {
-  GPIO_LED_RED,
-  GPIO_LED_GREEN,
-  GPIO_LED_BLUE
+  GPIO_LED1,
+  GPIO_LED2,
+  GPIO_LED3
 };
 
 /****************************************************************************
@@ -165,10 +165,10 @@ uint32_t board_userled_initialize(void)
 {
   /* Configure LED1-4 GPIOs for output */
 
-  stm32_configgpio(GPIO_LED_RED);
-  stm32_configgpio(GPIO_LED_GREEN);
-  stm32_configgpio(GPIO_LED_BLUE);
-  return BOARD_NLEDS;
+  stm32_configgpio(GPIO_LED1);
+  stm32_configgpio(GPIO_LED2);
+  stm32_configgpio(GPIO_LED3);
+  return LED_NUM;
 }
 
 /****************************************************************************
@@ -177,7 +177,7 @@ uint32_t board_userled_initialize(void)
 
 void board_userled(int led, bool ledon)
 {
-  if ((unsigned)led < BOARD_NLEDS)
+  if ((unsigned)led < LED_NUM)
     {
       stm32_gpiowrite(g_ledcfg[led], ledon);
     }
@@ -189,9 +189,9 @@ void board_userled(int led, bool ledon)
 
 void board_userled_all(uint32_t ledset)
 {
-  stm32_gpiowrite(GPIO_LED_RED, (ledset & BOARD_LED1_BIT) == 0);
-  stm32_gpiowrite(GPIO_LED_GREEN, (ledset & BOARD_LED2_BIT) == 0);
-  stm32_gpiowrite(GPIO_LED_BLUE, (ledset & BOARD_LED3_BIT) == 0);
+  stm32_gpiowrite(GPIO_LED1, (ledset & LED1_BIT) == 0);
+  stm32_gpiowrite(GPIO_LED2, (ledset & LED2_BIT) == 0);
+  stm32_gpiowrite(GPIO_LED3, (ledset & LED3_BIT) == 0);
 }
 
 /****************************************************************************

Reply via email to