搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
菜鸟追梦旅行
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
飞思卡尔使用指南_飞思 按住shift可以对比照片吗
2
putty保存用户名和密码_钥匙串密码忘记了怎么办?如何在Mac上重置钥匙串密码...
3
Encryption raised an exception
4
红外NEC通信协议_nec协议
5
vmospro启动黑屏_VMOS
6
红黑树原理详解_红黑树的原理
7
告别出海水土不服,快速构建「1 对 1 + X」新玩法
8
【计网】TCP协议安全与风险:深入探讨网络通信的基石
9
可以用python写一个小游戏吗
10
C# 将GB2312的文件转为UTF-8格式_c# gb2312转utf-8
当前位置:
article
> 正文
如何在mtk andorid6.0上添加一个I2C驱动(这里是添加一个FM 芯片驱动)_cubeide i2c驱动hs6760
作者:菜鸟追梦旅行 | 2024-03-19 01:18:47
赞
踩
cubeide i2c驱动hs6760
平台:mt6737 android 6.0
#include <linux/init.h>
#include <linux/module.h>
//#include <stdlib.h>
#include <linux/i2c.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/ioctl.h>
#include <linux/uaccess.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <linux/wait.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/pinctrl/consumer.h>
#include <linux/of_gpio.h>
#include <linux/delay.h>
static void fm_set_gpio_output(unsigned int GPIO, unsigned int output);
static unsigned int GPIO_FM_PWR_EN;
static unsigned int GPIO_SPK_PWR_EN;
#define HS6760_I2C_ID 0x18
//#define Clock_12M // Clock_7v6M//Clock_12M//Clock_24M//Clock_32v768K//选择时钟频率
static struct i2c_client *HS6760_client = NULL;
static struct class *cls = NULL;
static unsigned int major;
static char *name = "fm_hs6760";
typedef enum
{
hs6760_normal = 0,
hs6760_mute = 1,
hs6760_sleep = 2,
MODE_NULL
}MODE;
typedef enum
{
_75K = 0,
_50K = 1,
_22v5K = 2,
DEV_NULL
}DEV;
typedef enum
{
disable = 0,
enable = 1,
STATE_NULL
}STATE;
void HS6760_Initial(void);
void HS6760_SetFreq(uint16_t curFreq);
void HS6760_SetPow(uint8_t power);
void HS6760_Reset(void);
void HS6760_Fre_dev(DEV deviation);
void HS6760_Sel_mode(MODE mode);
void HS6760_Stereo(STATE flag);
static int Delayms(u32 data)
{
printk("delay %dms\n", data);
mdelay(data);//msleep(data);
return 0;
}
void ext_spkamp_enable(void)
{
printk(" fm --- ext_spkamp_enable!\n");
fm_set_gpio_output(GPIO_SPK_PWR_EN , 1);
}
void ext_spkamp_disable(void)
{
printk(" fm --- ext_spkamp_disable!\n");
fm_set_gpio_output(GPIO_SPK_PWR_EN , 0);
}
void HS6760_FM3V3_enable(void) //打开HS6760
{
printk(" fm --- HS6760_FM3V3_enable!\n");
fm_set_gpio_output(GPIO_FM_PWR_EN, 1);
}
void HS6760_FM3V3_disable(void) //关闭HS6760
{
printk(" fm --- HS6760_FM3V3_disable!\n");
fm_set_gpio_output(GPIO_FM_PWR_EN, 0);
}
static int HS6760_i2c_read(u8 reg)
{
unsigned char val[1] = {0};
int ret = 0;
val[0] = reg;
ret = i2c_master_send(HS6760_client, val, 1);
if (ret < 0)
{
printk(" fm --- HS6760_i2c_read I2C i/o error ret = %d\n", ret);
return ret;
}
mdelay(10);
ret = i2c_master_recv(HS6760_client, val, 1);
if (ret < 0)
{
printk(" fm --- HS6760_i2c_read I2C read error ret = %d\n", ret);
return ret;
}
return val[0];
}
static int HS6760_i2c_write(u8 reg, u8 writedata)
{
u8 databuf[2] = {0};
int ret = 0;
databuf[0] = reg;
databuf[1] = writedata;
ret = i2c_master_send(HS6760_client, databuf, 2);
printk(" fm --- HS6760_i2c_write ret=%d, databuf[0]=%d, databuf[1]=%d\n", ret, databuf[0], databuf[1]);
if(ret < 0)
{
printk(" fm --- HS6760_i2c_write send data failed !\n");
return -1;
}
return ret;
}
void HS6760_Initial(void)
{
uint8_t RegData;
#ifdef Clock_24M
RegData = 0x36; //PGA12dB,24M晶振
printk(" fm ---HS6760 : HS6760_Initial Clock_24M !!\n");
#else
#ifdef Clock_12M
RegData = 0x34; //PGA12dB,12M晶
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/266560
推荐阅读
article
OpenMLDB
: 拓展
Spark
源码
实现
高性能
Join
...
简介
Spark
是目前最流行的分布式大数据批处理框架,使用
Spark
可以轻易地
实现
上百G甚至T级别数据的SQL运算,例如单...
赞
踩
article
置信区间...
目录1、置信区间&置信度(置信水平)&显著性水平2、如何计算置信区间大样本如何计算置信区间小样本如何计算置信区间参考:h...
赞
踩
article
Linux
的Qt编译出现
:
-1
:
error
:
cannot
find
-lGL问题的解决方法...
在将windows平台上开发的Qt界面程序移植到
Linux
Ubuntu系统中,在构建项目时出现以下编译问题: erro...
赞
踩
article
700道
网络安全
工程师
面试题
(附答案)
_
网络安全
工程师
考试
题库
...
2022年已经结束了,先来灵魂三连问,2022年定的目标完成多少了?薪资涨了吗?女朋友找到了吗?好了,不扎大家的心了,接...
赞
踩
article
spark
源码(三)
spark
如何
进行
driver
、
executor
任务
的调度,以及executo...
spark
如何
进行
driver
、
executor
任务
的调度,以及
executor
向
driver
的
注册
_
spark
dr...
赞
踩
article
方舟
编译
器
编译
HarmonyOS
应用
的详细过程_
harmonyos
系统
方舟
编译
器
...
方舟
编译
器
在
HarmonyOS
应用
开发中扮演着重要的角色,它能将开发者编写的高级语言代码转化为可执行的机器码。在Harm...
赞
踩
article
android
studio
简易
app
实例_
android
studio
开发
一个
简单
的
app
...
在主模块
的
目录下,右键点击"java",然后选择"New",再选择"Java Class"。在主模块
的
目录下,右键点击"...
赞
踩
article
Android
Studio
App
开发中
数据库
SQLite
的解析及实战使用(包括创建
数据库
,增删改...
Android
Studio
App
开发中
数据库
SQLite
的解析及实战使用(包括创建
数据库
,增删改查,
记住
密码
等 附源...
赞
踩
article
含有
sqlite
数据库
的
app
打包并发布到
AppStore
_
app
上架
允许内置
数据库
...
含有
sqlite
数据库
的
app
打包并发布到
AppStore
有些ios上
的
app
含有
含有
本地持久化存储
的
文件,比如sqli...
赞
踩
article
AspectJ
工作
原理
和学习总结...
2019独角兽企业重金招聘Python工程师标准>>> ...__aroundbody2_aro...
赞
踩
article
Linux
系统
中
的
文件
类型
(
Linux
应用编程篇)_
linux
字符
文件
...
windows
系统
下,操作
系统
识别
文件
类型
一般是通过
文件
名后缀来判断虽然
Linux
系统
并不会通过后缀来识别
文件
,但是
文件
...
赞
踩
article
Java多
线程
共享
变量
控制
volatile
_
线程
池
共享
变量
...
比 如number++,这个操作实际上是三个操作的集合(读取number,number加1,将新的值写回number),...
赞
踩
article
腾讯
云
网络
测试
面试_
腾讯
专有云
网络
安全
测试
面试...
2021-08-17晚7点面试官人很nice,针对个人简历问了如下内容,全程1h1、为什么要来
腾讯
2、传统
网络
和虚拟化网...
赞
踩
article
切底掌握
Android
中
的
Kotlin
DSL
...
在这篇文章
中
,我们将学习如何在您的
Android
项目
中
编写
Kotlin
DSL
。这个文章会很长,所以花点时间,让我...
赞
踩
article
假设检验
-全流程(四)
_
假设检验
计算公式
要取
绝对值
么
...
啊!!!!我终于摸清了显著性检验的本质!!!!!!!!!!!!
_
假设检验
计算公式
要取
绝对值
么
假设检验
计算公式
要取
绝对值
么
...
赞
踩
article
解决
input
框
type
为
number
输入
小数
的方法_
input
type
number
...
解决
input
框
type
为
number
输入
小数
的方法
type
为
number
type
为
number
input
标签当
type
...
赞
踩
article
记录使用
git
老是
出现
用户
密码
错误的情况_
androidstudio
git
账号
密码
怎么都不对...
出现
这个问题的原因是因为 我们在使用android studio 的时候 把
git
的
用户
密码
给记住了,所有当我们去别人的...
赞
踩
article
Android
数据库
SQLite
更新
升级
问题_
android
sqlite
更新字段长度...
Android
中数据持久化存储可以使用
SQLite
,常用的是
SQLite
OpenHelper。这样就会引申出一些
数据库
升...
赞
踩
article
css3
box
-
shadow
实例 盒子阴影(翘边阴影,曲线阴影)_-
webkit
-
box
-shad...
做完后效果如下:上面是曲边阴影,下边是翘边阴影。曲边阴影下部是类似弧线,翘边效果四角旁边翘起阴影。*{ margin:
0
...
赞
踩
article
Android MTK
adb
打开关闭
debug
logger
_
com
.
debug
.
loggerui
....
adb
shell am broadcast -a
com
.
debug
.
loggerui
.ADB
_
CMD -e
cmd
_
...
赞
踩
相关标签
spark
scala
big data
概率论
算法
linux
qt
web安全
面试
安全
大数据
harmonyos
华为
android studio
gitee
android
sqlite
数据库
java
runtime
python
后端
jvm
开发语言