uboot gpio

news/2024/12/1 0:21:34/

gpio_request_by_name_nodev(dev, node, “gpio”, 0, &gpio, GPIOD_IS_OUT);
// 调用gpio_request_by_name_nodev来获取node节点中的"lgpio"属性,并转化为gpio_desc描述符,标志为输出
GPIOD_IS_IN 输入
dm_gpio_set_value(&gpio, 0); // 将gpio设置输出低电平
dm_gpio_set_value(&gpio, 1); // 将gpio设置输出高电平

dm_gpio_is_valid //判断该gpio_desc是否可用

dm_gpio_request //申请gpio_desc描述的GPIO
dm_gpio_get_value //获取gpio_desc描述的GPIO的值

uboot启动驱动
static void owner_option(void)
{
struct udevice *dev2;
uclass_get_device_by_driver(UCLASS_MISC,
DM_GET_DRIVER(option), &dev2);
}
将函数添加board_init中

option.c
驱动
#include <common.h>
#include <dm.h>
#include <errno.h>
#include <asm-generic/gpio.h>
#include <dm/lists.h>
#include <misc.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <command.h>
#include <dm/of_access.h>
#include <dm/ofnode.h>

static int option_probe(struct udevice *dev)
{
struct gpio_desc gpio_eeprom_wp;
struct device_node *np;
int ret;
np = of_find_compatible_node(NULL,NULL,"—");
if(np == NULL)
{
printf("%s :can not get —\r\n",func);
}
else
{
printf("%s : get — node successed : -->%s\r\n",func,np->name);
}

ret = gpio_request_by_name(dev, "gpio", 0, &gpio,GPIOD_IS_OUT);
if(ret)
{printf("%s :can not get eepro_wp gpio\r\n",__func__);
}
else
{printf("%s :get eepro_wp gpio \r\n",__func__);
}

/---------------操作gpio---------------/
return 0;
}

static int option_remove(struct udevice *dev)
{
return 0;
}

static const struct udevice_id option_ids[] = {
{ .compatible = “—” },
{ }
};

U_BOOT_DRIVER(option) = {
.name = “—”,
.id = UCLASS_GPIO,
.of_match = misc_vantron_ids,
.probe = option_probe,
.remove = option_remove,
};

dts
gpio-verify {
compatible="—";
pinctrl-names = “default”;
pinctrl-0 = <&pin>;
gpio = <&gpio gpio10 GPIO_ACTIVE_HIGH>;
status = “okay”;
};

参考连接:https://blog.csdn.net/weixin_68294039/article/details/125937245


http://www.ppmy.cn/news/368531.html

相关文章

Vue3的响应式原理是什么?

Vue3的响应式原理是一个黑科技&#xff0c;它能够让我们的应用在数据发生变化时自动更新页面&#xff0c;而不需要手动操作DOM。这个神奇的功能背后涉及到一些复杂的原理&#xff0c;下面我会从新手的角度用幽默的语气来解释一下。 首先&#xff0c;我们要知道Vue3的响应式原理…

Nginx接收Http协议请求转发使用Https协议

Nginx接收Http协议请求转发使用Https协议 缘起第一次配置Nginx重新编译Nginx重启Nginx 缘起 公司使用阿里的apigateway&#xff0c;规定不太友好&#xff0c;同是SIT环境&#xff0c;A系统的SIT1环境居然不能调用B系统的SIT2环境的接口。因为各个系统之间部署的SIT环境数量不同…

selenium面试题总结

今天有同学问到seleinum面试的时候会问到的问题&#xff0c;随便想了想&#xff0c;暂时纪录一下。欢迎大家在评论中提供更多问题。 1.selenium中如何判断元素是否存在&#xff1f; selenium中没有提供原生的方法判断元素是否存在&#xff0c;一般我们可以通过定位元素异常捕获…

nginx配置维护页面的方法

一、描述 本人公司一般发版是不停项目的&#xff0c;但是遇到特殊情况、就不得不停项目发版&#xff0c;用户就会有几个小时不能使用。 停项目发版时&#xff0c;会修改下nginx&#xff0c;让所有请求都跳转到维护页面&#xff0c;在此记录下修改方法。 二、nginx配置维护页面…

手机端网站制作

准备 1.前段使用HBuilder 2.使用夜神模拟器来看自己写的页面 链接: https://pan.baidu.com/s/1zUqL2WYnbcM3cR98P-umWw 提取码: bmpe 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 3. 4.下载喜马拉雅软件上面的课程 从Response页签中复制信息内容 -- 未来查…

手机网站如何制作,移动网站怎么建设?

手机网站建设其实跟建网站的步骤是类似的&#xff0c;如果你觉得那些能够建设网站的人非常的厉害&#xff0c;也希望能够拥有一个自己的网站&#xff0c;其实只要你具备了一定的财力&#xff0c;完全可以通过网上查资料&#xff0c;自己来独立完成让我们来看看创建移动网站的步…

手机网站制作:PC网站怎么转成手机网站

随着智能手机的普遍使用&#xff0c;移动互联网用户的数量随之猛增。当我们关注PC电脑网站制作的时候&#xff0c;一定不要忘了制作一个手机网站。这样我们的网站用户就可以轻松使用手机浏览我们自己做的网站了。 很多站长之前是制作了一个PC网站&#xff0c;那么怎么将PC网站转…

手机网站开发公司

我们提供包括手机网站设计、托管和APP开发等服务。 我们的手机网络专家关注您的移动消费者&#xff0c;使手机网站能够满足您和您的用户的需求。我们的移动网络专家设计、开发和管理您的移动网站&#xff0c;以低成本进行定制开发&#xff0c;以及一旦启动&#xff0c;您可以使…