am335x修改sd卡cd管脚
来源:互联网 发布:js处理json 编辑:程序博客网 时间:2024/05/22 06:40
任务:修改SD卡CD管脚,CD管脚是用来给系统通知SD卡的插入与拔出消息的,tq3358默认用的是 spi0_cs1(GPIO0_6),现在要改为GPIO1_16
1. 查看原理图核心板原理图
MMC0的SDCD接的是GPIO0_6。
2. 查看 arch\arm\mach-omap2\mux33xx.c,这个文件是ti3358的管脚定义,不要修改。
_AM33XX_MUXENTRY(SPI0_CS1, 0,
"spi0_cs1", "uart3_rxd", NULL, "mmc0_pow",
NULL, "mmc0_sdcd", NULL, "gpio0_6"),
这部分就是sd卡cd管脚的定义和功能服用描述。
然后找到GPIO1_16的管脚定义
_AM33XX_MUXENTRY(GPMC_A0, 0,
"gpmc_a0", "mii2_txen", "rgmii2_tctl", "rmii2_txen",
NULL, NULL, NULL, "gpio1_16"),
3. 修改arch\arm\mach-omap2\board-am335xevm.c,这个文件是ti3358硬件管脚的配置。
找到mmc初始化的位置
static void mmc0_init(int evm_id, int profile)
{
setup_pin_mux(mmc0_pin_mux);
omap2_hsmmc_init(am335x_mmc);
return;
}
从初始化的函数可以看出,主要修改两个结构体。
1) mmc0_pin_mux 与sd卡相关的管脚配置
/* Module pin mux for mmc0 */
static struct pinmux_config mmc0_pin_mux[] = {
{"mmc0_dat3.mmc0_dat3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_dat2.mmc0_dat2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_dat1.mmc0_dat1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_dat0.mmc0_dat0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_clk.mmc0_clk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_cmd.mmc0_cmd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"ecap0_in_pwm0_out.mmc0_sdwp", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
{"spi0_cs1.mmc0_sdcd", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
通过刚才查看核心板的原理图,显然是修改这一行,照猫话虎的改为:注意,前面的字符串只是起到
一个标识的作用,后面的模式号才是正在起作用的。
{"gpmc_a0.gpio1_16",OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
{NULL, 0},
};
2) am335x_mmc sd卡的硬件配置信息
static struct omap2_hsmmc_info am335x_mmc[] __initdata = {
{
.mmc = 1,
.caps = MMC_CAP_4_BIT_DATA,
.gpio_cd = GPIO_TO_PIN(0, 6),
修改这一行为
.gpio_cd = GPIO_TO_PIN(1, 16),
.gpio_wp = GPIO_TO_PIN(3, 18),
.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3V3 */
},
{
.mmc = 0, /* will be set at runtime */
},
{
.mmc = 0, /* will be set at runtime */
},
{} /* Terminator */
};
4. 将board-am335xevm.c用到的有关gpio1_16的代码屏蔽掉,以免干扰。
在此文件里搜索gpmc_a0,因为ti的管脚都是复用的,gpio1_16这个管脚的默认名称可以从刚才 mux33xx.c 这个文件里找到,就是gpmc_a0。删除掉以下两行即可。
{"gpmc_a0.gpio1_16", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
{"gpmc_a0.gpio1_16", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
- am335x修改sd卡cd管脚
- Micro SD卡 管脚定义
- AM335X SD卡分区制作
- AM335X BeagleBone 之格式化SD卡
- am335x sd卡分区制作文档
- SD管脚和应答数据格式
- am335x 移植SD卡启动 (SD卡分区+Samba移植+Qt)(上)
- am335x配置修改
- AM335x MMC/SD Driver's Guide中文手册
- wince6 2416 sd卡显示名称修改
- sd卡文件修改及备份记录
- 修改SD卡目录访问权限
- am335X 开发板上修改IP地址
- ZigBee的LED等运行流程以及管脚的修改
- Android 5.1-s5p6818平台lcd背光使能管脚修改
- imx6q yocto修改device tree中uart管脚配置
- 修改mdev配置支持SD卡自动挂载
- TI am335x系列(am3352)LCD驱动修改移植
- POJ 3009 图的遍历+DFS+回溯
- oracle vm virtualbox按照Ubuntu
- 【转载】判断整数序列是不是二元查找树的后序遍历结果
- poj 1860 Currency Exchange (SPFA)
- 安装VirtualBox
- am335x修改sd卡cd管脚
- 动态规划 最长公共子序列
- 前端工程师必须掌握的知识点
- 并发控制与事务隔离
- C++中Sort函数使用方法
- android 实战练习 回归手机卫士 一 主界面布局
- 特殊的二进制数
- 判断回文字符串
- Java位运算符详解