From 6d09a8bb5066dc1ae17bb73a34a40f86ace17945 Mon Sep 17 00:00:00 2001 From: Dien-Nhung Nguyen-Phu Date: Sun, 2 Jun 2024 22:42:01 +0700 Subject: button: add brightness adjustment --- src/leddrv.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/leddrv.c') diff --git a/src/leddrv.c b/src/leddrv.c index 9eeba05..3d4f486 100644 --- a/src/leddrv.c +++ b/src/leddrv.c @@ -1,7 +1,9 @@ #include "leddrv.h" -#define LED_DRIVE_STRENTH 0 #define LED_PINCOUNT (23) + +volatile int drive_strength; + typedef enum { FLOATING, LOW, @@ -28,15 +30,20 @@ static void gpio_buf_set(pinctrl_t pinctl, tristate_t state) } } +void led_setDriveStrength(int is_20mA) +{ + drive_strength = is_20mA; +} + static void gpio_buf_apply( volatile uint8_t *gpio_base, uint32_t *port, uint32_t *cfg, uint32_t *mask) { -#if LED_DRIVE_STRENTH != 0 - uint32_t *drv = (uint32_t *)(gpio_base + GPIO_PD_DRV); - *drv = (*drv & ~*mask) | (*cfg & *mask); -#endif + if (drive_strength) { + uint32_t *drv = (uint32_t *)(gpio_base + GPIO_PD_DRV); + *drv = (*drv & ~*mask) | (*cfg & *mask); + } uint32_t *dir = (uint32_t *)(gpio_base + GPIO_DIR); *dir = (*dir & ~*mask) | (*cfg & *mask); -- cgit v1.2.3