收藏 分享(赏)

dophin客户配置文档.pptx

上传人:天天快乐 文档编号:764316 上传时间:2018-04-21 格式:PPTX 页数:46 大小:2.21MB
下载 相关 举报
dophin客户配置文档.pptx_第1页
第1页 / 共46页
dophin客户配置文档.pptx_第2页
第2页 / 共46页
dophin客户配置文档.pptx_第3页
第3页 / 共46页
dophin客户配置文档.pptx_第4页
第4页 / 共46页
dophin客户配置文档.pptx_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、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 平台简介,CPU11.2GHz Cortex A7256 KB L2 Cache Neon coprocessors,GPU ARM Mali-400 34Mtri/s; 312Mpix/s,D

2、ispc Up to FWVGA LCD RGB(Ramless) /MCU I/F,Camera 3M YUV format 5M JPEG format,Multimedia H.264/H.263/MPEG4 720P Codec High Performance Audio Codec,WCN Integrated WIFI 802.11 b/g/n Integrated BT 2.1, FM Integrated GPS,TD-SCDMA(DolphinT)3GPP Rel. 7 TD-HSPA+Class 12 EGPRS, type B,WCDMA(DolphinW)3GPP R

3、el. 7 UMTS HSPA+DL 21Mbps/ UL 5.76MbpsClass 12 EGPRS, type B,InterfaceHS USB 2.0 OTGUART/SPI /I2C4 x SDIO 3.0 interfaces,EDGE(DolphinE)Class 12 EGPRS, type B,Dolphin 平台软件介绍,在Native系统上,7715平台AP和Modem物理上是分离的子系统,两边通过SIPC机制进行通讯。系统模块如下,device/sprd目录结构,PLAT里会提供不同组合方案给Board做为选择。比如SCX15可以支持eMMC和Nand两种方案。在PL

4、AT scx15里,会分出emmc和nand两个目录,分别存放相关的配置文件。而eMMC方案的scx15_sp7715ea的BoardConfig里会配置相关的eMMC,而其product的mk文件里会引用包含emmc_device.mk。相应的,Nand方案的product里会引用包含nand_device.mk,vendor/sprd目录结构,平台实现的Android HAL代码和库放在vendor/sprd内,按是否开放源码分成几个独立的git管理。IDH管理方式与shark的管理方式是一致的。,. 9,11/09/11,Pinmap 的配置规则,Pinmap 的配置,Pinmap 的配

5、置实例,什么是pinmap,什么是pinmap,. 10,Pinmap 是系统在运行ROM code之后,运行软件对芯片pin脚进行初始化的配置信息表。Pinmap 里面包括IO的:1.Function 功能选择(Function03)2.上下拉设置(WPD,WPU,X)3.驱动能力设置(DS03)4.sleep时的上下拉设置(WPD,WPU,X)5.sleep时的输入输出设置(Input,Output,Hiz)6.强上拉的设置(WPUS,X)7.AP或CP的sleep控制AP+CP架构(AP,CP0CP2)8.其他(PIN_ctrl03),什么是pinmap,WPU-IO的上拉电阻,一般在7

6、0K,会随着电压的降低增大。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脚,强上拉设置,功能选择,弱上下拉设置,Slee

7、p时的上下拉设置,驱动能力设置,Sleep时的IO输入输出设置,其他(PIN_ctrl03),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/24m

8、A对应驱动能力0/1/2/3,一般情况下驱动能力(DS)设置为1就可以,3为最强(7715的代码里是定义8个等级的,但我们一般只使用前4个等级)。DS Default 代表默认的驱动能力是2/6mA (根据芯片spec)。,. 13,Pinmap 的配置规则,. 14,PU/PD代表系统在Active时(deepsleep以外)IO的上拉和下拉选择,有WPUS,WPU,WPD,X四种选择。,Pinmap 配置规则,. 15,Slp OE/IE代表系统在配置Deepsleeep是,IO输入输出选择,有Input,Output和Hiz三种选择,Pinmap 的配置规则,. 16,Slp PU/PD

9、代表系统在Deepsleep时,IO的上拉和下拉的选择,有WPU/WPD和X三种选择,TIPs:对于NC引脚,一般设为WPD+Hiz,Pinmap的配置规则,. 17,CP or AP代表IO随那个AP或者CP进入sleep而转变为sleep状态。这个设置只在AP+CP的架构中有,: ALL=AP|CP0|CP1|CP0 DCP=CP0|CP1,Exmple,. 18,如果引脚作为RTCTL用,Function必须选择正确,有的引脚可能会是多个CP共用,应该特别小心,sleep的应该有cp开控制,多个cp采用,cpx|cpx的格式配置。RTCTL引脚默认 是输出0,RTCTL使用时是输出,所以

10、不用上下拉。Sleep的时候,所有的RFCTL引脚是要求低电平的,有两种方法保持sleep的低电平状态,1)x+output.2)WPD+HizRF_SPI可能会漏电到Transceiver,最好设置WPD+HizNC引脚按照WPD+Hiz的配置就可以。,RTCTL:,以RFCTL10为例:Function选FUNC0,sleep时有CP0开控制使用时不用上下拉,func up 设为:PIN_NULLSleep时为了保持低电平,sleep pull up 设为SLP_WPD,且sleep i/o 设为:PIN_NULL,. 19,11/09/11,keypad配置,Sensor客户化配置,客户

11、化驱动配置,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#define GPIO_SENSOR_RESET 162 (定义GPIO号)3.配置GPIO的方向 在 kernel/drivers/media/sprd_sensor/sensor_

12、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如何处理。devi

13、ce/sprd/scx15/sci-keypad.klGPIO号 key_name权限key 116 POWER WAKEkey 114 VOLUME_DOWN WAKEkey 115 VOLUME_UP WAKEkey 212 CAMERAkey 102 HOME WAKE,Keypad 配置,一.在文件kernel/arch/arm/mach-sc/board-sp7715ea.c中按照如下步骤配置1. Dolphin 芯片 三组 i2c 口, 确定设备使用那组i2c并添加配置,例如:,I2C配置,设备名,且要与后面的匹配,从设备地址,平台资源,2.注册设备信息 二.在文件kernel/a

14、rch/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向系统中

15、添加该设备了,之后可以调用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 配置,

16、该名称必须与BOARD_INFO的匹配才会调用probe函数,该名称不需要与别的匹配,Tips:struct i2c_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_

17、spi.o3) 配置LCD编译选项及LCD尺寸./idh.code/u-boot/include/configs/sp7715ea.h#ifdef CONFIG_LCD/#define CONFIG_LCD_HVGA 1/#define CONFIG_LCD_WVGA 1#define CONFIG_LCD_FWVGA 1#define CONFIG_FB_LCD_HX8363_RGB_SPI#endif / CONFIG_LCD,LCD 配置,LCD配置(u-boot)4) 关联到内核 在./idh.code/u-boot/drivers/video/sprdfb/sprdfb_panel.

18、c文件中extern struct panel_spec lcd_panel_hx8363_rgb_spi_spec;static struct panel_cfg lcd_panel = 0= .lcd_id = 0x63, .panel = ,LCD 配置,LCD配置(kernel)1)添加menuconfig配置项./idh.code/kernel/drivers/video/sprdfb/Kconfigconfig FB_LCD_HX8363_RGB_SPI boolean support HX8363 panel rgb spi depends on FB_SC8825 | FB_S

19、CX35 | FB_SCX15 default n2)添加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/sp77

20、15ea-native_defconfig中添加CONFIG_FB_LCD_HX8363_RGB_SPI=y,LCD 配置,Dolphin 默认是CCIR YUV sensor. vendor/sprd/open-source目录按照如下步骤配置,以配置sensor ov5640为例可以通过在两个文件中增加sensor的配置,实现自动匹配sensor。主要修改以下几个地方:(1)将驱动代码文件放到vendorsprdopen-sourcelibslibcamerasensor目录下。(2)修改文件vendorsprdopen-sourcelibslibcamerasc7715srcsensor

21、_cfg.c 在const SENSOR_INFO_T* main_sensor_infor_tab或sub_sensor_infor_tab中 增加对应驱动代码中的结构体变量如:g_XXXX_yuv_info 并且增加声明:extern SENSOR_INFO_T g_XXXX_yuv_info;注意:放在main_sensor_infor_tab中最前面的sensor会最先匹配,所以我们一般把当前使用的sensor放在第一,这样可以节省sensor初始化的时间。,Camera 驱动配置,(3)在vendor/sprd/open-source/libs/libcamera/Camera.mk

22、和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 :=

23、 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 K con fig,L&Psensor客户化配置, 如下sp7715ea工程:kernel/ar

24、ch/arm/configs/sp7715ea-native_defconfig sp7715ea-native_defconfig中定义了设备及编译的模式:# CONFIG_INPUT_AL3006_I2C is not setCONFIG_INPUT_LTR558_I2C=y 详细定义:#include 配置i2c注册信息,如sp7715ea工程: kernel/arch/arm/mach-sc/board-sp7715ea.c,L&Psensor客户化配置,部分sensor还需要其他辅助引脚,如中断等。在sp7715ea工程中:kernel/arch/arm/mach-sc/includ

25、e/mach/_board-sp7715ea.h# define GPIO_PROX_INT 192注意:此定义推荐使用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/l

26、ibs/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_SPR

27、D_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目录,如下sp77155e

28、a工程:kernel/arch/arm/configs/sp7715ea-native_defconfigsp7715ea-native_defconfig中定义了那些设备被开启及被编译的方式# CONFIG_INPUT_ADXL34X is not setCONFIG_INPUT_MMA_8450 = y代码初始化部分(驱动加载),Gsensor客户化配置,部分sensor还需要其他辅助引脚,相关配置请参考light sensor部分。,Gsensor客户化配置,HAL层文件位于/vendor/sprd/open-source/libs/libsensors_sprd /目录下 /vendo

29、r/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项目,

30、配置路径为:device/sprd/sp7715ea/BoardConfig.mk详细配置:USE_SPRD_SENSOR_LIB := trueBOARD_HAVE_ACC := FrescaleBOARD_ACC_INSTALL := 6,移植过程中注意事项,1. 在HAL层代码中,sensors.cpp可以说是作为sensor hal层代码的core层,因此,如果要新添加一个sensor例如:mma_8x5x,则HAL层代码需要修改Acc_Frescale.cpp和头文件AccSensor.h,从而具体实现sensors.cpp中的抽象方法。 2. 在集成HAL层代码之前先要让驱动能正常

31、工作,可以使用getevent来看是否能获取数据,另外有些snesor会创建两个设备节点:一个eventX,用来获取数据,另外的设备节点用来使能sensor。因此在获取数据时,首先要使能该sensor。,TP客户化配置,作为input设备,相应驱动文件均放在kernel/drivers/input/目录下kernel/drivers/input/touchscreen/focaltech/focaltech.c设备是否启用由Makefile,Kconfig,board对应的defconfig控制。Makefileobj-$(CONFIG_TOUCHSCREEN_FOCALTECH) += fo

32、caltech_ts.oKconfig,TP客户化配置,Defconfig文件放在了configs目录,如sp7715ea工程:kernel/arch/arm/configs/sp7715ea-native_defconfigsp7715ea-native_defconfig中定义了该设备是否被开启及其编译的模式CONFIG_TOUCHSCREEN_FOCALTECH=m,TP客户化配置,配置i2c注册信息,如sp7715ea工程: kernel/arch/arm/mach-sc/board-sp7715ea.c详细定义:#include ,TP客户化配置,tpsensor还需要其他辅助引脚,如中断等。在sp7715ea工程中: kernel/arch/arm/mach-sc/include/mach/_board-sp7715ea.h #define GPIO_TOUCH_RESET 53 #define GPIO_TOUCH_IRQ 52注意:此定义推荐使用platform_data方式引用,而不是直接在driver中使用!Pinmap用于配置gpio的初始功能,如GPIO_TOUCH_RESET ,配置如下: u-boot/board/spreadtrum/sp7715ea/pinmap.c,The End,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报