How to Mount Maemo File System——Guide System Analysis and Design Documents
当alsa层调用snd_pcm_prepare的时候会触发驱动对应的prepare的函数执行,如下: prepare流程分析
?Tech, 2005 Page 9 of 22
How to Mount Maemo File System——Guide System Analysis and Design Documents
#define SSCR0_P4 __REG(0x41A00000) /* SSP Port 4 Control Register 0 */ #define SSCR1_P4 __REG(0x41A00004) /* SSP Port 4 Control Register 1 */
#define SSPSP_P4 __REG(0x41A0002C) /* SSP Port 4 Programmable Serial Protocol */ 所以结果就相当于:
?Tech, 2005
Page 10 of 22
How to Mount Maemo File System——Guide System Analysis and Design Documents
31 (MOD)-》0:普通模式;30(ACS)-》0:时钟选择是由NCS和ECS位绝决定,看后面; 29(FPCKE)-》0:FIFO packing mode disabled;28()-》0:reserved 27(52MM)-》0:13mbps模式;26:24(FRDC)-》0:每帧的时隙数
23(TIM)->1:表示禁止传输fifo underrun中断;22(RIM)-》1:表示禁止接收fifo overrun中断 21(NCS)->0:表示时钟选择由ECS决定;20(EDSS)-》0:表示前面填充DSS来达到8-16位
19:8(SCR)-》0x16:决定串口bit率,=sspx clock/(scr+1)???;7(SSE)-》0:表示disable port
6(ECS)-》0:表示片内的时钟用来计算serial clock rate;5:4(FRF)-》0b11:表示psp模式用来模拟I2S协议
3:0(DSS)-》0b1111:表示16bit数据(EDSS为0)
SSCR1_P4 0x41A00004: 0xf01dc0——》0000,0000,1111,0000,0001,1101,1100,0000 对于这个地址高8位也为0,
31(TTELP)-》0:表示最后一个bit传输(LSB)传完后有半个时钟处于高阻(三态)状态; 30(TTE)-》0:表示传输信号不是三态的;29(EBCEI)-》0:bit传输错误不产生中断
28(SCFR)-》0:表示SSPSCLK的时钟信号需要连续的工作,主模式ignore;27(ECRA)-》0:表示禁止其它ssp向它发起始终请求
26(ECRB)-》0:表示同27;25(SCLKDIR)-》0:表示主模式,SSP端口,驱动SSPSCLK; 24(SFRMDIR)-》0:表示主模式,SSP端口,驱动SSPSFRM信号;
23(RWOT)-》1:表示只接收不传输???;22(TRAIL)-》1:表示trailing bytes 由dma burst来处理; 21(TSRE)-》1:表示传输DMA sevice request 是enabled;20(RSRE)-》1:表示接收DMA service request允许
19(TINTE)-》0:表示接收超时中断disable;18(PINTE)-》0:表示外设trail byte 中断disable; 17:保留;16(IFS)->0:表示帧的极性由PSP的极性位决定;
15(STRF)-》0:表示传输FIFO(读,写)由SSDR_X来决定;14(EFWR)-》0:表示FIFO读写特别函数disable
13:10(RFT)-》0b0111:表示到达什么级别rxfifo断言中断;9:6(TFT)-》0111:表示TXFIFO断言中断级别
5:保留;4(SPH)-》0:表示在每一个帧开始之前要等一个时钟,结束后要等0.5个时钟; 3(SPO)-》0:表示SSPSCLK在inactive的时候是低电平;2(LBM)-》0:表示非循环模式
1(RIE)-》0:表示RXFIFO门槛到达的中断disable;0(RIE)->0:表示接收FIFO门槛到达中断disable
SSPSP_P4 0x41A0002C: 0x800085-》0000,0000,1000,0000,0000,0000,1000,0101 这个地址的高8位为0,
31:reverved;30:28(EDMYSTOP)-》0:extended dummy stop;
27:26(EDMYSTART)-》0:extended dummy start;25(FSRT)-》0:下一帧的开始由前面的扩展STOP决定;
24:23(DMYSTOP)-》0b01:表示最后一bit传输完毕后保持active的clock数1clock的延迟;22:保留 21:16(SFRMWDTH)-》0:表示最小位帧宽度;15:9(SFRMDLY)-》0:serial frame dealy 8:7(DMYSTRT)-》0b01:表示1clock的延迟在开始的时候;6:4(STRTDLY)-》0:start delay 3(ETDS)-》0:表示结束时的传输状态为low;2(SFRMP)-》1:serial frame的极性; 1:0(SCMODE)-》0b01:data driven 上升沿,数据采样下降沿,idle状态,低;
对于littleton_micco_hifi_prepare的设置:
The sscr0 e1c0003f,sscr1 701dc0,sspsp 40200004,sstsa 3,ssrsa 3,ssacd 60,ssacdd 6590040 其中对于I2s的spp地址是: #define SSCR0_P3 __REG(0x41900000) /* SSP Port 3 Control Register 0 */
?Tech, 2005
Page 11 of 22
Issue: <0.5> Issue Date: <10/29/2007> How to Mount Maemo File System——Guide System Analysis and Design Documents
#define SSACDD_P3 __REG(0x41900040) /* SSP Port 3 Audio Clock Dither Divider Register */
SSCR0_P3==__REG(0x41900000):e1c0003f——》1110,0001,1100,0000,0000,0000,0011,1111 31 (MOD)-》1:网络模式;30(ACS)-》1:时钟选择是audio clock和audio clock divider决定,由ssacd寄存器决定;
29(FPCKE)-》1:FIFO packing mode enabled;28()-》0:reserved 27(52MM)-》0:13mbps模式;26:24(FRDC)-》1:每帧的时隙数
23(TIM)->1:表示禁止传输fifo underrun中断;22(RIM)-》1:表示禁止接收fifo overrun中断
21(NCS)->0:这里ignore,由ACS决定了(为1);20(EDSS)-》0:表示前面填充DSS来达到8-16位 19:8(SCR)-》0:由ACS那里决定;7(SSE)-》0:表示disable port,工作时应为1
6(ECS)-》0:表示片内的时钟用来计算serial clock rate;5:4(FRF)-》0b11:表示psp模式用来模拟I2S协议
3:0(DSS)-》0b1111:表示16bit数据(EDSS为0)
SSCR1_P3==__REG(0x41900004):701dc0——》0000,0000,0111,0000,0001,1101,1100,0000 31(TTELP)-》0:表示最后一个bit传输(LSB)传完后有半个时钟处于高阻(三态)状态; 30(TTE)-》0:表示传输信号不是三态的;29(EBCEI)-》0:bit传输错误不产生中断
28(SCFR)-》0:表示SSPSCLK的时钟信号需要连续的工作,主模式ignore;27(ECRA)-》0:表示禁止其它ssp向它发起始终请求
26(ECRB)-》0:表示同27;25(SCLKDIR)-》0:表示主模式,SSP端口,驱动SSPSCLK; 24(SFRMDIR)-》0:表示主模式,SSP端口,驱动SSPSFRM信号;
23(RWOT)-》0:接收和传输都可以;22(TRAIL)-》1:表示trailing bytes 由dma burst来处理;
21(TSRE)-》1:表示传输DMA sevice request 是enabled;20(RSRE)-》1:表示接收DMA service request允许
19(TINTE)-》0:表示接收超时中断disable;18(PINTE)-》0:表示外设trail byte 中断disable; 17:保留;16(IFS)->0:表示帧的极性由PSP的极性位决定;
15(STRF)-》0:表示传输FIFO(读,写)由SSDR_X来决定;14(EFWR)-》0:表示FIFO读写特别函数disable
13:10(RFT)-》0b0111:表示到达什么级别rxfifo断言中断;9:6(TFT)-》0111:表示TXFIFO断言中断级别
5:保留;4(SPH)-》0:表示在每一个帧开始之前要等一个时钟,结束后要等0.5个时钟; 3(SPO)-》0:表示SSPSCLK在inactive的时候是低电平;2(LBM)-》0:表示非循环模式
1(RIE)-》0:表示RXFIFO门槛到达的中断disable,0(RIE)->0:表示接收FIFO门槛到达中断disable
SSPSP_P3==__REG(0x4190002C):40200004——》0100,0000,0010,0000,0000,0000,0000,0100 31:reverved;30:28(EDMYSTOP)-》4:extended dummy stop;
27:26(EDMYSTART)-》0:extended dummy start;25(FSRT)-》0:下一帧的开始由前面的扩展STOP决定;
24:23(DMYSTOP)-》0b00:表示最后一bit传输完毕后保持active的clock数的延迟;22:保留 21:16(SFRMWDTH)-》0b20:表示最小位帧宽度;15:9(SFRMDLY)-》0:serial frame dealy 8:7(DMYSTRT)-》0b00:表示0clock的延迟在开始的时候;6:4(STRTDLY)-》0:start delay 3(ETDS)-》0:表示结束时的传输状态为low;2(SFRMP)-》1:serial frame的极性; 1:0(SCMODE)-》0b00:data driven 下降沿,数据采样上升沿,idle状态,低;
SSTSA_P3==__REG(0x41900030):3——》0011
?Tech, 2005
Page 12 of 22
Issue: <0.5> Issue Date: <10/29/2007>
相关推荐: