- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RK平台移植310内核
RK平台移植3.10内核
RK平台系统相关改动 1
1.1 pinctl 1
1.2 clock/dvfs 2
1.3 PM(休眠唤醒的改动) 2
1.4 ddr 2
1.5 头文件改动 2
常用模块相关改动 2
2.1 LCD/BL 2
2.2 TP 2
2.3 POWER 2
2.4 SENSORS 2
2.4.1 驱动需要获取的信息: 2
2.4.2 dts中如何进行定义 3
2.4.3 驱动中如何获取dts信息 4
2.5 CAMERA 5
2.6 CODEC 5
2.7 WIFI 5
Dts介绍 5
3.1 dts/dtsi为何物 5
3.2 rk平台集成的dtsi 6
3.4 rk 平台dts 编写规范和注意事项 6
3.5 如何编译生成新的kernel.img 6
Dts引发的驱动变更 6
3.1 驱动如何与dts通信 6
3.2 注册i2c_board_info,指定IRQ等板级信息 7
3.3注册platfrom_device,绑定resource(内存,irq等) 7
常用OF_API 8
RK平台系统相关改动
1.1 pinctl
1.2 clock/dvfs
1.3 PM(休眠唤醒的改动)
1.4 ddr
1.5 头文件改动
-#include mach/gpio.h
-#include mach/board.h
+#include linux/of_gpio.h
常用模块相关改动
2.1 LCD/BL
2.2 TP
2.3 POWER
2.4 SENSORS
sensors 包括了RK平台上的各类驱动,驱动代码路径和原来路径一致,在drivers/inpput/sensors/目录下。驱动已经移植完成,正常不需要进行修改。sensor的配置只需要在dts文件中填入项目对应的信息。
2.4.1 驱动需要获取的信息:
Sensor-dev.h中 我们定义了sensor的驱动所需要的信息结构,在.dts文件中填入相关信息,驱动中就可以自动获取到信息进行展开。
struct sensor_platform_data {
int type; //sensor 类型见sensor_type定义,必填,不能错
int irq; //中断号
int irq_pin; //中断触发GPIO
int power_pin; //电源控制GPIO,部分sensor用到
int reset_pin; //reset GPIO,部分sensor用到
int irq_enable; //使用中断方式填1,使用轮训填0 ,必填
int poll_delay_ms; //读取数据的频率,单位ms,必填
int x_min; //最小有效值,x低于该值忽略,目前陀螺仪使用
int y_min; //最小有效值,y低于该值忽略,目前陀螺仪使用
int z_min; //最小有效值,z低于该值忽略,目前陀螺仪使用
unsigned char address; // I2C 设备地址
int layout; //sensor方向,1-8
signed char orientation[9]; //sensor方向矩阵,dts中不用定义,由layout自动转换
unsigned long irq_flags; //中断触发方式,必填
short m_layout[4][3][3]; //指南针方向矩阵,可选
char project_name[64]; //指南针名称,可选
};
蓝色的为在dts文件中必须定义的信息,其他为可选项,没用到可以不填。
2.4.2 dts中如何进行定义
目前dts中的信息填写和之前的board有很大区别,这里用用mma8452的gsensor作为案例:
i2c0{ //挂载i2c0总线上
sensor@1d { //sensor,i2c地址
compatible = gs_mma8452; //设备ID号
reg = 0x1d; //设备地址
type = SENSOR_TYPE_ACCEL; //sensor类型,accel为gsensor
irq-gpio = gpio0 GPIO_B7 IRQ_TYPE_EDGE_FALLING; //中断GPIO
irq_enable = 1;
文档评论(0)