s5pv210 fimc 之 fimc-dev.c

发布者:知识智慧最新更新时间:2024-12-16 来源: cnblogs关键字:s5pv210 手机看文章 扫描二维码
随时随地手机看文章

1350     }    

1351     

1352     /* fimc clock */    

1353     ctrl->clk = clk_get(&pdev->dev, pdata->clk_name);    

1354     if (IS_ERR(ctrl->clk)) {    

1355         fimc_err('%s: failed to get fimc clock sourcen',    

1356             __func__);    

1357         goto err_v4l2;    

1358     }    

1359     

1360     /* set parent for mclk */    

1361     clk_set_parent(ctrl->clk, srclk);    

1362     

1363     /* set rate for mclk */    

1364     clk_set_rate(ctrl->clk, pdata->clk_rate);    

1365     

1366     /* V4L2 device-subdev registration */    

1367     ret = v4l2_device_register(&pdev->dev, &ctrl->v4l2_dev);    

1368     if (ret) {    

1369         fimc_err('%s: v4l2 device register failedn', __func__);    

1370         goto err_fimc;    

1371     }    

1372     

1373     /* things to initialize once */    

1374     if (!fimc_dev->initialized) {    

1375         ret = fimc_init_global(pdev);    

1376         if (ret)    

1377             goto err_v4l2;    

1378     }    

1379     

1380     /* video device register */    

1381     ret = video_register_device(ctrl->vd, VFL_TYPE_GRABBER, ctrl->id);    

1382     if (ret) {    

1383         fimc_err('%s: cannot register video drivern', __func__);    

1384         goto err_v4l2;    

1385     }    

1386     

1387     video_set_drvdata(ctrl->vd, ctrl);    

1388     

1389     ret = device_create_file(&(pdev->dev), &dev_attr_log_level);    

1390     if (ret < 0) {    

1391         fimc_err('failed to add sysfs entriesn');    

1392         goto err_global;    

1393     }    

1394     printk(KERN_INFO 'FIMC%d registered successfullyn', ctrl->id);    

1395     

1396     return 0;    

1397     

1398 err_global:    

1399     video_unregister_device(ctrl->vd);    

1400     

1401 err_v4l2:    

1402     v4l2_device_unregister(&ctrl->v4l2_dev);    

1403     

1404 err_fimc:    

1405     fimc_unregister_controller(pdev);    

1406     

1407 err_alloc:    

1408     kfree(fimc_dev);    

1409     return -EINVAL;    

1410     

1411 }    

    

1333 ~ 1334 调用平台的gpio设置函数,一般来说,这个用来设置external CameraA/CameraB的输入输出  

    

1344 ~ 1364 设置mclk,mclk的频率由sensor的输出图像尺寸, 如果外围sensor自身有晶振,那么CPU不需要对外提供mclk  

    

1381 ~ 1385 注册一个video device,会生成设备节点/dev/videoX  

 
  


  

  

  

  


  

  


[1] [2] [3]
关键字:s5pv210 引用地址:s5pv210 fimc 之 fimc-dev.c

上一篇:s5pv210移植Minigui3.0.12
下一篇:X210(s5pv210)中断系统

推荐阅读最新更新时间:2026-03-14 08:49

icache_设置栈调用C函数_S5PV210
start.S文件中: //#define CONFIG_SYS_ICACHE_OFF .global _start _start: // 关闭看门狗 ldr r0, =0xE2700000 //在s5pv210手册中0xE270_0000是看门狗寄存器的地址 mov r1, #0 str r1, // 打开icache可提高运行速度 #ifdef CONFIG_SYS_ICACHE_OFF // clear bit 12 (I) I-cache bic r0, r0, #0x00001000 //bic:逻辑与非 //在s3c2410英文手册
[单片机]
S5PV210开发 -- I2C 你知道多少?(一)
网上的资料很多,但是大多讲解的不太全面。如果只是单纯的讲一下I2C总线协议,那就没必要再写了。因为MPU6050 开发部分已经将 I2C 通信协议,讲的很清楚了。但是I2C设备驱动、上拉电阻取值、设备地址、电路设计、I2C仲裁、Linux下配置等都还没细讲。So,这篇文章的目的应该是讲一种方法,以后遇到I2C设备知道从哪入手。接下来主要以AT24C02、MT9P031、MPU6050 为例,展开对I2C最后的总攻。 一、概述 参看:I2C -- 维基百科 I2C(Inter-Integrated Circuit)字面上的意思是集成电路之间,它其实是I2C Bus简称,所以中文应该叫集成电路总线,它是一种串行通信总线(同步、
[单片机]
<font color='red'>S5PV210</font>开发 -- I2<font color='red'>C</font> 你知道多少?(一)
S5PV210 点亮Led
GPC1CON, R/W, Address = 0xE020_0080 GPC1DAT, R/W, Address = 0xE020_0084 举例 #define GPC1CON *((volatile unsigned int*)0xE0200080) #define GPC1DAT *((volatile unsigned int*)0xE0200084) *(unsigned int*)GPC1CON &= ~(0xf 12); *(unsigned int*)GPC1CON |= (0x1 12); *(unsigned int*)GPC1DAT &= ~(0x1 3); *(un
[单片机]
<font color='red'>S5PV210</font> 点亮Led
QT开发之移植qt5.6.2到S5PV210
1、移植前的准备工作  (1)确认已经烧录uboot,并设置环境变量bootcmd和bootargs从tftp、nfs启动;  (2)zImage事先编译好的,文件夹形式的rootfs准备好,成功启动内核进入命令行;  (3)ts驱动源码确认添加、设备文件确认OK(dev/input/event2)(cat dev/input/event2 点击触摸屏有乱码打印出来); 2、tslib移植和测试  (1)源码下载  (2)解压 tar -xvf tslib-1.4.tar.gz  (3)配置 cd tslib ./autogen.sh echo ac_cv_func_malloc_0_nonn
[单片机]
wince 5.0/wince6.0 2440/6410/S5PV210 触摸屏驱动 滤波函数的介绍
以前曾经遇到过wince 手持机,POS机触摸屏 抖动,跳点,飞点的问题,其中起作用最大的就是触摸屏滤波函数,现在给大家介绍一下。 //----------------------------------------------------------------------------- //--函数介绍:触摸屏滤波函数,每次输入一个采集到的触摸屏点(x/y),然后进行滤波 //------------------------------------------------------------------------------ static BOOL Touch_Pen_Filtering(INT *px, INT *py
[单片机]
【ARM裸机s5pv210 】程序烧录
1.SD卡刷uboot   准备工作   (1)securcrt(115200,数据流控制全不选)   (2)usb转串口驱动   (3)破坏iNand中的bootloader已从SD2启动   (4)九鼎x210_fusingtool.exe   (5)准备好的uboot.bin   流程   (1)使用x210_fusingtool将uboot.bin刷入SD卡   (2)板子启动方式选择emmc启动   板子启动流程   开机- 读iNand的uboot失败 - 读SD卡uboot成功 - 运行nandflash中的系统 2.用fastboot刷机   准备工作   (1)OTG数据线,禁用数字签名   (2)fastboo
[单片机]
【ARM裸机s5pv210 】时钟配置
clock.c // 时钟控制器基地址 #define ELFIN_CLOCK_POWER_BASE 0xE0100000 // 时钟相关的寄存器相对时钟控制器基地址的偏移值 #define APLL_LOCK_OFFSET 0x00 #define MPLL_LOCK_OFFSET 0x08 #define APLL_CON0_OFFSET 0x100 #define APLL_CON1_OFFSET 0x104 #define MPLL_CON_OFFSET 0x108 #define CLK_SRC0_OFFSET 0x200 #define CL
[单片机]
【ARM裸机s5pv210 】芯片初始化
#define GPJ0CON 0xE0200240 #define GPJ0DAT 0xE0200244 #define WTCON 0xE2700000 #define SVC_STACK 0xd0037d80 .global _start _start: // 第1步:关看门狗(向WTCON的bit5写入0即可) ldr r0, =WTCON ldr r1, =0x0 str r1, // 第2步:设置SVC栈    满减栈,满的意思是入栈先移动指针再填入数据,减的意思是栈从高到低用 ldr sp, =SVC_STACK // 第3步:开/关icache
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved