【经验分享】AM335x关于GPIO口设置的补充说明

文章讲述了如何在Linux系统中对GPIO口进行模块化配置,包括在原理图和规格书中查找GPIO口信息,配置寄存器,初始化设置,以及使用ioctl进行控制。通过编译ko文件并在arm板上加载,实现GPIO口的功能控制。
摘要由CSDN通过智能技术生成

最近又一次配置gpio口,这次对于gpio口的要求又提升了,需要模块化编译的ko文件进行操作,那么我们需要绕开内核的配置。所以需要在ko文件中进行配置。
第一步:
先在原理图上查找对应gpio口,我们对应的gpio口是gpio3_17。
在这里插入图片描述
第二步:
在规格书上查找对应的gpio口的配置,对应的gpio口是模式7。
在这里插入图片描述
第三步:
参考手册中查找控制器寄存器以及offset偏置量.
在这里插入图片描述
在这里插入图片描述
第四步:
配置gpio口初始化设置,对寄存器进行操作配置,配置模式7和输出模式,这样上层才可以进行ioctl控制。

void TEST_PIN_init(void)
{
    int ret;
    int i;
    uint32_t	tmp_base;
    for (i = 0; i < 1; i++)
    {
        ret = gpio_request(c_pin_gpios[i], "Test2");
        if (ret) {
            printk("%s: request-%d= GPIO %d for TEST failed, ret = %d\n", DEVICE_NAME,i,
                    c_pin_gpios[i], ret);
            }
    }

	request_region(AM33XX_CONTROL_PADCONF_MUX_PBASE+AM33XX_CONTROL_PADCONF_MCASP0_AHCLKR_OFFSET,4,"c-test");
	tmp_base=(unsigned)ioremap(AM33XX_CONTROL_PADCONF_MUX_PBASE+AM33XX_CONTROL_PADCONF_MCASP0_AHCLKR_OFFSET,4);
	writel(OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT,tmp_base);
	gpio_direction_output(c_pin_gpios[0], 1);
	gpio_set_value(c_pin_gpios[0], 0);

    printk(DEVICE_NAME"\tTEST_PIN_initialized 1\n");

}

第五步:
ioctl控制代码编写,完成后编译生成ko文件,arm板insmod ko文件后,上层就可以愉快的调用了。

static long beep_ioctl(struct file *file, unsigned int cmd)
{

	printk("%s test,cmd = 0x%x,\n",__func__,cmd);


	if(cmd == TEST_OFF)
	{
		gpio_set_value(c_pin_gpios[0], 0);
	}
	else if (cmd == TEST_ON)
	{
		gpio_set_value(c_pin_gpios[0], 1);
	}
	return 0;
}

第六步
上层测试模块接口,大功告成,这样软件cv工程师就可以愉快的玩耍了。可以通过测试波形或者示波器等debug工具进行验证。

ioctl(fd,GPIO_HIGH); 
ioctl(fd,GPIO_LOW); 

总结:对于gpio口的配置,一定要先进行gpio口的寄存器功能模式配置,配置完成后才能愉快的调用,还有一篇也是说的这事,over。
https://blog.csdn.net/Jason_Yansir/article/details/130969689?spm=1001.2014.3001.5502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason Yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值