Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3044159
  • 博文数量: 396
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4209
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-04 13:04
文章分类

全部博文(396)

文章存档

2022年(1)

2021年(2)

2020年(8)

2019年(24)

2018年(135)

2017年(158)

2016年(68)

我的朋友

分类: 嵌入式

2019-03-04 21:31:37

/*
struct pinctrl_state { 
    struct list_head node;//挂入链表头的节点
    const char *name;//该state的名字
    struct list_head settings;//属于该状态的所有的settings
};*/
static int xxx_probe(struct platform_device *dev)
{
/*先申请内存、注册创建相关节点*/
/*下面直接进入gpio ctrl部分*/
struct pinctrl_state *xxx_pin_ctrl,*xxx_rst_on,*xxx_rst_off;

xxx_pin_ctrl = devm_pinctrl_get(&pdev->dev); /*Resource managed pinctrl_get()*/
if (IS_ERR(xxx_pin_ctrl)) {
printk("failed\n");
ret = PTR_ERR(xxx_pin_ctrl);
return ret;
}

xxx_rst_on = pinctrl_lookup_state(xxx_pin_ctrl, "gpio_rst_on");
if (IS_ERR(xxx_rst_on)) {
printk("failed\n");
ret = PTR_ERR(xxx_rst_on);
return ret;
}

xxx_rst_off = pinctrl_lookup_state(xxx_pin_ctrl, "gpio_rst_off");
if (IS_ERR(xxx_rst_off)) {
printk("failed\n");
ret = PTR_ERR(xxx_rst_off);
return ret;
}

/*下面就是直接调用gpio5,可以单独封装为一个函数*/
pinctrl_select_state(xxx_pin_ctrl, xxx_rst_on);/*gpio5输出高电平*/
delay(20);
pinctrl_select_state(xxx_pin_ctrl, xxx_rst_off);/*gpio5输出低电平*/
delay(20);
}
static int xxx_remove(struct platform_device *dev){
/*************/
}
#ifdef CONFIG_OF
static const struct of_device_id xxx_gpio_of_id[] = {
{.compatible = "mediatek,gpio_rst",},
{}
};
#endif
static struct platform_driver caotuo_platform_driver = {
.probe = xxx_probe,
.remove = xxx_remove,
.driver = {
   .name = my_name,
   .owner = THIS_MODULE,
#ifdef CONFIG_OF/*增加宏判断,低版本内核不带dts*/
   .of_match_table = xxx_gpio_of_id,   
#endif
},
};
static int __init caotuo_init(void)
{
int ret=0;
ret = platform_driver_register(&caotuo_platform_driver);
if (ret) {
printk("failed\n");
return ret;
}
return ret;
}
static void __exit caotuo_exit(void)
{
platform_driver_unregister(&caotuo_platform_driver);
}
module_init(caotuo_init);
module_exit(caotuo_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("xxxx");
MODULE_DESCRIPTION("xxxx");
--------------------- 
作者:caotuo_csdn 
来源:CSDN 
原文:https://blog.csdn.net/caotuo_csdn/article/details/79164709 
版权声明:本文为博主原创文章,转载请附上博文链接!
阅读(5688) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~