在AM3354上做SPI扩展串口
处理器是TI的AM3354,因为串口不够用所以用SPI总线加VK3224扩展了8路串口。但是在修改板级驱动文件arch/arm/mach-omap2/board-am335xevm.c的时候对于SPI引脚复用函数有这么几个问题:
函数体如下:
static struct pinmux_config spi1_pin_mux[] =
{
{"mcasp0_aclkx.spi1_sclk", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"mcasp0_fsx.spi1_d0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_PIN_INPUT_PULLUP},
{"mcasp0_axr0.spi1_d1", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
{"mcasp0_ahclkr.spi1_cs0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_PIN_OUTPUT_PULLUP},
{"xdma_event_intr0.spi1_cs1", OMAP_MUX_MODE4 | AM33XX_PULL_ENBL | AM33XX_PIN_OUTPUT_PULLUP},
{"xdma_event_intr1.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
{NULL, 0},
};
问题:
1.这里OMPA_MUX_MODE3是什么模式?对于OMAP_MUX_MODE的几种模式是怎么解释的?google了半天都查不到很好的资料。
2.按理说spi1_d0和spi1_d1应该有一个是MOSI有一个是MISO,所以应该有一个是INPUT有一个是OUTPUT,为什么这个结构体里两个关键全部设置的是INPUT呢?
困扰了很久的问题,希望能得到一些帮助,多谢各位 自己顶一个~ 这是kernel代码:
16 /* 34xx mux mode options for each pin. See TRM for options */
17 #define OMAP_MUX_MODE0 0
18 #define OMAP_MUX_MODE1 1
19 #define OMAP_MUX_MODE2 2
20 #define OMAP_MUX_MODE3 3
21 #define OMAP_MUX_MODE4 4
22 #define OMAP_MUX_MODE5 5
23 #define OMAP_MUX_MODE6 6
24 #define OMAP_MUX_MODE7 7
TRM 也就是用户手册上有详细解释。 楼主不仔细看DS 该打PP,
Pins SPIx_D0 and SPIx_D1 can function as SIMO or SOMI.
这两个管脚可以设置的 自己好找找在什么地方 我不是做这个MPU的, 至少刚出来时候看了一遍DS。 有点印象, 去用户手册搜下 mangocity 发表于 2013-12-9 16:53
这是kernel代码:
16 /* 34xx mux mode options for each pin. See TRM for options */
谢谢!我去看一下 boyiee 发表于 2013-12-9 16:57
楼主不仔细看DS 该打PP,
Pins SPIx_D0 and SPIx_D1 can function as SIMO or SOMI.
该打该打~不过。。。DS是啥? datasheet啊
页:
[1]