标题:
详解S5PV210如何支持DM9000驱动
[打印本页]
作者:
yuyang911220
时间:
2017-2-23 21:50
标题:
详解S5PV210如何支持DM9000驱动
// 平台:友坚UT-S5PV210
开发板
+Android2.2
// 注意事项:未经作者同意,商业网站不能转载,更不得在转载的时候擅自修改、删除文章的任何部分
//------------------------------------------------------------------------------------------------------------------------------
一、硬件情况:
1、查看原理图:16bit模式;
2、INT接到S5PV210的IRQ_LAV/EINT10,INT脚为低时为有效中断信号,中断线为EINT10;
3、CS接到S5PV210的CSn1,CMD连接到V210的地址总线ADDR[2],故INDEX和DATA[15:0]的端口地址分别为0x88000000和0x88000004。
二、软件修改:
1、\kernel\arch\arm\mach-s5pv210\include\mach\map.h
改成:
view plain
#define S5PV210_PA_DM9000 (0x88000000)
#define S5P_PA_DM9000 S5PV210_PA_DM9000 + 0x300
2、\kernel\arch\arm\plat-s5p\devs.h
改成:
view plain
sta
ti
c struct resource s5p_dm9000_resources[] = {
[0] = {
.start = S5P_PA_DM9000,
.end = S5P_PA_DM9000 + 3,
.flags = IORESOURCE_MEM,
},
[1] = {
#if defined(CONFIG_DM9000_16BIT)
.start = S5P_PA_DM9000 + 0x04,
.end = S5P_PA_DM9000 + 7,
.flags = IORESOURCE_MEM,
#else
.start = S5P_PA_DM9000 + 1,
.end = S5P_PA_DM9000 + 1,
.flags = IORESOURCE_MEM,
#endif
},
[2] = {
.start = IRQ_EINT10,
.end = IRQ_EINT10,
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
}
};
3、\kernel\arch\arm\mach-s5pv210\mach-smdkv210.c
在static void __init smdkv210_dm9000_set(void)中修改:
view plain
tmp = __raw_readl(S5P_SROM_BW); tmp &=~(0xF<<4);
tmp |= (1<<7) | (1<<6) | (1<<5) | (1<<4);
__raw_writel(tmp, S5P_SROM_BW);
_raw_writel((0x0<<28)|(0x0<<24)|(0x5<<16)|(0x0<<12)|(0x0<<8)|(0x0<<4)|(0x0<<0), S5P_SROM_BC3); //这个也没看明白,希望有高人可以解答下
4、make menuconfig选上DM9000和16bit的模式,make zImage即可。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0