pinctrl相关函数

//在设备树中定义pinctrl状态

gpio_dbg {
        compatible = "gpio_dbg";
        status = "okay";
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&gpio_12_active>;
        pinctrl-1 = <&gpio_12_suspend>;
 };
gpio_12_active: gpio_12_active {
           mux {
                pins ="gpio12";
                function = "gpio";
           };
                       
           config {
               pins = "gpio12";
               drive-strength = <2>;
               bias-disable;
           };
}; 
gpio_12_suspend: gpio_12_suspend {
         mux {
                pins ="gpio12";
                function = "gpio";
           };
                       
         config {
                 pins = "gpio12";
                 drive-strength = <2>;
                 bias-pull-down;
          };
};

在驱动中:

static struct pinctrl *pinctrl;

static struct pinctrl_state *gpio_state_active;


pinctrl = devm_pinctrl_get(&pdev->dev);

gpio_state_active = pinctrl_lookup_state(pinctrl,"default");
//查找到节点为"default"的状态,并保存在gpio_state_active


ret = pinctrl_select_state(pinctrl,gpio_state_active);
    if (ret){
		pr_err("%s:Error selecting active state",__func__);
    }
    else{
        pr_err("%s:Ok selecting active state",__func__);
    }
//将gpio_state_active设置为pinctrl状态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值