6705|3

965

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

AM335X 的GPMC怎么接多个设备,GPIB谁用过 [复制链接]

最近公司做的一个电源设备,要做成LXI设备,支持GPIB,USB和LAN,LAN已经解决了,USB有现成的,GPIB初步打算使用TNT882或NAT9914,在网上找到了很多51驱动这两个芯片的资料,直接用IO口模拟时序,但我们使用的主控是TI AM335X,可以把TNT882或NAT9914接到AM335X的GPMC上,现在GPMC已经接了NAND,如果再接上NAT9914 CS和中断脚不同,其他脚都和NAND复用,但驱动要怎么修改呢?附上NAND驱动的入口
  1. static void evm_nand_init(int evm_id, int profile)
  2. {
  3.         struct omap_nand_platform_data *pdata;
  4.         struct gpmc_devices_info gpmc_device[2] = {
  5.                 { NULL, 0 },
  6.                 { NULL, 0 },
  7.         };

  8.         setup_pin_mux(nand_pin_mux);
  9.         pdata = omap_nand_init(am335x_nand_partitions,
  10.                 ARRAY_SIZE(am335x_nand_partitions), 0, 0,
  11.                 &am335x_nand_timings);
  12.         if (!pdata)
  13.                 return;
  14.         pdata->ecc_opt =OMAP_ECC_BCH8_CODE_HW;
  15.         pdata->elm_used = true;
  16.         gpmc_device[0].pdata = pdata;
  17.         gpmc_device[0].flag = GPMC_DEVICE_NAND;

  18.         omap_init_gpmc(gpmc_device, sizeof(gpmc_device));
  19.         omap_init_elm();
  20. }
复制代码

  1. /* Pin mux for nand flash module */
  2. static struct pinmux_config nand_pin_mux[] = {
  3.         {"gpmc_ad0.gpmc_ad0",          OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  4.         {"gpmc_ad1.gpmc_ad1",          OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  5.         {"gpmc_ad2.gpmc_ad2",          OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  6.         {"gpmc_ad3.gpmc_ad3",          OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  7.         {"gpmc_ad4.gpmc_ad4",          OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  8.         {"gpmc_ad5.gpmc_ad5",          OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  9.         {"gpmc_ad6.gpmc_ad6",          OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  10.         {"gpmc_ad7.gpmc_ad7",          OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  11.         {"gpmc_wait0.gpmc_wait0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
  12.         {"gpmc_wpn.gpmc_wpn",          OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
  13.         {"gpmc_csn0.gpmc_csn0",          OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
  14.         {"gpmc_advn_ale.gpmc_advn_ale",  OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
  15.         {"gpmc_oen_ren.gpmc_oen_ren",         OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
  16.         {"gpmc_wen.gpmc_wen",     OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
  17.         {"gpmc_ben0_cle.gpmc_ben0_cle",         OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
  18.         {NULL, 0},
  19. };
复制代码



最新回复

这看像3.0的内核 cs不一样不就可以了吗 控制寄存器都是针对不同的cs进行配置的   详情 回复 发表于 2017-6-27 09:54
点赞 关注

回复
举报

1173

帖子

3

TA的资源

五彩晶圆(初级)

沙发
 
高级货,不懂,帮顶
 
 

回复

5979

帖子

8

TA的资源

版主

板凳
 
这看像3.0的内核

cs不一样不就可以了吗
控制寄存器都是针对不同的cs进行配置的

点评

是的,是3.2的内核,没有DTS,您是说再写一个类似于evm_nand_init的函数,nand_pin_mux中的引脚替换成接NAT9914的引脚,CS和中断不一样,然后再写对应的驱动就可以了?  详情 回复 发表于 2017-6-27 19:51
 
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复

965

帖子

0

TA的资源

纯净的硅(高级)

4
 
chenzhufly 发表于 2017-6-27 09:54
这看像3.0的内核

cs不一样不就可以了吗
控制寄存器都是针对不同的cs进行配置的

是的,是3.2的内核,没有DTS,您是说再写一个类似于evm_nand_init的函数,nand_pin_mux中的引脚替换成接NAT9914的引脚,CS和中断不一样,然后再写对应的驱动就可以了?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表