[RK3128][Android 6.0] 新增一个CIF Camera
来源:互联网 发布:red hat linux介绍 编辑:程序博客网 时间:2024/05/22 08:16
硬件平台:RK3128
Android 版本:6.0
#define RK29_CAM_SENSOR_GC2145 gc2145 //sensor 名字,用于设备注册以及驱动标识
#define RK29_CAM_SENSOR_NAME_GC2145 "gc2145" //Sensor 名字对应的字符串
#define gc2145_FULL_RESOLUTION 0x200000 //Sensor 对应的全分辨率
#define gc2145_I2C_ADDR 0x78 //i2c 地址
#define gc2145_PWRDN_ACTIVE 0x01 //Sensor powerdown 引脚的有效电平
compatible = "rockchip,sensor";
status = "okay";
CONFIG_SENSOR_POWER_IOCTL_USR = <1>;
CONFIG_SENSOR_RESET_IOCTL_USR = <0>;
CONFIG_SENSOR_POWERDOWN_IOCTL_USR = <0>;
CONFIG_SENSOR_FLASH_IOCTL_USR = <0>;
is_front = <0>;
//rockchip,power = <&gpio2 GPIO_B2 GPIO_ACTIVE_HIGH>;
rockchip,powerdown = <&gpio3 GPIO_D7 GPIO_ACTIVE_HIGH>;
pwdn_active = <gc2145_PWRDN_ACTIVE>;
//pwr_active = <PWR_ACTIVE_HIGH>;
rockchip,reset = <&gpio3 GPIO_C5 GPIO_ACTIVE_HIGH>;
rst_active = <0>;
mir = <0>;
flash_attach = <0>;
resolution = <gc2145_FULL_RESOLUTION>;
powerup_sequence = <gc2145_PWRSEQ>;
orientation = <0>;
i2c_add = <gc2145_I2C_ADDR>;
i2c_rata = <100000>;
i2c_chl = <2>;
cif_chl = <0>;
mclk_rate = <24>;
is_front = <1>;
//rockchip,power = <&gpio2 GPIO_B2 GPIO_ACTIVE_HIGH>;
rockchip,powerdown = <&gpio3 GPIO_B3 GPIO_ACTIVE_HIGH>;
pwdn_active = <gc2145_PWRDN_ACTIVE>;
//pwr_active = <PWR_ACTIVE_HIGH>;
rockchip,reset = <&gpio3 GPIO_C5 GPIO_ACTIVE_HIGH>;
rst_active = <0>;
mir = <0>;
flash_attach = <0>;
resolution = <gc2145_FULL_RESOLUTION>;
powerup_sequence = <gc2145_PWRSEQ>;
orientation = <0>;
i2c_add = <gc2145_I2C_ADDR>;
i2c_rata = <100000>;
i2c_chl = <2>;
cif_chl = <0>;
mclk_rate = <24>;
};
is_front: 0: 后置摄像头,1: 前置摄像头
rockchip,powerdown: 定义该摄像头对应的 powerdown gpio
pwdn_active: powerdown 的有效电平
mir: 0: 不支持镜像,1: 支持镜像,
resolution: 最大的分辨率
orientation: 旋转角度,0: 0 度, 90: 90 度, 180: 180 度, 270: 270 度
i2c_add: 摄像头的 I2C 地址
i2c_rata: I2C 频率,单位 Hz
i2c_chl: I2C 通道号
cif_chl: cif 控制器信息,rk312x 仅有 cif0
&rk3128_cif_sensor{
status = "okay";
Android 版本:6.0
Kernel 版本:3.10.92
本文以 gc2145 为例。
一、添加驱动
将要添加 camera 的驱动文件 gc2145.c 复制到 kernel/drivers/media/video/下,修改Makefile。二、添加宏定义
在 kernel/arch/arm/mach-rockchip/rk_camera_sensor_info.h 中添加:#define RK29_CAM_SENSOR_GC2145 gc2145 //sensor 名字,用于设备注册以及驱动标识
#define RK29_CAM_SENSOR_NAME_GC2145 "gc2145" //Sensor 名字对应的字符串
#define gc2145_FULL_RESOLUTION 0x200000 //Sensor 对应的全分辨率
#define gc2145_I2C_ADDR 0x78 //i2c 地址
#define gc2145_PWRDN_ACTIVE 0x01 //Sensor powerdown 引脚的有效电平
#define gc2145_PWRSEQ sensor_PWRSEQ_DEFAULT //Sensor 的上电时序,默认采用 sensor_PWRSEQ_DEFAULT
V4L2_IDENT_GC2145 = 64118,
三、配置 dts
在 kernel/arch/arm/boot/dts/rk3128-cif-sensor.dtsi 定义摄像头列表:
compatible = "rockchip,sensor";
status = "okay";
CONFIG_SENSOR_POWER_IOCTL_USR = <1>;
CONFIG_SENSOR_RESET_IOCTL_USR = <0>;
CONFIG_SENSOR_POWERDOWN_IOCTL_USR = <0>;
CONFIG_SENSOR_FLASH_IOCTL_USR = <0>;
CONFIG_SENSOR_AF_IOCTL_USR = <0>;
is_front = <0>;
//rockchip,power = <&gpio2 GPIO_B2 GPIO_ACTIVE_HIGH>;
rockchip,powerdown = <&gpio3 GPIO_D7 GPIO_ACTIVE_HIGH>;
pwdn_active = <gc2145_PWRDN_ACTIVE>;
//pwr_active = <PWR_ACTIVE_HIGH>;
rockchip,reset = <&gpio3 GPIO_C5 GPIO_ACTIVE_HIGH>;
rst_active = <0>;
mir = <0>;
flash_attach = <0>;
resolution = <gc2145_FULL_RESOLUTION>;
powerup_sequence = <gc2145_PWRSEQ>;
orientation = <0>;
i2c_add = <gc2145_I2C_ADDR>;
i2c_rata = <100000>;
i2c_chl = <2>;
cif_chl = <0>;
mclk_rate = <24>;
};
is_front = <1>;
//rockchip,power = <&gpio2 GPIO_B2 GPIO_ACTIVE_HIGH>;
rockchip,powerdown = <&gpio3 GPIO_B3 GPIO_ACTIVE_HIGH>;
pwdn_active = <gc2145_PWRDN_ACTIVE>;
//pwr_active = <PWR_ACTIVE_HIGH>;
rockchip,reset = <&gpio3 GPIO_C5 GPIO_ACTIVE_HIGH>;
rst_active = <0>;
mir = <0>;
flash_attach = <0>;
resolution = <gc2145_FULL_RESOLUTION>;
powerup_sequence = <gc2145_PWRSEQ>;
orientation = <0>;
i2c_add = <gc2145_I2C_ADDR>;
i2c_rata = <100000>;
i2c_chl = <2>;
cif_chl = <0>;
mclk_rate = <24>;
};
};
is_front: 0: 后置摄像头,1: 前置摄像头
rockchip,powerdown: 定义该摄像头对应的 powerdown gpio
pwdn_active: powerdown 的有效电平
mir: 0: 不支持镜像,1: 支持镜像,
resolution: 最大的分辨率
orientation: 旋转角度,0: 0 度, 90: 90 度, 180: 180 度, 270: 270 度
i2c_add: 摄像头的 I2C 地址
i2c_rata: I2C 频率,单位 Hz
i2c_chl: I2C 通道号
cif_chl: cif 控制器信息,rk312x 仅有 cif0
mclk_rate: 传感器时钟频率,单位:MHz
&rk3128_cif_sensor{
status = "okay";
};
注意:gc2145_b表示后摄像头,因为前后均为gc2145,以此区分,系统根据powerdown来区分前后摄。
阅读全文
0 0
- [RK3128][Android 6.0] 新增一个CIF Camera
- rk3288 camera cif分析
- rk3128 camera sensor的注册
- rk3128 camera sensor的注册
- [RK3128][Android 6.0] 3G模块调试
- [RK3128][Android 6.0] RTC芯片PCF8563调试记录
- [RK3128][Android 6.0] RTC设备注册及调用流程
- [RK3128][Android 6.0] PWM backlight注册及调用流程
- Android 新增一个页面注意事项
- [RK3128][Android 6.0] u-blox GPS芯片 MAX-7Q调试记录
- 搭建瑞芯微rk3128本地android代码服务器
- android 6.0新增view
- Android新增一个emmc 上层的实现
- 在android tegra2中添加一个camera
- android Camera变焦的一个总结
- com.android.camera.Camera
- RK3128平台android系统修改添加遥控器键值码值
- Android camera
- mybatis批量写入及批量更新
- free 命令
- js获取浏览器高度以及clientHeight、scrollHeight、offsetHeight区别
- linux下mysql Access denied for user 'root'@'localhost' (using password:YES)
- mysql数据-实践-初稿
- [RK3128][Android 6.0] 新增一个CIF Camera
- MySQL写入表提示 Duplicate entry 'xxxxx' for key primary
- Ubuntu 文件查看权限和设置权限
- android 多线程+断点续传+进度条
- if __name__ == '__main__': 的用法
- 简单编程题
- 关于安卓应用(APK文件)的二次打包
- tensorflow生成数据集(24)---《深度学习》
- AngularJs一个页面多个ng-app的问题