Dophin客户配置文档.pptx_第1页
Dophin客户配置文档.pptx_第2页
Dophin客户配置文档.pptx_第3页
Dophin客户配置文档.pptx_第4页
Dophin客户配置文档.pptx_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Dolphin客户配置文档 2014 03 08 2 11 09 11 目录 01 01 03 Dolphin软件架构简介 Pinmap的设置 客户化驱动配置 01STEP 02STEP 03STEP Dolphin 3 11 09 11 SC7715芯片平台简介 Dolphin平台软件介绍 Dolphin软件架构简介 Dolphin目录结构 SC7715芯片平台简介 SC7715平台简介 CPU 1 1 2GHzCortexA7 256KBL2Cache Neoncoprocessors GPU ARMMali 400 34Mtri s 312Mpix s Dispc UptoFWVGALCD RGB Ramless MCUI F Camera 3MYUVformat 5MJPEGformat Multimedia H 264 H 263 MPEG4720PCodec HighPerformanceAudioCodec WCN IntegratedWIFI802 11b g n IntegratedBT2 1 FM IntegratedGPS TD SCDMA DolphinT 3GPPRel 7TD HSPA Class12EGPRS typeB WCDMA DolphinW 3GPPRel 7UMTSHSPA DL21Mbps UL5 76Mbps Class12EGPRS typeB Interface HSUSB2 0OTG UART SPI I2C 4xSDIO3 0interfaces EDGE DolphinE Class12EGPRS typeB Dolphin平台软件介绍 在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 mk vendor sprd目录结构 平台实现的AndroidHAL代码和库放在vendor sprd内 按是否开放源码分成几个独立的git管理 IDH管理方式与shark的管理方式是一致的 9 11 09 11 Pinmap的配置规则 Pinmap的配置 Pinmap的配置实例 什么是pinmap 什么是pinmap 10 Pinmap是系统在运行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 什么是pinmap WPU 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 11 Pinmap的配置规则 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 三态 高阻一般情况下DriveStrength功能是4种 2 6 12 24mA对应驱动能力0 1 2 3 一般情况下驱动能力 DS 设置为1就可以 3为最强 7715的代码里是定义8个等级的 但我们一般只使用前4个等级 DSDefault代表默认的驱动能力是2 6mA 根据芯片spec 13 Pinmap的配置规则 14 PU PD代表系统在Active时 deepsleep以外 IO的上拉和下拉选择 有WPUS WPU WPD X四种选择 Pinmap配置规则 15 SlpOE IE代表系统在配置Deepsleeep是 IO输入输出选择 有Input Output和Hiz三种选择 Pinmap的配置规则 16 SlpPU PD代表系统在Deepsleep时 IO的上拉和下拉的选择 有WPU WPD和X三种选择 TIPs 对于NC引脚 一般设为WPD Hiz Pinmap的配置规则 17 CPorAP代表IO随那个AP或者CP进入sleep而转变为sleep状态 这个设置只在AP CP的架构中有 ALL AP CP0 CP1 CP0DCP CP0 CP1 Exmple 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 NULLSleep时为了保持低电平 sleeppullup设为SLP WPD 且sleepi o设为 PIN NULL 19 11 09 11 keypad配置 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 klGPIO号key name权限key116POWERWAKEkey114VOLUME DOWNWAKEkey115VOLUME UPWAKEkey212CAMERAkey102HOMEWAKE 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 LCD LCD配置 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 0 x63 panel 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 o LCD配置 LCD配置 kernel 4 配置kernel默认LCD在 idh code kernel arch arm configs sp7715ea native defconfig中添加CONFIG FB LCD HX8363 RGB SPI y LCD配置 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 ccirTARGET 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控制 Makefileobj CONFIG INPUT LTR558 I2C ltr 558als o Kconfig L Psensor客户化配置 如下sp7715ea工程 kernel arch arm configs sp7715ea native defconfig sp7715ea native defconfig中定义了设备及编译的模式 CONFIG INPUT AL3006 I2CisnotsetCONFIG INPUT LTR558 I2C y 详细定义 include 配置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 cppelseLOCAL CFLAGS DPLS NULLendifBoardConfig mk配置使用的组件 如sp7715ea项目 device sprd sp7715ea BoardConfig mkUSE SPRD SENSOR LIB trueBOARD HAVE PLS LTR558ALS Gsensor客户化配置 作为input设备 相应驱动文件均放在kernel drivers input misc 目录下kernel drivers input misc mma8x5x c 飞思卡尔方案 设备是否启用由Makefile Kconfig board对应的defconfig控制 Makefileobj CONFIG INPUT MMA 8X5X mma8x5x oKconfig Gsensor客户化配置 defconfig文件放在了configs目录 如下sp77155ea工程 kernel arch arm configs sp7715ea native defconfigsp7715ea native defconfig中定义了那些设备被开启及被编译的方式 CONFIG INPUT ADXL34XisnotsetCONFIG 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 cppLOCAL CFLAGS DACC INSTALL BOARD ACC INSTALL endifBoardConfig mk指定使用的组件 如sp7715ea项目 配置路径为 device sprd sp7715ea BoardConfig mk详细配置 USE SPRD SENSOR LIB trueBOARD HAVE ACC FrescaleBOARD ACC INSTALL 6 移植过程中注意事项 1 在HAL层代码中 sensors cpp可以说是作为sensorhal层代码的core层 因此 如果要新添加一个senso

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论