首页 > 系统相关 >鼠标 芯片bcm5974 linux驱动程序

鼠标 芯片bcm5974 linux驱动程序

时间:2024-12-17 12:29:21浏览次数:12  
标签:APPLE USB bcm5974 linux DEVICE BCM5974 define ID 驱动程序

/*

  • Apple USB BCM5974 (Macbook Air and Penryn Macbook Pro) multitouch driver

  • This program is free software; you can redistribute it and/or modify

  • it under the terms of the GNU General Public License as published by

  • the Free Software Foundation; either version 2 of the License, or

  • (at your option) any later version.

  • This program is distributed in the hope that it will be useful,

  • but WITHOUT ANY WARRANTY; without even the implied warranty of

  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

  • GNU General Public License for more details.

  • You should have received a copy of the GNU General Public License

  • along with this program; if not, write to the Free Software

  • Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

*/

#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/usb/input.h>
#include <linux/hid.h>
#include <linux/mutex.h>
#include <linux/input/mt.h>

#define USB_VENDOR_ID_APPLE 0x05ac

/* MacbookAir, aka wellspring /
#define USB_DEVICE_ID_APPLE_WELLSPRING_ANSI 0x0223
#define USB_DEVICE_ID_APPLE_WELLSPRING_ISO 0x0224
#define USB_DEVICE_ID_APPLE_WELLSPRING_JIS 0x0225
/
MacbookProPenryn, aka wellspring2 /
#define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230
#define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231
#define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232
/
Macbook5,1 (unibody), aka wellspring3 /
#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236
#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237
#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238
/
MacbookAir3,2 (unibody), aka wellspring5 /
#define USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI 0x023f
#define USB_DEVICE_ID_APPLE_WELLSPRING4_ISO 0x0240
#define USB_DEVICE_ID_APPLE_WELLSPRING4_JIS 0x0241
/
MacbookAir3,1 (unibody), aka wellspring4 /
#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242
#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243
#define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244
/
Macbook8 (unibody, March 2011) /
#define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI 0x0245
#define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO 0x0246
#define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS 0x0247
/
MacbookAir4,1 (unibody, July 2011) /
#define USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI 0x0249
#define USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO 0x024a
#define USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS 0x024b
/
MacbookAir4,2 (unibody, July 2011) /
#define USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI 0x024c
#define USB_DEVICE_ID_APPLE_WELLSPRING6_ISO 0x024d
#define USB_DEVICE_ID_APPLE_WELLSPRING6_JIS 0x024e
/
Macbook8,2 (unibody) /
#define USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI 0x0252
#define USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO 0x0253
#define USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS 0x0254
/
MacbookPro10,1 (unibody, June 2012) /
#define USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI 0x0262
#define USB_DEVICE_ID_APPLE_WELLSPRING7_ISO 0x0263
#define USB_DEVICE_ID_APPLE_WELLSPRING7_JIS 0x0264
/
MacbookPro10,2 (unibody, October 2012) /
#define USB_DEVICE_ID_APPLE_WELLSPRING7A_ANSI 0x0259
#define USB_DEVICE_ID_APPLE_WELLSPRING7A_ISO 0x025a
#define USB_DEVICE_ID_APPLE_WELLSPRING7A_JIS 0x025b
/
MacbookAir6,2 (unibody, June 2013) /
#define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0290
#define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0291
#define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0292
/
MacbookPro12,1 (2015) */
#define USB_DEVICE_ID_APPLE_WELLSPRING9_ANSI 0x0272
#define USB_DEVICE_ID_APPLE_WELLSPRING9_ISO 0x0273
#define USB_DEVICE_ID_APPLE_WELLSPRING9_JIS 0x0274

#define BCM5974_DEVICE(prod) {
.match_flags = (USB_DEVICE_ID_MATCH_DEVICE |
USB_DEVICE_ID_MATCH_INT_CLASS |
USB_DEVICE_ID_MATCH_INT_PROTOCOL),
.idVendor = USB_VENDOR_ID_APPLE,
.idProduct = (prod),
.bInterfaceClass = USB_INTERFACE_CLASS_HID,
.bInterfaceProtocol = USB_INTERFACE_PROTOCOL_MOUSE
}

/* table of devices that work with this driver /
static const struct usb_device_id bcm5974_table[] = {
/
MacbookAir1.1 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_JIS),
/
MacbookProPenryn /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_JIS),
/
Macbook5,1 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_JIS),
/
MacbookAir3,2 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4_JIS),
/
MacbookAir3,1 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS),
/
MacbookPro8 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_JIS),
/
MacbookAir4,1 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS),
/
MacbookAir4,2 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING6_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING6_JIS),
/
MacbookPro8,2 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS),
/
MacbookPro10,1 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_JIS),
/
MacbookPro10,2 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7A_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7A_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7A_JIS),
/
MacbookAir6,2 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING8_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING8_JIS),
/
MacbookPro12,1 /
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING9_ANSI),
BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING9_ISO),
BCM5974_DEVICE(USB_DEVICE_ID_APP

标签:APPLE,USB,bcm5974,linux,DEVICE,BCM5974,define,ID,驱动程序
From: https://blog.csdn.net/baidu_37552881/article/details/144497511

相关文章

  • Kali Linux:渗透测试神器
    定义与概述KaliLinux是基于Debian的一款专门用于数字取证和渗透测试的Linux发行版。它由OffensiveSecurity公司维护和开发,包含了大量的网络安全工具,被安全研究人员、渗透测试工程师等广泛使用。工具集介绍信息收集工具:Nmap:这是一款网络扫描工具,用于发现网络中的主机......
  • 在 Windows 下编写 Linux 脚本,传至 Linux 中执行时,会遇到 not found 错误
    在Windows下建立脚本#!/bin/bashechohello传至Linux下执行脚本./test.sh执行出错-bash:./test.sh:Permissiondenied问题原因:未对文件添加可执行权限添加权限chmod+xtest.sh再次执行脚本./test.sh执行出错-bash:./test.sh:/bin/bash^M:badinterpreter:......
  • Linux学习栈记——MySQL安装并远程连接
    本文主要介绍了MySQL的作用和两种安装方法,使用源代码包安装MySQL的方法,并使用Navicat等客户端工具远程连接MySQL。这里以Ubuntu24.04操作系统为例。基础知识MySQL的作用MySQL是一款开源的关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品。它以......
  • Linux 常用命令大全
    1、Linux 管理文件和目录的命令命令功能命令功能pwd显示当前目录ls查看目录下的内容cd改变所在目录cat显示文件的内容grep在文件中查找某字符cp复制文件touch创建文件mv移动文件rm删除文件rmdir删除目录1.1pwd 命令该......
  • linux 端口
    1.查看被占用的端口的进程,netstat/ss-antulp|grep:端口号 ,然后找到对应的进程PID 2.根据PID查询进程。如果想详细查看这个进程,PID具体是哪一个进程,可以通过命令的方式进行查看进程的详细信息,ps-ef|grep进程PID或者ps-aux|grep进程PID通过执行上面的命令,就可......
  • 使用win10 wsl子系统将 rust 程序静态编译为linux可执行文件
    chapterⅠ事情起因最近在学习rust,想把一部分java服务迁移至rust编写,但由于公司服务器都是linux系统,所以在找windows下交叉编译为linux可执行文件的方法,把bing首页搜索的结果试了个遍都不行,始终报错“musl-gcc”无法找到,搜遍全网都无法解决。最终在我不断尝试的过程中逐渐......
  • Linux中输入和输出基本过程
    1.文件内核级缓冲区前面在如何理解Linux一切皆文件的特点中提到为了保证在Linux中所有进程访问文件时的方式趋近相同,在file结构体中存在一个files_operations结构体指针,对应的结构体保存所有文件操作的函数指针(这个结构体也被称为操作表)每一个file结构体中除了有自己......
  • Windows系统下无头构建Linux系统下的so文件
     (开始执行以下步骤时,确保已经在系统下安装2017版Labview软件,及其驱动软件,压缩包内包含32位java插件安装包与NILinuxReal-TimeEclipseEdition的C/C++开发工具包***建议均使用默认路径安装***C盘空间配置大一些)1.首先我们需要在Windows系统里面安装Java插件(建议使用32位......
  • AlmaLinux 10.0 Beta “Purple Lion” - RHEL 二进制兼容免费发行版
    AlmaLinux10.0Beta“PurpleLion”-RHEL二进制兼容免费发行版由社区提供的免费Linux操作系统,RHEL二进制兼容发行版请访问原文链接:https://sysin.org/blog/almalinux-10/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org由社区提供的免费Linux操作系统一......
  • Linux安装之后你需要做的事
    #从里面选一个源就可以了,优先推荐ustc,我这边的1000M宽带可以跑到70M-83M/s#vim/etc/apt/source.list#官方源debhttp://http.kali.org/kalikali-rollingmainnon-freecontribdeb-srchttp://http.kali.org/kalikali-rollingmainnon-freecontrib #中科大源deb......