驱动 - platform总线驱动

2023-11-12

#include <linux/init.h>
#include <linux/module.h>
#include<linux/platform_device.h>
#include<linux/mod_devicetable.h>
#include<linux/of.h>
#include<linux/of_gpio.h>
struct resource *res;
int irqno;
struct gpio_desc *desc;
int pdrv_probe(struct platform_device *pdr)
 {
        //获取设备信息
       printk("%s:%d\n",__FILE__,__LINE__);
       res=platform_get_resource(pdr,IORESOURCE_MEM,0);
       if(res==NULL)
       {
            printk("获取资源失败\n");
            return -ENODATA;
       }
       irqno=platform_get_irq(pdr,0);
       if(irqno<0)
       {
             printk("获取资源失败\n");
             return irqno;
       }
     printk("%#x    %d\n",res->start,irqno);
     //获取GPIO编号
     desc=gpiod_get_from_of_node(pdr->dev.of_node,"led2",0,GPIOD_OUT_HIGH,NULL);
     if(IS_ERR(desc))
     {
      printk("获取GPIO编号失败\n");
      return PTR_ERR(desc);
     }
       return 0;
 }
 int pdrv_remove(struct platform_device *pdr)
 {
       printk("%s:%d\n",__FILE__,__LINE__);
       return 0;
 }
 //定义compatible表
 struct of_device_id oftable[]={
      {.compatible="hqyj,platform"},
      {},
 };
MODULE_DEVICE_TABLE(of,oftable);
//定义并初始化对象
struct platform_driver pdrv ={
      .probe=pdrv_probe,
      .remove=pdrv_remove,
      .driver={
          .name= "test",
          .of_match_table= oftable,//设备树匹配 
      },
 };
static int __init mycdev_init(void)
{
    //注册对象
    platform_driver_register(&pdrv);
    return 0;
}
static void __exit mycdev_exit(void)
{
      //释放GPIO编号
      gpiod_direction_output(desc,0);
      gpiod_put(desc);
    //注销
    platform_driver_unregister(&pdrv);

}
module_init(mycdev_init);
module_exit(mycdev_exit);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

驱动 - platform总线驱动 的相关文章

随机推荐

  • word如何只设置一张为横向,怎样把word文档里单独的一页变成横向

    以word2007为例 将文档里的某一页2113设置成横向页 1 打开5261word文档 选中某一页种4102的所有文字 单击1653 页面布局 菜单 单击 页面设置 工具栏组右下角的扩展按钮 在弹出的 页面设置 对话框中的 页边距 选项
  • 自定义异常,抛出异常

    异常 在程序运行过程中 出现的不正常情况叫做异常 注意 1 相同的代码在运行的时候 根据输入的参数或者操作的不同 有可能会发生异常 有可能不会发生异常 应该在写代码的过程中尽可能的保证代码的正确性 不要到处都是bug 2 如果要解决代码中出
  • mac vscode 跳转函数_VSCode快捷键大全(Mac)

    记录一下总是忘记 通用 P F1 显示控制台 P 快速打开 快速查找并进入文件 N 新建窗口 不是文件 W 关闭窗口 基本编辑 X 删除整行 不需要选中 C 复制整行 不需要选中 上下移动整行 复制整行 并粘贴到此行的上面 下面 K 删除行
  • get和post区别

    get和post区别 get参数通过url传递 post放在request body中 get请求在url中传递的参数是有长度限制的 而post没有 get比post更不安全 因为参数直接暴露在url中 所以不能用来传递敏感信息 get请求
  • VWWare(虚拟机)下安装 Windows Server 2012 r2 (详细图文)

    VWWare 虚拟机 下安装 Windows Server 2012 r2 详细图文 第一 软件准备 WMware Workstation Pro 14 虚拟机 Windows Server 2012 r2 windwos镜像 第二 安装
  • 基于C#窗体的学生成绩/信息管理系统

    一 概述 前段时间发布了一个网页版的基于C 的学生信息管理系统 有很多同学都跑来问我有没有窗体版本的 所以为了满足大家的要求 在近段时间就写了一个窗体版的学生成绩 信息管理系统 学生成绩 信息管理是一个必不可少的重要环节 开发系统的意义在于
  • java的基础特性

    Java基础特性 与cmd的交互 1 1 什么是cmd 就是在windows操作系统中 利用命令行的方式去操作计算机 我们可以利用cmd命令去操作计算机 比如 打开文件 打开文件夹 创建文件夹等 1 2 如何打开CMD窗口 按下快捷键 wi
  • writeAsBytes writeAsString

    import dart io import dart convert main async File a File C aria2 1 txt var c read a print c var d utf8 decode c print d
  • 编辑距离算法(Minimum Edit Distance,MED)

    算法简介 编辑距离 又称Levenshtein距离 莱文斯坦距离也叫做Edit Distance 是指两个字串之间 由一个转成另一个所需的最少编辑操作次数 如果它们的距离越大 说明它们越是不同 许可的编辑操作包括将一个字符替换成另一个字符
  • 风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)

    本笔记源于CDA DSC课程 由常国珍老师主讲 该训练营第一期为风控主题 培训内容十分紧凑 非常好 推荐 CDA数据科学家训练营 一 风控建模流程以及分类模型建设 1 建模流程 该图源自课程讲义 主要将建模过程分为了五类 数据准备 变量粗筛
  • 商标注册查询入口官网

    商标注册查询入口官网在国家知识产权局商标局 中国商标网中查询 包括商标近似查询 商标综合查询 商标状态查询和商标公告查询 TM83商标网来详细说下商标注册查询入口官网链接地址及查询方法流程 商标注册查询入口官网链接 商标注册是在国家知识产权
  • 王者荣耀 露娜 技巧-教学-总结

    文章目录 参考教程 技巧和个人理解 连招训练方法 出装顺序 赞同参考教程 节奏顺序 团战 个人遇到的坑 补充描述 参考教程 王者荣耀 国服榜一露娜深度教学 月下无限连 实战案例分析 哔哩哔哩 露娜教程很多 虎牙直播多 技巧和个人理解 连招训
  • buuctf [struts2]s2-009

    漏洞描述 这个漏洞跟s2 003 s2 005 属于一套的 Struts2对s2 003的修复方法是禁止 号 于是s2 005通过使用编码 u0023或 43来绕过 于是Struts2对s2 005的修复方法是禁止 等特殊符号 使用户不能提
  • vue-router 基本使用

    路由 其实就是指向的意思 当我点击页面上的home按钮时 页面中就要显示home的内容 如果点击页面上的about 按钮 页面中就要显示about 的内容 Home按钮 gt home 内容 about按钮 gt about 内容 也可以说
  • xp无法远程计算机共享,解决XP局域网共享不能访问的问题

    1 检查guest帐户是否开启 XP默认情况下是不开启guest帐户的 因些为了其他的人能浏览你的计算机 请启用guest帐户 为了安全请为guest设置密码或相应的权限 你也可以为每一台机器设置一个用户名和密码以便计算机之间的互相访问 2
  • 面向数据流的方法设计系统的软件结构(储蓄系统)

    RT 事务流
  • mongodb安装

    mongodb安装 提示 ubuntu 18 04 mongodb 4 0 28 文章目录 mongodb安装 前言 一 下载解压安装包 二 在 etc profile文件中添加如下内容 生效环境变量 三 创建数据库目录 前言 MongoD
  • 面试总结-2023届安全面试题总汇

    2023届安全面试题总汇 文章目录 2023届安全面试题总汇 前言 0x01 秋招目录 随时更新 0x02 各大安全厂商面试题 资料链接 一个2023届毕业生在毕业前持续更新 收集的安全岗面试题及面试经验分享 前言 最近发现一个宝贵的面试文
  • vector的find用法

    一 find函数存在于算法中 其头文件为 include
  • 驱动 - platform总线驱动

    include