RK3399 android7.1 话柄电话功能
实现功能:挂柄接IO口+GND控制话机听筒与系统喇叭的切换(抬起手柄声音由喇叭切换到听筒,挂到磁吸底座喇叭出声)
应用场景: 电子电话班牌,电话机等
硬件接线方式:
电话手柄:听筒接耳机座子<HRP,GND>,麦克风接<MIC+,MIC->
电话底座:磁吸座子接<IO2,GND>
一,IO(gpio)口为系统cpu直出
1.确认gpio引脚
例如(IO2+GND):
io2-gpio =<&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
2.将需要对地控制的gpio引脚直接替换原生的耳机控制脚
一般dts中有描述:
rk_headset: rk-headset {compatible = "rockchip_headset";headset_gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;pinctrl-names = "default";pinctrl-0 = <&hp_det>;
};
例如(IO2+GND):
diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
index 65a3266d09..e6a621adce 100644
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
@@ -17,10 +17,9 @@rk_headset: rk-headset {compatible = "rockchip_headset";
- headset_gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
+ headset_gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;pinctrl-names = "default";pinctrl-0 = <&hp_det>;
- io-channels = <&saradc 2>;};vcc2v5_sys: vcc2v5-ddr {
@@ -415,7 +414,7 @@};headphone {hp_det: hp-det {
- rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
+ rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;};};
二,通过xrm117x驱动 i2c转外部扩展GPIO
1.添加gpio_key.c
代码路径:kernel/drivers/char/gpio_key.c
代码功能:用于管理 GPIO 键,通过一个线程监控 GPIO 键的状态变化并相应地处理这些状态变化。
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/i2c.h>
#include <linux/spi/spi.h>
#include <linux/platform_device.h>
#include <linux/errno.h>
相关文章:
RK3399 android7.1 话柄电话功能
实现功能:挂柄接IO口+GND控制话机听筒与系统喇叭的切换(抬起手柄声音由喇叭切换到听筒,挂到磁吸底座喇叭出声) 应用场景: 电子电话班牌,电话机等 硬件接线方式: 电话手柄:听筒接耳机座子<HRP,GND>,麦克风接<MIC+,MIC-> 电话底座:磁吸座子接<IO2,GND&g…...
实习四十:部署project_exam_system项目——及容器的编排
(一)安装docker、编辑daemon.json文件、安装docker-compose编排容器、启动docker 1.环境准备 [rootdocker--1 ~]# rz -E rz waiting to receive. [rootdocker--1 ~]# ls anaconda-ks.cfg docker.sh [rootdocker--1 ~]# source docker.sh [r…...
栈,队列
栈(Stack)和队列(Queue)是两种常用的数据结构,它们在计算机科学中有着广泛的应用。它们的主要区别在于元素的添加和移除方式。 栈(Stack): 栈是一种后进先出(Last In F…...
新增一个数组传递给后端
实现的效果: 页面 <div style"margin-bottom: 10px" v-if"totalPrice"><p style"font-weight: bolder;margin-bottom: 10px">支付计划<el-button type"text" size"small" click"addPayInf…...
Flutter集成Firebase中的Realtime Analytics
实时分析(Realtime Analytics)的功能 实时数据更新:Firebase实时分析提供实时数据更新,让开发者可以实时了解应用程序的使用情况,包括活跃用户数量、事件触发次数等指标自定义事件跟踪:开发者可以通过自定…...
2024国赛数学建模A题B题C题D题E题思路资料模型
开始在本帖实时更新2024国赛数学建模赛题思路代码,文章末尾获取! 持续更新参考思路...
C语言字面量和常量
目录 引言 1. 字面量 1.1 字符字面量 1.2 整型字面量 1.3 浮点字面量 2. 常量 2.1 使用预处理器指令 #define 定义常量 2.1.1 语法格式 2.1.2 使用举例 2.2 使用 const 关键字定义常量 2.3 使用 #define 和 const 定义常量的区别 引言 看了一些博文,有的文…...
视频结构化从入门到精通——行为分析类应用
行为分析类应用 1. 认识行为分析 监控/判断视频画面中目标的运动过程、携带属性等。从数据中自动识别、跟踪和理解人类或物体行为。 1. 车的行为分析应用 车辆行为分析主要用于监控和管理车辆的动态行为,广泛应用于智能交通、城市管理和安全监控。关键应用包括&…...
Redis的KeyExpirationEventMessageListener键过期监听器
MessageListener通过监听key过期的Redis keyspace通知,然后通过ApplicationEventPublisher发布RedisKeyExpiredEvent事件的模式进行事件监听和广播。 redis.conf地址:https://github.com/redis/redis/blob/unstable/redis.conf Redis官方地址࿱…...
MP4视频压缩,推荐这五大压缩操作
MP4视频压缩,在当今数字化的时代,视频已经成为我们日常生活和工作中不可或缺的一部分。然而,随着视频分辨率和长度的增加,MP4文件的大小也变得越来越大,这不仅占用了大量的存储空间,还使得传输和分享变得困…...
docker 安装NextERP
有很多方式: 一 docker sudo docker run -itd -p 8016:80 -v ERPNext_db:/var/lib/mysql -v ERPNext_sites:/home/frappe/frappe-bench/sites --name ERPNext lvxj11/erpnext:latest二 git clone https://e.coding.net/yuanerp/yuanerp/frappe_docker.gitcp exa…...
Android 存储之 SharedPreferences 框架体系编码模板
一、SharedPreferences 框架体系 1、SharedPreferences 基本介绍 SharedPreferences 是 Android 的一个轻量级存储工具,它采用 key - value 的键值对方式进行存储 它允许保存和读取应用中的基本数据类型,例如,String、int、float、boolean …...
弹性容器Flex中的自动外边距(Auto Margins) 的作用
最近在使用Flex布局时,遇到的一个情况: 有以下的代码: <div class"toolbox"><button id"decrease">-</button><span id"size">1</span><button id"increase">…...
C语言调用子函数时入/出栈(保护/恢复现场)全过程分析:以Cortex-M3为例
0 参考资料&工具 Cortex M3权威指南(中文).pdf keil5(用于仿真查看寄存器、栈变化)1 C语言调用子函数时出入/出栈(保护/恢复现场)全过程分析 使用C语言调用子函数是如何保护/恢复现场的呢?本文以Cortex-M3为例&a…...
理解Sigmoid激活函数原理和实现
Sigmoid 激活函数是一种广泛应用于机器学习和深度学习中的非线性函数,特别是在二分类问题中。它的作用是将一个实数值映射到(0, 1)区间,使得输出可以被解释为概率值,这在处理二分类问题时非常有用。 Sigmoid 函数的定义 Sigmoid 函数的数学…...
探秘DevSecOps黄金管道,安全与效率的完美融合
软件应用的安全性已成为企业和用户关注的焦点,DevSecOps作为一种将安全融入开发和运维全过程的理念和实践,旨在消除传统开发模式中安全被后置处理的弊端。DevSecOps黄金管道(Golden Pipeline)是实现这一理念的核心框架,…...
Redis的内存淘汰策略- volatile-lru
volatile-lru 策略简介 在 volatile-lru 策略下,当 Redis 的内存使用达到配置的上限(maxmemory)时,它会优先删除那些设置了过期时间的键,并且选择最近最少使用的键进行删除。LRU 算法的核心思想是,优先删除…...
HTTP和HTTPS的区别?哪一个更适合你的网站?
什么是 HTTP? HTTP(超文本传输协议)(Hypertext Transfer Protocol)它是一组允许网络浏览器与网络服务器(托管网站的计算机)进行通信的规则。 HTTP 使用请求-响应模型。 例如,当你…...
OpenAI SORA团队负责人 通往智能的方式 报告笔记
OpenAI SORA团队负责人 通往智能的方式 报告笔记 这个报告其实是2024年智源大会的主旨报告,OpenAI SORA和DALL-E团队负责人Aditya Ramesh给出的一段有关多模态大模型的报告。我去听了现场,感觉倍受启发,但是感觉很多并不能当场理解ÿ…...
006-Sleuth(Micrometer)+ZipKin分布式链路追踪
这里写目录标题 1 分布式链路追踪概述1.1 为什么会出现这个技术?需要解决哪些问题?1.2 在分布式与微服务场景下需要解决的问题 2 新一代Spring Cloud Sleuth:Micrometer2.1 官网重要提示2.1.1 新一代Sleuth2.1.2 官网2.1.3 说明2.1.3.1 老项目…...
终极E-Hentai漫画下载指南:一键批量保存你的数字收藏
终极E-Hentai漫画下载指南:一键批量保存你的数字收藏 【免费下载链接】E-Hentai-Downloader Download E-Hentai archive as zip file 项目地址: https://gitcode.com/gh_mirrors/eh/E-Hentai-Downloader 你是否曾在E-Hentai上发现心仪的漫画,却为…...
专业级硬件控制方案深度解析:如何用GHelper实现华硕笔记本高效优化
专业级硬件控制方案深度解析:如何用GHelper实现华硕笔记本高效优化 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TU…...
AI开发AI:基于快马平台多模型能力深度打造旗博士口播智能体
AI开发AI:基于快马平台多模型能力深度打造旗博士口播智能体 最近在做一个挺有意思的项目——旗博士口播智能体。这个项目本身是个AI应用,但更有趣的是,整个开发过程都借助了AI来辅助完成。这种"用AI开发AI"的体验,让我…...
解决字幕制作痛点:Qwen3-ForcedAligner-0.6B时间轴对齐实战分享
解决字幕制作痛点:Qwen3-ForcedAligner-0.6B时间轴对齐实战分享 1. 字幕制作的新革命:毫秒级精度时间轴对齐 在视频内容爆炸式增长的今天,字幕制作已成为内容创作者无法回避的痛点。传统字幕制作流程中,最耗时的环节莫过于手动对…...
STM32F1标准库ADC采样避坑指南:如何正确设置定时器触发与DMA传输,避免FFT结果不准?
STM32F1标准库ADC采样避坑指南:如何正确设置定时器触发与DMA传输,避免FFT结果不准? 在嵌入式信号处理领域,STM32F1系列凭借其出色的性价比成为许多开发者的首选。然而,当涉及到ADC采样结合FFT频谱分析时,即…...
MiniCPM-V-2_6AR应用赋能:手机摄像头取景框实时图文叠加说明
MiniCPM-V-2_6AR应用赋能:手机摄像头取景框实时图文叠加说明 1. 引言:当手机摄像头"学会思考" 想象一下这样的场景:你正在旅游景点,打开手机摄像头对准一座古建筑,屏幕上不仅显示实时画面,还自…...
免费AI创作+零跳转!影刀6.0在百家号当前页全自动发文
免费AI创作零跳转!影刀6.0在百家号当前页全自动发文百家号创作者的福音来啦🥳人已经坐在百家号创作页面里了不用自己费脑想标题、写正文,影刀RPA直接调用免费AI大模型,一键搞定爆款创作不用切页、不用手动输入,AI自动贴…...
用Python和NumPy手把手实现投影矩阵:从二维投影到最小二乘法拟合
用Python和NumPy手把手实现投影矩阵:从二维投影到最小二乘法拟合 线性代数中的投影概念看似抽象,但在数据科学和机器学习中无处不在。想象一下,当你用线性回归拟合数据点时,本质上是在寻找一个子空间,使得所有数据点到…...
互联网创业者的AI助手:用Nanbeige 4.1-3B快速生成产品文案与市场分析
互联网创业者的AI助手:用Nanbeige 4.1-3B快速生成产品文案与市场分析 你是不是也遇到过这种情况?产品功能已经开发得七七八八,但产品介绍文档还是一片空白;明天就要发新品预热微博,文案却憋了一下午只写出个标题&…...
EcomGPT电商大模型部署案例:基于Docker镜像的免配置生产环境搭建
EcomGPT电商大模型部署案例:基于Docker镜像的免配置生产环境搭建 1. 项目概述 EcomGPT电商大模型是阿里巴巴IIC实验室专门为电商场景打造的多语言智能助手,基于EcomGPT-7B-Multilingual模型开发。这个模型经过电商领域的专门训练,能够理解商…...
