• 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. JavaScript-实现滚动条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. (原)Ubuntu16中安装nvidia的显卡驱动

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5638185.html part1 直接在“软件和更新-附加驱动”里面设置 安装完ubuntu16后,显 ...

  3. 微信小程序 HelloWorld

    本篇文章由:http://xinpure.com/micro-applet-helloworld/ 微信官方文档及工具已经开放!!! https://mp.weixin.qq.com/debug/wx ...

  4. 用Python实现BP神经网络(附代码)

    用Python实现出来的机器学习算法都是什么样子呢? 前两期线性回归及逻辑回归项目已发布(见文末链接),今天来讲讲BP神经网络. BP神经网络 全部代码 https://github.com/lawl ...

  5. Bugtags 让你的 APP 测试轻松、上线安心

    Bug 管理系统再进化 Bugtags 的创业团队,在过去几年,做了很多方向的尝试——没错,是开发了很多 APP. 每一轮迭代,都会被繁琐的 APP 测试困扰:无休止的截屏上传电脑,无数次的开发与测试 ...

  6. Chrome浏览器桌面通知提示设置

    版本 24.0.1312.56 m     老版本23.* 桌面通知,也可以由用户在Chrome浏览器中自定义:板手 -> 选项  -> 高级选项 –> 通知 (管理例外情况…).

  7. SDUT 2608 Alice and Bob (巧妙的二进制)

    Alice and Bob Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Alice and Bob like playing ...

  8. Android 小技巧-- TextView与EditText 同步显示

    方法一.利用View.OnKeyListener"同步"显示 EditText  myEdit = (EditText)findViewById(R.id.myEdit); Tex ...

  9. 【Linux】目录权限与文件权限

    现在我们知道了Linux系统内文件的三种身份(拥有者.群组与其他人),知道每种身份都有三种权限(rwx),已知道能够使用chown, chgrp, chmod去修改这些权限与属性,当然,利用ls -l ...

  10. python练习笔记——模拟双色球随机输出情况

    编写Python函数:完成一个双色球彩票的模拟生成过程, 其中前六个为蓝色球,数字范围1-33,不可重复.最后一个为红色球 1-16. 使用random完成,最后将7个数进行排列放到列表中 # 引入r ...