6761 i2c设备添加gpio控制设备上电

本文探讨了在32位与64位内核环境下,使用GPIO进行设备控制的不同表现,特别是在64位kernel上遇到的invalid GPIO错误,导致IC上电失败的问题。文中提供了一种通过pinctrl进行替代控制的方法,详细展示了DTS配置与驱动代码的实现过程。

起初使用如下方式

&i2c1 {

        alsps@44 {
                ldo_hrs_pin = <&pio 177 0>;
                 ....
         };

};

在驱动中按如下的写法

LDO_HRS_PIN = of_get_named_gpio(client->dev.of_node,"ldo_hrs_pin", 0);

gpio_request(LDO_HRS_PIN, "LDO_HRS_PIN");

上述写法在32位kernel上没有问题,但是在64位kernel上会报 invalid GPIO 23062,从而导致ic上电失败,具体原因不详,希望大牛们指点一二,为了不耽误项目进度,因此选择用下面的方式进行控制。

dts中的写法

&i2c1 {

        alsps@44 {
                 /* customization */
                 pinctrl-names = "hrs_en_low", "hrs_en_high";
                 pinctrl-0 = <&hrs_en_low>;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值