版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Dolphin客户配置文档2014-03-08.211/09/11目录02Addyourtextshere03Addyoutextshere010102Pinmap配置0304AddyourtextshereDolphin软件架构简介Pinmap的设置客户化驱动配置01STEP02STEP03STEPDolphin.311/09/11SC7715芯片平台简介
Dolphin平台软件介绍Dolphin软件架构简介Dolphin目录结构SC7715芯片平台简介CHIPSETNAMEBB/AP/PMUSC7715WCDMARFSR3131WIFI/BT/FM/GPSSR2351USIM/SIMMCPLPDDRNAND/eMMCSC7715RFSR3131PASR23511.2GHz21M/5.76MTri-SIM4+2forAndroid4.4LowestCostSmartPhoneSC7715平台简介
CPU–1~1.2GHzCortexA7–256KBL2Cache–NeoncoprocessorsGPU–ARMMali-400–34Mtri/s;312Mpix/sDispc–UptoFWVGALCD–RGB(Ramless)/MCUI/FCamera–3MYUVformat–5MJPEGformatMultimedia–H.264/H.263/MPEG4720PCodec–HighPerformanceAudioCodecWCN–IntegratedWIFI802.11b/g/n–IntegratedBT2.1,FM–IntegratedGPSTD-SCDMA(DolphinT)–3GPPRel.7TD-HSPA+–Class12EGPRS,typeBWCDMA(DolphinW)–3GPPRel.7UMTSHSPA+–DL21Mbps/UL5.76Mbps–Class12EGPRS,typeBInterface–HSUSB2.0OTG–UART/SPI/I2C–4xSDIO3.0interfacesEDGE(DolphinE)–Class12EGPRS,typeBDolphin平台软件介绍在Native系统上,7715平台AP和Modem物理上是分离的子系统,两边通过SIPC机制进行通讯。系统模块如下device/sprd目录结构PLAT里会提供不同组合方案给Board做为选择。比如SCX15可以支持eMMC和Nand两种方案。在PLATscx15里,会分出emmc和nand两个目录,分别存放相关的配置文件。而eMMC方案的scx15_sp7715ea的BoardConfig里会配置相关的eMMC,而其product的mk文件里会引用包含emmc_device.mk。相应的,Nand方案的product里会引用包含nand_device.mkvendor/sprd目录结构平台实现的AndroidHAL代码和库放在vendor/sprd内,按是否开放源码分成几个独立的git管理。IDH管理方式与shark的管理方式是一致的。.911/09/11Pinmap的配置规则Pinmap的配置Pinmap的配置实例什么是pinmap什么是pinmap.10Pinmap是系统在运行ROMcode之后,运行软件对芯片pin脚进行初始化的配置信息表。Pinmap里面包括IO的:1.Function功能选择(Function0~3)2.上下拉设置(WPD,WPU,X)3.驱动能力设置(DS0~3)4.sleep时的上下拉设置(WPD,WPU,X)5.sleep时的输入输出设置(Input,Output,Hiz)6.强上拉的设置(WPUS,X)7.AP或CP的sleep控制—AP+CP架构(AP,CP0~CP2)8.其他(PIN_ctrl0~3)什么是pinmapWPU-IO的上拉电阻,一般在70K,会随着电压的降低增大。WPD-IO的下拉电阻,一般在70K,会随着电压的降低增大。WPU和WPD用于普通IO的有上下拉需求的配置。WPUDS-IO的强上拉电阻,一般在4.7K,会随着电压降低增大,用于SIM_IO,I2C,RF_SDA,SDIO,EMMC等协议需要的的方。一般被配置成强上拉的,也会被配置成弱上拉,这个一般没什么影响。自shark平台开始,pinmap的设置统一放在uboot里完成。 u-boot/board/spreadtrum/sp7715ea/pinmap.c.11Pinmap的配置规则.12需要配置的pin脚强上拉设置功能选择弱上下拉设置Sleep时的上下拉设置驱动能力设置Sleep时的IO输入输出设置其他(PIN_ctrl0~3)AP或CP的sleep控制以u-boot/board/spreadtrum/sp7715ea/pinmap.c为例,以下是pinmap配置规则。TIPs:对于与CP侧有关的配置,我们不建议客户修改Pinmap的配置规则一般情况下Function功能是4种:Function是从0开始,3结束,一般Function3是GPIO功能,Function是绝对不能选错的。Function的IO类型:I–输入,O-输出,Z-三态/高阻一般情况下Drive
Strength功能是4种:2/6/12/24mA对应驱动能力0/1/2/3,一般情况下驱动能力(DS)设置为1就可以,3为最强(7715的代码里是定义8个等级的,但我们一般只使用前4个等级)。DSDefault代表默认的驱动能力是2/6mA(根据芯片spec)。.13Pinmap的配置规则.14
PU/PD代表系统在Active时(deepsleep以外)IO的上拉和下拉选择,有WPUS,WPU,WPD,X四种选择。Pinmap配置规则.15
SlpOE/IE代表系统在配置Deepsleeep是,IO输入输出选择,有Input,Output和Hiz三种选择Pinmap的配置规则.16SlpPU/PD代表系统在Deepsleep时,IO的上拉和下拉的选择,有WPU/WPD和X三种选择TIPs:对于NC引脚,一般设为WPD+HizPinmap的配置规则.17CPorAP代表IO随那个AP或者CP进入sleep而转变为sleep状态。这个设置只在AP+CP的架构中有※:×ALL=AP|CP0|CP1|CP0DCP=CP0|CP1Exmple.18如果引脚作为RTCTL用,Function必须选择正确,有的引脚可能会是多个CP共用,应该特别小心,sleep的应该有cp开控制,多个cp采用,cpx|cpx的格式配置。RTCTL引脚默认是输出0,RTCTL使用时是输出,所以不用上下拉。Sleep的时候,所有的RFCTL引脚是要求低电平的,有两种方法保持sleep的低电平状态,1)x+output.2)WPD+HizRF_SPI可能会漏电到Transceiver,最好设置WPD+HizNC引脚按照WPD+Hiz的配置就可以。RTCTL:以RFCTL10为例: Function选FUNC0,sleep时有CP0开控制
使用时不用上下拉,funcup设为:PIN_NULL Sleep时为了保持低电平,sleeppullup设为SLP_WPD,且sleepi/o设为: PIN_NULL.1911/09/11keypad配置Sensor客户化配置客户化驱动配置GPIO配置I2C配置LCD配置
1.首先要将要使用的PIN脚配置成GPIO功能
在u-boot/board/spreadtrum/sp7715ea/pinmap.c找到要用的PIN将Function配置FUNC3,FUNC3表示GPIO功能(以CCIRRST为例)。
2.定义GPIO号
在/kernel/arch/arm/mach-sc/include/mach/__board-sp7715ea.h #defineGPIO_SENSOR_RESET162 (定义GPIO号)3.配置GPIO的方向
在kernel/drivers/media/sprd_sensor/sensor_drv_k.c
GPIO配置(申请GPIO资源)(配置GPIO方向:输出)(设置GPIO输出值)在文件kernel/arch/arm/mach-sc/board-sp7715ea.c中按照如下步骤配置Keypad
步骤1,用如下两个宏来定义Keypad的行列值
步骤2,用宏KEY在board_keymap[]添加配置项
Keypad配置步骤3,将board_keymap加到customize_keymap[]添加配置项
步骤4,将customize_keymap在sci_keypad_data[]添加配置项
Keypad配置最后还需注意Key的layout如何处理。
device/sprd/scx15/sci-keypad.kl GPIO号 key_name 权限key116 POWER WAKEkey114 VOLUME_DOWN WAKEkey115 VOLUME_UP WAKEkey212 CAMERAkey102 HOME WAKE
Keypad配置一.在文件kernel/arch/arm/mach-sc/board-sp7715ea.c中按照如下步骤配置 1.Dolphin芯片
三组i2c口,确定设备使用那组i2c并添加配置,例如:
I2C配置设备名,且要与后面的匹配从设备地址平台资源 2.注册设备信息
二.在文件kernel/arch/arm/mach-sc/devices-sc8830.c中按照如下步骤配置
I2C配置Tips:此处仅以resource0为例,代码为resource0-3
平台这里定义了两组resource,它描述了一个I2C设备的资源,第1组描述了这个I2C设备所占用的总线地址范围,IORESOURCE_MEM表示第1组描述的是内存类型的资源信息,第2组描述了这个I2C设备的中断号,IORESOURCE_IRQ表示第2组描述的是中断资源信息。设备驱动会根据flags来获取相应的资源信息定义好了platform_device结构体后就可以调用函数platform_add_devices向系统中添加该设备了,之后可以调用platform_driver_register()进行设备注册。sprd-i2c的platform_device是在系统启动时,在board-sp7715ea.c里的sc8830_init_machine()函数里进行注册的,这个函数申明为MACHINE_START(SCPHONE,"scx15");会在系统初始化阶段被调用。三.设备驱动文件里,此处以kernel/drivers/input/misc/ltr_558als.c为例,一般是module_init(func_init())形式,则调用i2c_add_driver()即可,有几个要定义:
I2C配置该名称必须与BOARD_INFO的匹配才会调用probe函数该名称不需要与别的匹配Tips:structi2c_device_id里面的字符串与
I2C_BOARD_INFO里面的匹配后,xxx_probe才会调用LCD配置(u-boot)1)增加驱动文件u-boot/drivers/video/sprdfb/lcd/lcd_hx8363_rgb_spi.c2)增加编译规则./idh.code/u-boot/drivers/video/sprdfb/lcd/MakefileCOBJS-$(CONFIG_FB_LCD_HX8363_RGB_SPI)+=lcd_hx8363_rgb_spi.o3)配置LCD编译选项及LCD尺寸./idh.code/u-boot/include/configs/sp7715ea.h#ifdefCONFIG_LCD//#defineCONFIG_LCD_HVGA1//#defineCONFIG_LCD_WVGA1#defineCONFIG_LCD_FWVGA1#defineCONFIG_FB_LCD_HX8363_RGB_SPI#endif//CONFIG_LCDLCD配置LCD配置(u-boot)4)关联到内核在./idh.code/u-boot/drivers/video/sprdfb/sprdfb_panel.c文件中externstructpanel_speclcd_panel_hx8363_rgb_spi_spec;staticstructpanel_cfglcd_panel[]={[0]={.lcd_id=0x63,.panel=&lcd_panel_hx8363_rgb_spi_spec,},};LCD配置LCD配置(kernel)1)添加menuconfig配置项./idh.code/kernel/drivers/video/sprdfb/KconfigconfigFB_LCD_HX8363_RGB_SPIboolean"supportHX8363panelrgbspi"dependsonFB_SC8825||FB_SCX35||FB_SCX15defaultn2)添加driver./idh.code/kernel/drivers/video/sprdfb/lcd/lcd_hx8363_rgb_spi.c3)添加编译规则在./idh.code/kernel/drivers/video/sprdfb/lcd/Makefile文件中增加obj-$(CONFIG_FB_LCD_HX8363_RGB_SPI)+=lcd_hx8363_rgb_spi.oLCD配置LCD配置(kernel)4)配置kernel默认LCD在./idh.code/kernel/arch/arm/configs/sp7715ea-native_defconfig中添加CONFIG_FB_LCD_HX8363_RGB_SPI=yLCD配置Dolphin
默认是CCIRYUVsensor.vendor/sprd/open-source目录按照如下步骤配置,以配置sensorov5640为例可以通过在两个文件中增加sensor的配置,实现自动匹配sensor。主要修改以下几个地方:(1)将驱动代码文件放到vendor\sprd\open-source\libs\libcamera\sensor目录下。(2)修改文件vendor\sprd\open-source\libs\libcamera\sc7715\src\sensor_cfg.c
在constSENSOR_INFO_T*main_sensor_infor_tab[]或sub_sensor_infor_tab[]中
增加对应驱动代码中的结构体变量如:g_XXXX_yuv_info
并且增加声明:externSENSOR_INFO_Tg_XXXX_yuv_info;注意:放在main_sensor_infor_tab[]中最前面的sensor会最先匹配,所以我们一般把当前使用的sensor放在第一,这样可以节省sensor初始化的时间。
Camera驱动配置(3)在vendor/sprd/open-source/libs/libcamera/Camera.mk和Camera_Utest.mk文
件中,在对应的工程中增加要编译的驱动代码 ifeq($(strip$(TARGET_BOARD_PLATFORM)),sc7715) LOCAL_C_INCLUDES:=\ $(LOCAL_PATH)/ispvideo \ ............ LOCAL_SRC_FILES:=\ ............ sensor/sensor_XXXX.c\//将此驱动代码名称添加到编译目录(4)在文件BoardConfig.mk中配置sensor接口类型 TARGET_BOARD_BACK_CAMERA_INTERFACE:=ccir TARGET_BOARD_FRONT_CAMERA_INTERFACE:=ccir
Camera驱动配置■作为input设备,相应驱动文件均放在kernel/drivers/input/misc/目录下 kernel/drivers/input/misc/ltr_558als.c■相应的头文件路径: kernel/include/linux/i2c/ltr_558als.h■设备是否启用由Makefile,Kconfig,board对应的defconfig控制。■Makefile obj-$(CONFIG_INPUT_LTR558_I2C) +=ltr_558als.o■K
con
fig
L&Psensor客户化配置■如下sp7715ea工程: kernel/arch/arm/configs/sp7715ea-native_defconfig■sp7715ea-native_defconfig中定义了设备及编译的模式: #CONFIG_INPUT_AL3006_I2Cisnotset CONFIG_INPUT_LTR558_I2C=y■详细定义: #include<linux/i2c/ltr_558als.h>■配置i2c注册信息,如sp7715ea工程: kernel/arch/arm/mach-sc/board-sp7715ea.c
L&Psensor客户化配置■
部分sensor还需要其他辅助引脚,如中断等。在sp7715ea工程中: kernel/arch/arm/mach-sc/include/mach/__board-sp7715ea.h #defineGPIO_PROX_INT192注意:此定义推荐使用platform_data方式传入driver,而不是直接在driver中使用!!!■Pinmap用于配置gpio的初始功能,如GPIO_PROX_INT,配置如下: u-boot/board/spreadtrum//sp7715ea/pinmap.c
L&Psensor客户化配置L&Psensor客户化配置HAL层文件位于/vendor/sprd/open-source/libs/libsensors_sprd/目录下 /vendor/sprd/open-source/libs/libsensors_sprd/Pls_LTR558ALS.cpp /vendor/sprd/open-source/libs/libsensors_sprd/PlsSensor.hAndroid.mk指定源码编译: ifneq($(BOARD_HAVE_PLS),NULL) LOCAL_SRC_FILES+=Pls_$(BOARD_HAVE_PLS).cpp else LOCAL_CFLAGS+=-DPLS_NULL endifBoardConfig.mk配置使用的组件,如sp7715ea项目: device/sprd/sp7715ea/BoardConfig.mk USE_SPRD_SENSOR_LIB:=true BOARD_HAVE_PLS:=LTR558ALSGsensor客户化配置作为input设备,相应驱动文件均放在kernel/drivers/input/misc/目录下 kernel/drivers/input/misc/mma8x5x.c(飞思卡尔方案)设备是否启用由Makefile,Kconfig,board对应的defconfig控制。Makefile obj-$(CONFIG_INPUT_MMA_8X5X)+=mma8x5x.oKconfig
Gsensor客户化配置defconfig文件放在了configs目录,如下sp77155ea工程: kernel/arch/arm/configs/sp7715ea-native_defconfigsp7715ea-native_defconfig中定义了那些设备被开启及被编译的方式 #CONFIG_INPUT_ADXL34Xisnotset CONFIG_INPUT_MMA_8450=y代码初始化部分(驱动加载)Gsensor客户化配置部分sensor还需要其他辅助引脚,相关配置请参考lightsensor部分。Gsensor客户化配置HAL层文件位于/vendor/sprd/open-source/libs/libsensors_sprd/目录下 /vendor/sprd/open-source/libs/libsensors_sprd/Acc_Frescale.cpp /vendor/sprd/open-source/libs/libsensors_sprd/AccSensor.hAndroid.mk控制相关代码的编译: ifneq($(BOARD_HAVE_ACC),NULL) LOCAL_SRC_FILES+=Acc_$(BOARD_HAVE_ACC).cpp LOCAL_CFLAGS+=-DACC_INSTALL_$(BOARD_ACC_INSTALL) endifBoardConfig.mk指定使用的组件,如sp7715ea项目,配置路径为: device/sprd/sp7715ea/BoardConfig.mk详细配置: USE_SPRD_SENSOR_LIB:=true BOARD_HAVE_ACC:=Frescale BOARD_ACC_INSTALL:=6
移植过程中注意事项
1.在HAL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业规划及创业计划
- 关于外科常见病
- 小儿腹泻教育课件
- 外语大一职业生涯规划
- 疾控慢病年终总结
- 造瘘口护理查房
- 西南联合大学生活规划
- 抗精神病药物浅谈
- 事故案例提醒危化品储存企业必须加大对油气罐区的风险防控
- 消渴病的饮食指导
- 2024秋期国家开放大学专科《监督学》一平台在线形考(形成性考核一至四)试题及答案
- 格兰仕微波炉WD900Y1SL23-2说明书
- 2024东风汽车集团限公司校园招聘高频难、易错点500题模拟试题附带答案详解
- 《2024年 电力展厅策划方案范文模板》范文
- DB34∕T 2937-2017 霍山铁皮石斛枫斗质量检测技术规程
- 招聘笔试题与参考答案(某世界500强集团)2024年
- SLT824-2024 水利工程建设项目文件收集与归档规范
- 2024年政法干警 公安之公安基础知识考试题库
- 婴幼儿发展引导员理论考试题库资料500题(含答案)
- 智能硬件设备项目创业计划书
- 形式与政策附有答案
评论
0/150
提交评论