diff options
-rw-r--r-- | firmware/drivers/uda1380.c | 19 | ||||
-rw-r--r-- | firmware/export/uda1380.h | 2 |
2 files changed, 12 insertions, 9 deletions
diff --git a/firmware/drivers/uda1380.c b/firmware/drivers/uda1380.c index 1636f13365..1f31c4c855 100644 --- a/firmware/drivers/uda1380.c +++ b/firmware/drivers/uda1380.c @@ -164,17 +164,20 @@ void uda1380_enable_output(bool enable) } } -/* Initialize UDA1380 codec with default register values (uda1380_defaults) */ -int uda1380_init(void) +void uda1380_reset(void) { /* RESET signal */ - GPIO_OUT |= (1<<29); - GPIO_ENABLE |= (1<<29); - GPIO_FUNCTION |= (1<<29); - + or_l(1<<29, &GPIO_OUT); + or_l(1<<29, &GPIO_ENABLE); + or_l(1<<29, &GPIO_FUNCTION); sleep(HZ/100); - - GPIO_OUT &= ~(1<<29); + and_l(~(1<<29), &GPIO_OUT); +} + +/* Initialize UDA1380 codec with default register values (uda1380_defaults) */ +int uda1380_init(void) +{ + uda1380_reset(); if (uda1380_set_regs() == -1) return -1; diff --git a/firmware/export/uda1380.h b/firmware/export/uda1380.h index b5a31e33fe..3bef5439b5 100644 --- a/firmware/export/uda1380.h +++ b/firmware/export/uda1380.h @@ -19,7 +19,7 @@ #ifndef _UDA1380_H #define _UDA1380_H - +extern void uda1380_reset(void); extern int uda1380_init(void); extern void uda1380_enable_output(bool enable); extern int uda1380_set_master_vol(int vol_l, int vol_r); |