S3C2440 SPI驱动框架
S3C2440 SPI驱动代码详细解读:
https://www.linuxidc.com/Linux/2012-08/68402p4.htm
一、platform device and board_info
/* /arch/arm/plat-s3c24xx*/
static struct resource s3c_spi0_resource[] = {
[] = {
.start = S3C24XX_PA_SPI,
.end = S3C24XX_PA_SPI + 0x1f,
.flags = IORESOURCE_MEM,
},
[] = {
.start = IRQ_SPI0,
.end = IRQ_SPI0,
.flags = IORESOURCE_IRQ,
} };
static u64 s3c_device_spi0_dmamask = 0xffffffffUL;
struct platform_device s3c_device_spi0 = {
.name = "s3c2410-spi", /* 匹配platform_device 的.driver.namen */
.id = ,
.num_resources = ARRAY_SIZE(s3c_spi0_resource),
.resource = s3c_spi0_resource,
.dev = {
.dma_mask = &s3c_device_spi0_dmamask,
.coherent_dma_mask = 0xffffffffUL
}
};
EXPORT_SYMBOL(s3c_device_spi0); /* /arch/arm/mach-s3c2440/mach-tq2440.c */
static struct spi_board_info s3c2440_spi0_board[] = {
[] = {
.modalias = "spidev",
.bus_num = ,
.chip_select = ,
.irq = IRQ_SPI0, //IRQ_EINT10,/* 修改无效 */
.max_speed_hz = **,
},
}; static struct s3c2410_spi_info s3c2440_spi0_platdata = {
.pin_cs = S3C2410_GPG2,
.num_cs = ,
.bus_num = ,
}; static struct platform_device *tq2440_devices[] __initdata = {
......&s3c_device_spi0, /* sunhj add for spi0 */
&s3c_device_spi1,
};
static void __init tq2440_machine_init(void)
{
platform_add_devices(tq2440_devices, ARRAY_SIZE(tq2440_devices));
/* sunhj add for spi */
s3c_device_spi0.dev.platform_data= &s3c2440_spi0_platdata;
spi_register_board_info(s3c2440_spi0_board, ARRAY_SIZE(s3c2440_spi0_board));
}
二、Platform driver
/* /driver/spi/spi_s3c24xx.c */
S3C2440 SPI驱动框架的更多相关文章
- SPI 驱动框架
SPI 驱动框架 1. 枚举过程 drivers/spi/spi.c: spi_register_board_info /* 对于每一个spi_master,调用spi_match_master_to ...
- linux驱动基础系列--linux spi驱动框架分析
前言 主要是想对Linux 下spi驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.设备模型等也不进行详细说明原理.如果有任何错误地方,请指出,谢谢! spi ...
- linux驱动基础系列--linux spi驱动框架分析(续)
前言 这篇文章是对linux驱动基础系列--linux spi驱动框架分析的补充,主要是添加了最新的linux内核里设备树相关内容. spi设备树相关信息 如之前的文章里所述,控制器的device和s ...
- spi驱动框架全面分析,从master驱动到设备驱动
内核版本:linux2.6.32.2 硬件资源:s3c2440 参考: 韦东山SPI视频教程 内容概括: 1.I2C 驱动框架回顾 2.SPI 框架简单介绍 3.maste ...
- Linux驱动修炼之道-SPI驱动框架源码分析(上)【转】
转自:http://blog.csdn.net/lanmanck/article/details/6895318 SPI驱动架构,以前用过,不过没这个详细,跟各位一起分享: 来自:http://blo ...
- SPI驱动框架-1(DM8127 Linux2.6.37为例)
一.驱动程序结构 1.platform_device 文件:/arch/arm/mach-omap2/device.c static struct omap2_mcspi_platform_confi ...
- Linux驱动:SPI驱动编写要点
题外话:面对成功和失败,一个人有没有“冠军之心”,直接影响他的表现. 几周前剖析了Linux SPI 驱动框架,算是明白个所以然,对于这么一个庞大的框架,并不是每一行代码都要自己去敲,因为前人已经把这 ...
- SPI在linux3.14.78 FS_S5PC100(Cortex A8)和S3C2440上驱动移植(deep dive)
由于工作的原因,对SPI的理解最为深刻,也和SPI最有感情了,之前工作都是基于OSEK操作系统上进行实现,也在US/OS3上实现过SPI驱动的实现和测试,但是都是基于基本的寄存器操作,没有一个系统软件 ...
- RT Thread的SPI设备驱动框架的使用以及内部机制分析
注释:这是19年初的博客,写得很一般,理解不到位也不全面.19年末得空时又重新看了RTThread的SPI和GPIO,这次理解得比较深刻.有时间时再整理上传. -------------------- ...
随机推荐
- python技术
要把zabbix弄成自动监控,下发任务,部署,事件恢复得功能
- NumPy使用 Matplotlib 绘制直方图
NumPy - 使用 Matplotlib 绘制直方图 NumPy 有一个numpy.histogram()函数,它是数据的频率分布的图形表示. 水平尺寸相等的矩形对应于类间隔,称为bin,变量hei ...
- 源码安装LNMP与搭建Zabbix
系统环境:CentOS release 6.5 (Final) 搭建Zabbix 3.0对PHP环境要求>= 5.4 一.下载NMP的软件包: N:wget http://nginx.org/d ...
- chrome浏览器经常无响应
chrome浏览器(v68)安装一个fiddler证书导入后点击关闭,会出现无响应 有时候动不动会无响应,今天百度了一下,发现真正的"罪魁祸首"是搜狗输入法,升级一下就好了 万恶的 ...
- AI实现五子棋机器人(一)
前言: 前几天在 csdn 下载资源的时候才发现自己 csdn 有近 200 的下载积分,看了看共享的资源,哈哈 ... 7年前写的五子棋游戏很受欢迎. 下载地址:新手入门五子棋游戏 刚入行的 ...
- LeetCode OJ:Majority Element II(主元素II)
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...
- react style: 二级菜单
1.样式 @import "../../styles/varibles"; .app-sidebar { overflow: hidden; width: 180px; > ...
- L145
实践是检验真理的唯一标准.Only social practice can be the criterion of truth.工会负责人谴责这一行动破坏了协议.Union officials den ...
- L143 Seasonal 'Plague' Hits College Freshman
Sometimes, all the hand sanitizer in the world cannot prevent the inevitable.College freshmen across ...
- 【html】html笔记综合
基本标签与属性 <html>全部 <body>主体 <h1>标题 <p>段落 <br>空行,一般都会额外添加,并不总是需要自己添加,可以在& ...