您的位置:首页 > 移动开发 > Android开发

rk3128 android4.4 平台内核驱动分析

2016-06-07 00:20 831 查看

一、rk3128 android4.4 平台

主要用来做电视盒

二、内核目录结构

├── android        android基本配置参数

├── arch              各个体系下内核引导代码

├── block            块设备驱动代码

├── COPYING 

├── CREDITS

├── crypto           加密算法

├── Documentation 

├── drivers        驱动代码

├── firmware    内核使用,需要文件系统支持

├── fs                文件系统

├── include      头文件

├── init             内核通用的引导代码

├── ipc             ipc 函数

├── Kbuild    

├── Kconfig

├── kernel       内核通用函数接口

├── kernel.img

├── lib          内核使用的lib库函数接口

├── linaro

├── logo.bmp

├── logo_kernel.bmp

├── MAINTAINERS

├── Makefile

├── mkkrnlimg

├── mm               内存管理代码

├── modules.order

├── Module.symvers

├── net              通用的网络协议层代码

├── pack-kernel.sh

├── pie       

├── README

├── REPORTING-BUGS

├── resource.img

├── resource_tool

├── samples 

├── scripts

├── security    linux安全防护代码  

├── sound       声卡驱动

├── System.map

├── tools          工具

├── usr                  

├── virt

├── vmlinux

└── vmlinux.o

三、重点关注如下

1、配置文件

关于 dts 文件描述 文件描述

瑞芯微平台上所有的 gpio 资源都是描述在 dts 文件当中

dts 文件一般存放在 kernel 目录下 arch/arm/boot/dts/ 里面

全志平台的配置文件 一般为 sys_config.fex

存放路径 lichee/brandy/pack/chips/sun8iw1p1/configs/android/

配置文件主要功能是用来统一管理 cpu 平台资源,方便查看和修改

2、修改配置文件

新增 gpio 管脚控制,描述如下,使用了 GPIO0_B0/GPIO0_D2/GPIO3_C5

work_led{

compatible = "WorkLed";

RED = <&gpio0 GPIO_B0 GPIO_ACTIVE_LOW>;

GREEN = <&gpio0 GPIO_D2 GPIO_ACTIVE_LOW>;

BULE = <&gpio3 GPIO_C5 GPIO_ACTIVE_LOW>;

status = "okay";

};

compatible 为驱动当中平台总线匹配的名字 “WorkLed”

RED = <&gpio0 GPIO_B0 GPIO_ACTIVE_LOW>;

描述的管脚名称为 RED, 管脚 IO 为: gpio 0 组,B0 这个管脚

status : 资源的状态状态,okay :表示使能 disable: 表示关闭

驱动探测函数当中匹配的名字为:WorkLed

static const struct of_device_id of_workled_match[] = {

{ .compatible = "WorkLed", },

{},

};

usb 配置描述:
usb0: usb@10180000 {

                /*0 - Normal, 1 - Force Host, 2 - Force Device*/

                /*change yue 1--->0 for adb shell*/

//              rockchip,usb-mode = <0>;

0:表示adb 调试模式  1 : 主机模式,可以外挂u盘、鼠标等

3、驱动相关

1、drivers/rtc/rtc-rk818.c 电源管理芯片驱动,主要实现电源定时开关机

2、drivers/input/keyboard/rk_keys.c 瑞芯微标准的按键驱动代码

3、drivers/leds/leds-gpio.c  瑞芯微标准的工作指示灯驱动代码

4、drivers/input/touchscreen/rk29_i2c_goodix.c 触摸代码 (可参看里面的代码,编写自己的I2C驱动)

5、sound/soc/codecs/snd-soc-rk312x.c  平台上用的是CPU内置的声卡

6、sound/tty/serial/rk_serial.c 串口驱动
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: