添加新设备在平台里的支持
2016-09-27 11:27
134 查看
1-->设备的定义
平台的所有设备都会在arch\arm\plat-s3c\include\plat\devs.h中进行初始定义
2-->定义设备的结构体
设备实体的结构体解析
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卡的定义:
3--->arch\arm\mach-s3c2440\mach-mini2440.c
将MMC/SD配置配置给平台:
4--->arch\arm\mach-s3c2440\mach-mini2440.c
列入到要在平台初始化:
平台的所有设备都会在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); #endif s3c_i2c0_set_platdata(NULL); s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND); s3c_device_nand.dev.platform_data = &friendly_arm_nand_info; s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg; /* 将MMC/SD配置配置给平台 */ platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices)); s3c_pm_init(); }
4--->arch\arm\mach-s3c2440\mach-mini2440.c
列入到要在平台初始化:
static struct platform_device *mini2440_devices[] __initdata = { &s3c_device_usb, &s3c_device_rtc, &s3c_device_lcd, &s3c_device_wdt, &s3c_device_i2c0, &s3c_device_iis, &mini2440_device_eth, &s3c24xx_uda134x, &s3c_device_nand, &s3c_device_sdi, /* 新加入的设备 */ &s3c_device_usbgadget, };
相关文章推荐
- MTK 平台支持设备树的添加流程
- 在s5pv210开发板的android平台上添加busybox的支持[基于x210开发板]
- APP支持不同的设备 之 支持不同版本的平台
- Android KitKat 4.4平台开发-添加USB ADB和MTP功能支持
- 把小米 3 添加到 ADB 支持设备列表
- Cocos2d-x的Android平台添加Protobuffer支持
- Websphere Everyplace Mobile Portal - 支持各种移动设备的门户平台
- 使用QEMU模拟搭建ARM开发平台(三)——添加SCSI和MTD以及NAND flash支持
- 为Cocos2d-x的Android平台添加Protobuffer支持
- MTK平台添加Camera设备信息
- MTK android平台添加读写i2c设备工具
- 支持iOS平台设备上的音频即时通讯应用开发
- 为Android设备添加A2SD支持
- [C] tcharall(让所有平台支持TCHAR)v1.1。源码托管到github、添加CMake编译配置文件、使用doxygen规范注释
- 在virtualbox下的xp系统添加串口设备支持
- USB host 添加对各种设备的支持方法
- 设备 支持的字体 添加 新字体
- 为Cocos2d-x的Android平台添加Protobuffer支持
- 为Cocos2d-x的Android平台添加Protobuffer支持
- mac 添加安卓设备的支持