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,
};


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部