summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/uda1380.c19
-rw-r--r--firmware/export/uda1380.h2
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);