patch for microphone, (i hope)

Malcolm malcolm.parsons at gmail.com
Thu Mar 29 11:29:15 CEST 2007


On 3/29/07, loux.thefuture <loux.thefuture at gmail.com> wrote:

> please find attached the patch to enable microphone, i just try to
> rewrite it from libdns

+#define REG_SPI_CR      (*(volatile u16*)0x040001C0)
+#define REG_SPI_DATA    (*(volatile u16*)0x040001C2)
+
+#define SPI_BAUD_4MHz    0
+#define SPI_BAUD_2MHz    1
+#define SPI_BAUD_1MHz    2
+#define SPI_BAUD_512KHz  3
+
+#define SPI_BUSY    		BIT(7)
+#define SPI_ENABLE  		BIT(15)
+#define SPI_DEVICE_POWER      (0 << 8)
+#define SPI_DEVICE_TOUCH      (2 << 8)
+#define SPI_DEVICE_MICROPHONE (2 << 8)
+#define SPI_CONTINUOUS       BIT(11)

These are in spi.c already, don't duplicate them here.
Code using these defines should be in spi.c

+#define TIMER0_CR   		(*(volatile u16*)0x04000102)
+#define TIMER0_DATA     (*(volatile u16*)0x04000100)
+#define TIMER_ENABLE    (1<<7)
+#define TIMER_IRQ_REQ   (1<<6)
+#define TIMER_DIV_1     (0)

These are in arm7.h with different names.

+#define SOUND_VOL(n)	(n)
+#define SOUND_FREQ(n)	((-0x1000000 / (n)))
+#define SOUND_ENABLE	BIT(15)
+#define SOUND_REPEAT    BIT(27)
+#define SOUND_ONE_SHOT  BIT(28)
+#define SOUND_FORMAT_16BIT (1<<29)
+#define SOUND_FORMAT_8BIT	(0<<29)
+#define SOUND_FORMAT_PSG    (3<<29)
+#define SOUND_FORMAT_ADPCM  (2<<29)
+#define SOUND_16BIT      (1<<29)
+#define SOUND_8BIT       (0)
+
+#define SOUND_PAN(n)	((n) << 16)
+
+#define SCHANNEL_ENABLE BIT(31)
+
+//---------------------------------------------------------------------------------
+// registers
+//---------------------------------------------------------------------------------
+#define SCHANNEL_CR(n)				(*(vuint32*)(0x04000400 + ((n)<<4)))
+#define SCHANNEL_VOL(n)				(*(vuint8*)(0x04000400 + ((n)<<4)))
+#define SCHANNEL_PAN(n)				(*(vuint8*)(0x04000402 + ((n)<<4)))
+#define SCHANNEL_SOURCE(n)			(*(vuint32*)(0x04000404 + ((n)<<4)))
+#define SCHANNEL_TIMER(n)			(*(vint16*)(0x04000408 + ((n)<<4)))
+#define SCHANNEL_REPEAT_POINT(n)	(*(vuint16*)(0x0400040A + ((n)<<4)))
+#define SCHANNEL_LENGTH(n)			(*(vuint32*)(0x0400040C + ((n)<<4)))
+
+#define SOUND_CR          (*(vuint16*)0x04000500)
+#define SOUND_MASTER_VOL  (*(vuint8*)0x04000500)

Why are you defining all these things you aren't using?

-- 
Malcolm Parsons



More information about the dslinux-devel mailing list