• kernel 内 make menuconfig

    //  make menuconfig
Device Drivers --->
[*] SPI support --->
<*> GPIO-based bitbanging SPI Master // 这个是gpio-spi 的驱动
<*> User mode SPI device driver support // 这个是生成 /dev/spidev*.*的驱动
  • 在板级文件里面添加:

    //  vim arch/arm/mach-omap2/board-aplex_ECM_5416.c
#define GPIO1_12 GPIO_TO_PIN(1, 12)
#define GPIO1_13 GPIO_TO_PIN(1, 13)
#define GPIO1_14 GPIO_TO_PIN(1, 14)
#define GPIO1_15 GPIO_TO_PIN(1, 15)
#define SPI_GPIO_BUS_NUM 3 // 设置spi 总线编号 static struct spi_gpio_platform_data ecm_5410_gpio_spi_data = {
.sck = GPIO1_12, // 指定clk 的gpio
.mosi = GPIO1_13, // 指定slave input
.miso = GPIO1_14, // 指定 slave output
.num_chipselect = 1, // 指定一共有几个cs
}; static struct platform_device ecm_5410_gpio_spi_device = {
.name = "spi_gpio", // 匹配 spi-gpio.c 里面的驱动名字
.id = SPI_GPIO_BUS_NUM, // 配置 spi 总线编号
.dev = {
.platform_data = &ecm_5410_gpio_spi_data, // 指定配置数据
},
};
// 配置 pin_mux
static struct pinmux_config ecm_5410_gpio_spi_pin_mux[] = {
{"gpmc_ad12.gpio1_12", OMAP_MUX_MODE7 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"gpmc_ad13.gpio1_13", OMAP_MUX_MODE7 | AM33XX_PULL_ENBL | AM33XX_PULL_UP | AM33XX_INPUT_EN},
{"gpmc_ad14.gpio1_14", OMAP_MUX_MODE7 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"gpmc_ad15.gpio1_15", OMAP_MUX_MODE7 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
}; static struct spi_board_info am335x_spi2_slave_info[] = {
{
.modalias = "spidev",
.max_speed_hz = 10000000,
.bus_num = SPI_GPIO_BUS_NUM,
.controller_data = (void *)GPIO1_15, // 设置 cs 总线
.chip_select = 0,
.mode = SPI_MODE_0,
},
}; static void ecm_5410_gpio_spi_init(int evm_id, int profile)
{
setup_pin_mux(ecm_5410_gpio_spi_pin_mux);
// 总线设备注册,先配置到spi-gpio 的总线驱动
platform_device_register(&ecm_5410_gpio_spi_device);
// spi 板级信息注册,生成 /dev/spidev3.0
spi_register_board_info(am335x_spi2_slave_info,
ARRAY_SIZE(am335x_spi2_slave_info));
}; static struct evm_dev_cfg ECM_5412_dev_cfg[] = {
// ... ... 加入板级初始化
{ecm_5410_gpio_spi_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{NULL, 0, 0},
};

am335x gpio 模拟 spi 驱动添加的更多相关文章

  1. linux SPI驱动——gpio模拟spi驱动(三)

    一:首先在我的平台注册platform_device,保证能让spi-gpio.c能执行到probe函数. 1: struct spi_gpio_platform_data { 2: unsigned ...

  2. linux SPI驱动——简单的gpio模拟SPI驱动测试 (二)

    1: /* 2: * Add by xuyonghong for duotin car radio fm 3: * Copyright (C) 2016-5-24 xuyonghong@duotin. ...

  3. GPIO模拟SPI

    上次用gpio模拟i2c理解i2c协议.相同的,我用gpio模拟spi来理解spi协议. 我用的是4线spi,四线各自是片选.时钟.命令/数据.数据. 数据在时钟上升沿传递,数据表示的是数据还是命令由 ...

  4. gpio模拟i2c驱动

    前段时间做项目,需要gpio模拟i2c通信,最后参考了一些资料,然后编写了一个程序.现在发出来,以免以后忘记,也为一些需要的朋友提供参考.不喜勿喷哈. /* 说明:该程序是基于atmel公司的sama ...

  5. LPC4370使用学习:GPIO的引脚功能使用,和12864OLED模拟I2C驱动

    一: 手中有块LPC4370的开发板,因为便宜,所以引脚引出的不多,而且只有基本的底板资源驱动代码和例程. 看着手册和例程看了老半天,写程序写了半天,结果GPIO老是驱动不起来,因为引脚配置寄存器中有 ...

  6. STM32-24位AD7799驱动之手册代码详解,支持模拟SPI和硬件SPI

    1.AD7799介绍 AD7799结构图如下所示: 其中REFIN参考电压建议为2.5V, REFIN电压低于0.1V时,则差分输入ad值就无法检测了,如下图所示: 注意: 如果REG_CONFIG的 ...

  7. 基于TQ2440的SPI驱动学习(OLED)

    平台简介 开发板:TQ2440 (NandFlash:256M  内存:64M) u-boot版本:u-boot-2015.04 内核版本:Linux-3.14 作者:彭东林 邮箱:pengdongl ...

  8. OLED的使用-4线SPI驱动

    一 .OLED屏 1.OLED屏(七针) 2.OLED电路图 3.0.96'OLED简介 该模块特点: 1.三色可选,模块有两种单色和黄蓝双色两种颜色可选,单色为纯白色和纯蓝色,双 色为黄蓝双色: 2 ...

  9. linux enc28j60网卡驱动移植(硬件spi和模拟spi)

    本来想移植DM9000网卡的驱动,无奈硬件出了点问题,通过杜邦线链接开发板和DM9000网卡模块,系统上电,还没加载网卡驱动就直接崩溃了,找不到原因...刚好手上有一个enc28j60的网卡模块,于是 ...

随机推荐

  1. Linux命令-统计文件中的字节数、字数、行数:wc

    Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...

  2. TFS 切换登录用户的方法[转]

    来自:http://blog.csdn.net/tiangaojie123abc/article/details/12121929 方法一 用VS2010开发项目,一直困扰着我的是不知道怎么去切换TF ...

  3. 配置Kafka集群和zookeeper集群

    原文链接请参见:http://www.cnblogs.com/5iTech/articles/6043224.html

  4. Linux时间子系统(五) POSIX Clock

    一.前言 clock是timer的基础,任何一个timer都需要运作在一个指定的clock上来.内核中维护了若干的clock,本文第二章描述了clock的基本概念和一些静态定义的posix clock ...

  5. 【服务器防护】linux 如何查看防火墙是否开启

    service iptables status可以查看到iptables服务的当前状态.但是即使服务运行了,防火墙也不一定起作用,你还得看防火墙规则的设置 iptables -L在此说一下关于启动和关 ...

  6. spring mvc 依赖包

    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop&l ...

  7. 项目打成jar包

    distributionManagement 为发布到本地参考的地址 repository 设置从本地maven库拉取jar包 <project xmlns:xsi="http://w ...

  8. Spring aop与AspectJ的区别?

    根据我看spring官方文档的理解(不出意外是最正确的答案): ①选择spring的AOP还是AspectJ? spring确实有自己的AOP.功能已经基本够用了,除非你的要在接口上动态代理或者方法拦 ...

  9. Eclipse中导入Git项目

    1.先将项目git到本地 2.导入刚刚git到本地项目 if(如果project带.calsspath .project 文件){ 直接用genaral导入或andorid project导入即可. ...

  10. 使用Apache JMeter压測Thrift

    我这里以我的一篇帖子为样例 http://blog.csdn.net/mn960mn/article/details/50476759 这里已经有服务端了,先启动服务端 首先增加maven的依赖 &l ...