S3C6410和DM9000驱动

添加DM9000驱动

Linux 内核下的 drivers/net/dm9000.c 实现了与体系结构无关的 DM9000 网卡驱动,只需要在 BSP 的板文件(arch/arm/mach-s3c6410/smdk-6410.c)中定义相关的 platform 设备和数据:


1、 添加引脚宏定义
在arch/arm/mach-s3c6400/include/mach/map.h文件中添加宏定义

#define S3C64XX_PA_DM9000 (0x18000000)

 

 2、 添加platform数据

在arch/arm/mach-s3c6410/smdk-6410.c文件中

2.1、添加头文件#include <linux/dm9000.h>

2.2、定义platform 设备和数据

static struct resource s3c_dm9000_resources[] = {

[0] = {
.start = S3C64XX_PA_DM9000,
.end = S3C64XX_PA_DM9000 + 0x3,
.flags = IORESOURCE_MEM,
},
 
[1] = {
.start = S3C64XX_PA_DM9000 + 0x4,
.end = S3C64XX_PA_DM9000 + 0x7,
.flags = IORESOURCE_MEM,
},
 
[2] = {
          .start = IRQ_EINT(7),
         .end   = IRQ_EINT(7),
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
},
};
 
static struct dm9000_plat_data s3c_dm9000_platdata = {
.flags = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM,
.dev_addr = { 0x0, 0x16, 0xd4, 0x9f , 0xed, 0xa4 },
};
 
static struct platform_device s3c_device_dm9000 = {
.name = "dm9000",
.id = 0,
.num_resources = ARRAY_SIZE(s3c_dm9000_resources),
.resource = s3c_dm9000_resources,
.dev = {
.platform_data = &s3c_dm9000_platdata,
}
};
 
3、 修改smdk6410_devices[]数组
在arch/arm/mach-s3c6410/smdk-6410.c文件中的struct platform_device *smdk6410_devices[]数组填入如下语句:
& s3c_device_dm9000,

转载于:https://my.oschina.net/u/174242/blog/71696

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值