am335x驱动调试记录
gpio 调试
static void __init am335x_gpio_init(void)
{setup_pin_mux(gpio_pin_mux); //初始化gpio配置 //ext_gpio_init();//printk("--------gpio_init_sucess---------\n");//printk("#####%s\n",__func__);
}//引脚复用的配置,在配置完之后需要检查一下有没有别处和此处配置发生冲突,如果有,注释掉。
static struct pinmux_config gpio_pin_mux[] = {//A{"gpmc_ben1.gpio1_28", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //GPIO_M/S_DET{"xdma_event_intr0.gpio0_19", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //GPIO_ADDR1{"xdma_event_intr1.gpio0_20", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //GPIO_ADDR2//B {"mcasp0_aclkx.gpio3_14", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //IF_GPIO2_MPU{"mcasp0_ahclkx.gpio3_21", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //IF_GPIO1_MPU{"mcasp0_ahclkr.gpio3_17", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //GPIO_REV1{"mcasp0_aclkr.gpio3_18", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //GPIO_REV2//C{"mcasp0_fsx.gpio3_15", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //IF_GPIO3_MPU{"mcasp0_axr0.gpio3_16", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //IF_GPIO4_MPU{"mcasp0_fsr.gpio3_19", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //GPIO_REV3{"mcasp0_axr1.gpio3_20", OMAP_MUX_MODE7 | AM33XX_INPUT_EN | AM33XX_PIN_OUTPUT}, //GPIO_REV4{NULL , 0},};
测试:
root@am335x:~# cd /sys/class/gpio/
root@am335x:/sys/class/gpio# echo 8 >export
root@am335x:/sys/class/gpio# ls
输出:
export gpiochip0 gpiochip64 unexport
gpio8 gpiochip32 gpiochip96
//此处已经出现了gpio8,我们就可以直接操作gpio8了。
root@am335x:/sys/class/gpio# cd gpio8
root@am335x:/sys/devices/virtual/gpio/gpio8# ls
active_low edge subsystem value
direction power uevent
root@am335x:/sys/devices/virtual/gpio/gpio8# echo out >direction //改变gpio8的方向
root@am335x:/sys/devices/virtual/gpio/gpio8# echo 1 >value //给gpio8高电平,然后测量gpio引脚,查看是否设置成功。
root@am335x:/sys/devices/virtual/gpio/gpio8# echo 0 > value
rtc调试
这里使用的外部rtc-pcg8563.这是一个i2c设备,所以先要配置I2C_bord_info
{I2C_BOARD_INFO("pcf8563", 0x51),},
对,就这样就可以了,i2c总线会自动march到rtc-pfc8563.c,然后注册设备,匹配驱动。
watchdog调试
第一步,引脚初始化,注册watchdog设备
static void __init am335x_watch_dog_init(void)
{setup_pin_mux(watchDog_pin_mux);
// printk("Qiyang_watchdog_init\n"); platform_device_register(&watchdog_device);
}
static struct pinmux_config watchDog_pin_mux[] = {{"lcd_data15.gpio0_11", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP},{"lcd_data14.gpio0_10", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP},{NULL , 0},
};
static struct watchdog_platform_data watchdog_data = {.enable_pin = WD_ENABLE_PIN,.feeddog_pin = FEEDDOG_PIN,
};
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
