diff --git a/boards/arm/s32k1xx/s32k118evb/src/s32k1xx_userleds.c b/boards/arm/s32k1xx/s32k118evb/src/s32k1xx_userleds.c index 2950378c0a..f33c89e3be 100644 --- a/boards/arm/s32k1xx/s32k118evb/src/s32k1xx_userleds.c +++ b/boards/arm/s32k1xx/s32k118evb/src/s32k1xx_userleds.c @@ -99,4 +99,23 @@ void board_userled_all(uint32_t ledset) s32k1xx_gpiowrite(GPIO_LED_B, (ledset & BOARD_LED_B_BIT) != 0); } +#ifdef CONFIG_USERLED_LOWER_READSTATE +/**************************************************************************** + * Name: board_userled_getall + ****************************************************************************/ + +void board_userled_getall(uint32_t *ledset) +{ + /* Clear the LED bits */ + + *ledset = 0; + + /* Get LED state. An output of '1' illuminates the LED. */ + + *ledset |= ((s32k1xx_gpioread(GPIO_LED_R) & 1) << BOARD_LED_R); + *ledset |= ((s32k1xx_gpioread(GPIO_LED_G) & 1) << BOARD_LED_G); + *ledset |= ((s32k1xx_gpioread(GPIO_LED_B) & 1) << BOARD_LED_B); +} +#endif /* CONFIG_USERLED_LOWER_READSTATE */ + #endif /* !CONFIG_ARCH_LEDS */ diff --git a/boards/arm/s32k1xx/s32k144evb/src/s32k1xx_userleds.c b/boards/arm/s32k1xx/s32k144evb/src/s32k1xx_userleds.c index 3fbba8bb11..19c8ae871b 100644 --- a/boards/arm/s32k1xx/s32k144evb/src/s32k1xx_userleds.c +++ b/boards/arm/s32k1xx/s32k144evb/src/s32k1xx_userleds.c @@ -99,4 +99,23 @@ void board_userled_all(uint32_t ledset) s32k1xx_gpiowrite(GPIO_LED_B, !((ledset & BOARD_LED_B_BIT) != 0)); } +#ifdef CONFIG_USERLED_LOWER_READSTATE +/**************************************************************************** + * Name: board_userled_getall + ****************************************************************************/ + +void board_userled_getall(uint32_t *ledset) +{ + /* Clear the LED bits */ + + *ledset = 0; + + /* Get LED state. Invert value, an output of '0' illuminates the LED. */ + + *ledset |= (((!s32k1xx_gpioread(GPIO_LED_R)) & 1) << BOARD_LED_R); + *ledset |= (((!s32k1xx_gpioread(GPIO_LED_G)) & 1) << BOARD_LED_G); + *ledset |= (((!s32k1xx_gpioread(GPIO_LED_B)) & 1) << BOARD_LED_B); +} +#endif /* CONFIG_USERLED_LOWER_READSTATE */ + #endif /* !CONFIG_ARCH_LEDS */ diff --git a/boards/arm/s32k1xx/s32k146evb/src/s32k1xx_userleds.c b/boards/arm/s32k1xx/s32k146evb/src/s32k1xx_userleds.c index dc3ad52314..f8925f1af0 100644 --- a/boards/arm/s32k1xx/s32k146evb/src/s32k1xx_userleds.c +++ b/boards/arm/s32k1xx/s32k146evb/src/s32k1xx_userleds.c @@ -99,4 +99,23 @@ void board_userled_all(uint32_t ledset) s32k1xx_gpiowrite(GPIO_LED_B, (ledset & BOARD_LED_B_BIT) != 0); } +#ifdef CONFIG_USERLED_LOWER_READSTATE +/**************************************************************************** + * Name: board_userled_getall + ****************************************************************************/ + +void board_userled_getall(uint32_t *ledset) +{ + /* Clear the LED bits */ + + *ledset = 0; + + /* Get LED state. An output of '1' illuminates the LED. */ + + *ledset |= ((s32k1xx_gpioread(GPIO_LED_R) & 1) << BOARD_LED_R); + *ledset |= ((s32k1xx_gpioread(GPIO_LED_G) & 1) << BOARD_LED_G); + *ledset |= ((s32k1xx_gpioread(GPIO_LED_B) & 1) << BOARD_LED_B); +} +#endif /* CONFIG_USERLED_LOWER_READSTATE */ + #endif /* !CONFIG_ARCH_LEDS */ diff --git a/boards/arm/s32k1xx/s32k148evb/src/s32k1xx_userleds.c b/boards/arm/s32k1xx/s32k148evb/src/s32k1xx_userleds.c index 2ea079fcd8..94eacc44dd 100644 --- a/boards/arm/s32k1xx/s32k148evb/src/s32k1xx_userleds.c +++ b/boards/arm/s32k1xx/s32k148evb/src/s32k1xx_userleds.c @@ -99,4 +99,23 @@ void board_userled_all(uint32_t ledset) s32k1xx_gpiowrite(GPIO_LED_B, (ledset & BOARD_LED_B_BIT) != 0); } +#ifdef CONFIG_USERLED_LOWER_READSTATE +/**************************************************************************** + * Name: board_userled_getall + ****************************************************************************/ + +void board_userled_getall(uint32_t *ledset) +{ + /* Clear the LED bits */ + + *ledset = 0; + + /* Get LED state. An output of '1' illuminates the LED. */ + + *ledset |= ((s32k1xx_gpioread(GPIO_LED_R) & 1) << BOARD_LED_R); + *ledset |= ((s32k1xx_gpioread(GPIO_LED_G) & 1) << BOARD_LED_G); + *ledset |= ((s32k1xx_gpioread(GPIO_LED_B) & 1) << BOARD_LED_B); +} +#endif /* CONFIG_USERLED_LOWER_READSTATE */ + #endif /* !CONFIG_ARCH_LEDS */ diff --git a/boards/arm/s32k1xx/ucans32k146/src/s32k1xx_userleds.c b/boards/arm/s32k1xx/ucans32k146/src/s32k1xx_userleds.c index a2277adafe..1006292e79 100644 --- a/boards/arm/s32k1xx/ucans32k146/src/s32k1xx_userleds.c +++ b/boards/arm/s32k1xx/ucans32k146/src/s32k1xx_userleds.c @@ -99,4 +99,23 @@ void board_userled_all(uint32_t ledset) s32k1xx_gpiowrite(GPIO_LED_B, !((ledset & BOARD_LED_B_BIT) != 0)); } +#ifdef CONFIG_USERLED_LOWER_READSTATE +/**************************************************************************** + * Name: board_userled_getall + ****************************************************************************/ + +void board_userled_getall(uint32_t *ledset) +{ + /* Clear the LED bits */ + + *ledset = 0; + + /* Get LED state. Invert value, an output of '0' illuminates the LED. */ + + *ledset |= (((!s32k1xx_gpioread(GPIO_LED_R)) & 1) << BOARD_LED_R); + *ledset |= (((!s32k1xx_gpioread(GPIO_LED_G)) & 1) << BOARD_LED_G); + *ledset |= (((!s32k1xx_gpioread(GPIO_LED_B)) & 1) << BOARD_LED_B); +} +#endif /* CONFIG_USERLED_LOWER_READSTATE */ + #endif /* !CONFIG_ARCH_LEDS */