首页 > 代码库 > 添加新设备在平台里的支持
添加新设备在平台里的支持
1-->设备的定义
平台的所有设备都会在arch\arm\plat-s3c\include\plat\devs.h中进行初始定义
2-->定义设备的结构体
设备实体的结构体解析
struct resource {resource_size_t start; /* 该设备在CPU总线上的线性起始物理地址 */resource_size_t end; /* 该设备在CPU总线上的线性结尾物理地址 */const char *name; /* 该设备的名称 */unsigned long flags; /* 该设备的共性和特性的标志位,定义在ioport.h中 */struct resource *parent, *sibling, *child; /* 父节点,兄弟节点,子节点 */};
3-->设备资源
平台的所有设备都会在arch\arm\plat-s3cxx\devs.c中进行资源使用定义
4-->平台设备初始化
平台的所有设备都会在arch\arm\mach-s3c2440\mach-mini2440.c中的函数__initdata进行明确的初始化工作
例如:添加平台对MMC/SD卡的支持
1--->arch\arm\plat-s3c\include\plat\devs.h
添加定义:extern struct platform_device s3c_device_sdi;
2--->arch\arm\mach-s3c2440\mach-mini2440.c
添加MMC/SD卡的定义:
static struct s3c24xx_mci_pdata mini2440_mmc_cfg = {.gpio_detect = S3C2410_GPG(8),.gpio_wprotect = S3C2410_GPH(8),.set_power = NULL,.ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34,};
3--->arch\arm\mach-s3c2440\mach-mini2440.c
将MMC/SD配置配置给平台:
static void __init mini2440_machine_init(void){#if defined (LCD_WIDTH)s3c24xx_fb_set_platdata(&mini2440_fb_info);#endifs3c_i2c0_set_platdata(NULL);s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND);s3c_device_nand.dev.platform_data = http://www.mamicode.com/&friendly_arm_nand_info;>
4--->arch\arm\mach-s3c2440\mach-mini2440.c
列入到要在平台初始化:
static struct platform_device *mini2440_devices[] __initdata = http://www.mamicode.com/{>
添加新设备在平台里的支持
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。