am335x gpio 模拟 spi 驱动添加
2017-10-23 13:54
1096 查看
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}, };
相关文章推荐
- S5PV210 Linux 模拟SPI方式控制ADS7846触摸屏驱动
- Android 基于sx8652的触摸屏驱动(gpio模拟spi)
- GPIO口模拟SPI - 驱动W25Qxx
- mt7628 gpio模拟spi驱动si32171
- LPC1788-IO模拟SPI--驱动AD7708--寄存器操作
- 51 软件模拟SPI驱动OLED
- stm32驱动3.2寸触摸屏(包括IO模拟,SPI硬件接口)
- i2c 与 spi 设备在新版内核中不采用DTS设备树形式 在驱动添加设备信息(board_info)的方法
- STM8S1003 模拟SPI 驱动 SI4432
- linux SPI驱动 - 模拟gpio
- STM32 软件模拟SPI时序驱动NRF24L01
- SPI的模拟驱动
- spi驱动--IO模拟
- linux SPI驱动——简单的gpio模拟SPI驱动测试 (二)
- Linux下SPI和IIC驱动免在设备树上添加设备信息的编写方法
- linux SPI驱动——gpio模拟spi驱动(三)
- 并口模拟I2C、SPI总线驱动的LED点阵
- linux 下的nrf24l01成功的驱动,模拟spi
- STM8S1003 模拟SPI 驱动 SI4432
- 51单片机驱动VS1003(模拟spi/自带SPI)