展讯7731平台驱动调试总结(2)---- 驱动配置部分

1.
关键配置文件路径

1).
项目板级配置:idh.code/device/sprd/scx35_sp7731geaplus_pad_qhd/文件夹内各文件

⑴.BoardConfig.mk---板级宏配置文件。包括设置该板(项目)所使用的uboot/kerenl全局配置宏文件,摄像头接口类型、分辨率等参数,所使用的重力加速度、光线传感器,内部存储空间大小分配等。

⑵.
init.board.rc---板级自定义启动服务文件(TP,传感器等设备的启动指令放置在此文件中)

⑶.system.prop---板级系统属性文件(当所使用的LCD是屏幕旋转90°或180°显示时,请配置ro.sf.hwrotation这个值,使得系统端的输出图像就已经对应正确。请尽量不要使用修改LCD
IC的寄存器的方式来调转图像显示方向,因为这样极易引出切屏的问题)。

⑷.xxx.idc---tp触摸屏属性文件。当新增一个触摸驱动时,需在此处添加对应文件名的idc文件,否则会出现进入系统后界面出现小圆圈,触摸功能异常的问题。

2). Kernel模块:
 kernel/arch/arm/configs/sp7731geaplus_pad_qhd-dt_defconfig(该文件由BoardConfig.mk
里的KERNEL_DEFCONFIG确定)

3). Uboot模块:idh.code/u-boot/include/configs/sp7731geaplus_pad_qhd.h(该文件由BoardConfig.mk
里的UBOOT_DEFCONFIG确定)

注意:不同项目使用不同的配置文件,用户也可以新建不同的项目工程文件以便在一套代码中支持不同的项目。

2.      
FLASH配置(包括配置项目的内存RAM大小,内部存储空间大小)

RAM配置如下:

1).chipram模块:
idh.code\chipram\include\configs\Sp7731geaplus_pad_qhd.h

DDR_TYPE定义所使用的DDR芯片信息

2). uboot模块:idh.code\u-boot\include\configs\Sp7731geaplus_pad_qhd.h

定义项目所使用的内存RAM大小CONFIG_RAM512M/
CONFIG_RAM1G/ CONFIG_RAM256M

3). Kernel模块:idh.code/kernel/arch/arm/boot/dts/sprd-scx35_sp7731geaplus_pad_qhd.dts

memory {

device_type = "memory";

reg = <0x80000000 0x20000000>;

};

0x20000000即为512M。

ROM配置如下:idh.code/device/sprd/scx35_sp7731geaplus_pad_qhd/
BoardConfig.mk

BOARD_SYSTEMIMAGE_PARTITION_SIZE:分配给system.img文件的空间大小

BOARD_USERDATAIMAGE_PARTITION_SIZE:分配给手机(平板)的内部存储空间大小

3.     
LCD

1). Kernel模块:kernel\arch\arm\configs\
sp7731geaplus_pad_qhd-dt_defconfig中配置LCD新屏

kernel/drivers/video/sprdfb/lcd目录下添加本项目LCD驱动

kernel/drivers/video/backlight目录下修改系统LCD背光配置(若与系统默认配置不同时);

2). uboot模块:u-boot\include\configs\
sp7731geaplus_pad_qhd.h定义新增的LCD屏及其分辨率

u-boot/drivers/video/sprdfb/lcd目录下添加本项目LCD驱动

u-boot/drivers/video/sprdfb/ sprdfb_panel.c增加新增LCD的函数结构体及ID;

u-boot/drivers/video/sprdfb/ sprdfb_mainc修改新项目的背光配置(若与系统默认配置不同时);

2.     
CTP触摸屏

(1)       kernel\arch\arm\configs\
sp7731geaplus_pad_qhd-dt_defconfig中配置新TP

(2)kernel/drivers/input/touchscreen内添加TP驱动;

提示:在展讯8825C等android 4.03版本上的CTP驱动可以不修改或简单修改即可在android 4.4上直接使用。

(3)      
device/sprd/ scx35_sp7731geaplus_pad_qhd /内添加对应的xxx.idc文件,并在scx35_sp7731geaplus_pad_qhd_dt.mk文件中调用该xxx.idc文件(若不添加或添加错误,有可能会造成开机后系统界面上出现一个类似于鼠标似的可以移动的小圆圈)。

(4)      
device/sprd/ scx35_sp7731geaplus_pad_qhd /init.board.rc中加入新TP的启动指令。

(5)      
idh.code/kernel/arch/arm/boot/dts/sprd-scx35_sp7731geaplus_pad_qhd.dts中配置新的TP设备名及其I2C地址,复位及中断脚号等参数。

注意:在驱动中需要增加专门的解析函数,对设备树sprd-scx35_sp7731geaplus_pad_qhd.dts中的内容进行解析。

补充:从7731平台开始,展讯统一使用设备树来对设备进行配置。设备树是一种数据结构,用以描述设备硬件参数。

3.     
Camera

(1)    根据摄像头模组厂打样时的摄像头摆放方向,配置好device\sprd\scx35\BoardConfigCommon.mk文件内的前/后摄像头方向。

若模组厂打样时摄像头拍照方向为横屏,则TARGET_BOARD_BACK_CAMERA_ROTATION及TARGET_BOARD_FRONT_CAMERA_ROTATION设置为false,否则设置为true。

(2)idh.code/device/sprd/scx35_sp7731geaplus_pad_qhd/BoardConfig.mk文件中CAMERA_SUPPORT_SIZE配置摄像头的分辨率(可比实际值大,可插值)、摄像头通讯接口等

(3)    根据电路原理图,在kernel/arch/arm/boot/dts/sprd-scx35_sp7731geaplus_pad_qhd.dts文件中sprd_sensor处配置好前后摄像头的pwdn、reset脚。

 

(4)      
vendor/sprd/open-source/libs/libcamera/sensor内添加具体的摄像头驱动。

(5) vendor/sprd/open-source/libs/libcamera/sc8830/src/sensor_cfg.c内设置前后摄像头

调试摄像头时,要尤其注意VDDCAMA(2.8V)、VDDCAMIO(1.8V)、VDDCAMMOT(3.0V)这三个LDO的输出电压大小区别。客户的模组厂在打样时经常会忽视VDDCAMA、VDDCAMIO这两个LDO的供电电压输出区别,从而造成摄像头点不亮。因此在调试时,如果出现摄像头点不亮,可以尝试跳线短接VDDCAMA(2.8V)、VDDCAMIO(1.8V),确认是否是这个问题。

项目中如果有前后摄像头,在调试时如果点不亮,也可以尝试对调前后摄像头的pwdn设置脚。在实际调试中也时常出现模组厂将这连个引脚对调的问题。

4.     
Sensor传感器

(1)kernel\arch\arm\configs\
sp7731geaplus_pad_qhd-dt_defconfig中添加新传感器全局配置

(2)Kernel层:kernel/drivers/input/misc/ 
内添加Sensor传感器底层驱动程序

(3)HAL层:vendor/sprd/open-source/libs/libsensors/
添加hal层代码

(4)device/sprd/scx35_sp7731geaplus_pad_qhd/BoardConfig.mk文件中设置所使用的sensor传感器(用于HAL层编译控制)

(5)device/sprd/scx15_sp7715ga/init.board.rc中加入新sensor的启动指令。

(6)kernel/arch/arm/boot/dts/sprd-scx35_sp7731geaplus_pad_qhd.dts中配置新的sensor设备名及其I2C地址,中断gpio口配置。

注意:在驱动中需要增加专门的解析函数,对设备树sprd-scx35_sp7731geaplus_pad_qhd.dts中的内容进行解析。

5.      其他配置

1). Gpio pin
配置: u-boot\board\spreadtrum\sp7731geaplus_pad_qhd\Pinmap-sp8830.c

2). Keypad按键配置:kernel/arch/arm/boot/dts/sprd-scx35_sp7731geaplus_pad_qhd.dts中的[email protected]。

时间: 2024-08-12 13:38:05

展讯7731平台驱动调试总结(2)---- 驱动配置部分的相关文章

展讯7731平台驱动调试总结-驱动配置部分

转载至:http://blog.csdn.net/bmw7bmw7/article/details/46126223 展讯7731平台驱动调试总结-驱动配置部分 1. 关键配置文件路径 1). 项目板级配置:idh.code/device/sprd/scx35_sp7731geaplus_pad_qhd/文件夹内各文件 ⑴.BoardConfig.mk---板级宏配置文件.包括设置该板(项目)所使用的uboot/kerenl全局配置宏文件,摄像头接口类型.分辨率等参数,所使用的重力加速度.光线传

展讯科技质量好速度快的香港VPS美国云主机企业免备案QQ95028265

展讯科技美国机房位于美国洛杉矶,机房配置豪华,机器速度快稳定性好, 并且机房有专门的技术人员24小时驻点服务,处理问题速度快,能够完全的应对各种突发问题. 所以想要一款价格实惠,机器质量好的美国云主机那就来展讯科技吧. 双核CPU | 512M内存 | 60G硬盘 | 10M独享带宽  1ip 月付只需40元 更多详情请咨询客服人员.一手资源.招合作商 QQ: 95028265  Tel:15638290267 官网:http://www.ewidc.com

展讯平台 LCD(Mipi)移植步骤及问题归纳

原创文章,原文地址:http://blog.csdn.net/dearsq/article/details/51210703 欢迎转载,转载请保留地址! PortingGuide Backlight 背光的硬件设计有两种情况: 1. 内置并联背光 2. 外置串联背光 对于 1 的情况,步骤如下: 1.移植对应的 lcd 驱动. 2.设置u-boot\drivers\video\sprdfb\sprdfb_main.c中的背光为内置: void set_backlight(uint32_t val

展讯sc7731 LCD驱动简明笔记之二

此篇笔记基于sc7731 - android 5.1,对lcd的framebuffer做一个简明笔记. 一共分为两大部分:第一部分,关于LCD的硬件方面的:第二部分,关于lcd核心处理(framebuffer)部分的. 第一部分,LCD硬件相关的 一.液晶 液晶是一种高分子有机材料.当给它加上直流电场后,原本有序的分子排列被打乱,一部分液晶变得不透明,颜色加深,便因此显示出字符和图形. 液晶的光电效应:干涉.散射.衍射.旋光.吸收等. 二.LCD种类 1. 构造: 使用两块玻璃板夹着一块液晶:一

展讯平台 LCD(Mipi) 加载流程分析

stage1 阶段的详细分析参见 uboot 详细注释讲解 我们从 uboot 的 stage2 开始分析. 加载流程分析 首先是完成硬件的初始化. 函数调用流程为: u-boot64/arch/arm/board.c: board_init_r() u-boot64/common/stdio.c: stdio_init() u-boot64/common/lcd.c: drv_lcd_init() lcd_init() u-boot/drivers/video/sprdfb/sprdfb_ma

展讯sprd_battery.c 充电驱动

sprd_battery.c 是充电驱动,这个是充电功能的核心内容,电量显示策略.温度检测策略.充电保护机制等功能在这里实现,功能实现与硬件细节剥离,调用通用接口实现逻辑控制: 1 sprdbat_probe函数: static int sprdbat_probe(struct platform_device *pdev) { int ret = -ENODEV; enum usb_charger_state usb_online_state = USB_CHARGER_DEFAULT; str

展讯sc7731 LCD驱动简明笔记之三

此篇笔记基于sc7731 - android 5.1,对lcd的gralloc库做一个简明笔记. 第一部分 调用gralloc.sc8830.so所谓的Gralloc模块,它就是一个模块,一个操作kernel层framebuffer驱动的动态库模块,它属于大名鼎鼎的HAL层.用的时候就加载到内存空间,不用的时候就从内存空间中卸载掉.下面看下系统如何将该模块加载到内存空间的.在Android系统中,所有访问HAL层模块的应用,都需要通过一个叫 hw_get_module() 的方法去获得需要的HA

展讯LCD浏览之前记

基于展讯sc7731 - Android 5.1 代码分析浏览.将屏蔽细节,把握整体,并且不涉及其他设备和LCD的交互. 以下对sc7731 lcd大体流程进行简要说明. 第一,lcd 的两个阶段 1. 在uboot引起系统阶段,大约1~5秒左右,需要打印一个厂商log.这里对驱动要求非常简单,只要能打印log即可. (下面皆以lcd_ili9486s1_mipi.c为例)  驱动文件放置路径: u-boot64/drivers/video/sprdfb/lcd/ 添加新屏时需要修改的文件分别为

展讯CEO:低毛利生存 由中低端转向高端

最近一两年来,芯片市场的热闹有从细分.垂直的圈子向整个大社会场景发酵的迹象. 备受各界关注的高通发垄断案,国家大基金的成立,以及展讯.锐迪科等私有化等等,都意味着这个行业的热度在快速上升.这里面既有芯片产业从欧美.日韩向中国大陆进行梯度产业转移的市场大势,也有中国信息产业界对“缺芯少屏”这一产业桎梏的突围情愫. 无论从哪个角度来看,在中国芯片业本轮纵横捭阖中,展讯都是一家值得更多笔墨的公司.它曾“以彼之道还施彼身”,让联发科的2G产品遭遇严重压力.在国家扶持集成电路发展的风口上,展讯又被紫光以私