diff options
| author | Dien-Nhung Nguyen-Phu <kein@kienlab.com> | 2024-06-02 22:42:01 +0700 |
|---|---|---|
| committer | Dien-Nhung Nguyen-Phu <kein@kienlab.com> | 2024-06-11 14:47:21 +0700 |
| commit | 6d09a8bb5066dc1ae17bb73a34a40f86ace17945 (patch) | |
| tree | 984bef70b5f3341479f62b4354a817d74f87f133 /src/leddrv.c | |
| parent | 1ae34de744aac664df8780365a549ea31c57ec13 (diff) | |
button: add brightness adjustment
Diffstat (limited to 'src/leddrv.c')
| -rw-r--r-- | src/leddrv.c | 17 |
1 files changed, 12 insertions, 5 deletions
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); |