当前位置: 首页 > news >正文

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项目——及容器的编排

&#xff08;一&#xff09;安装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…...

栈,队列

栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;是两种常用的数据结构&#xff0c;它们在计算机科学中有着广泛的应用。它们的主要区别在于元素的添加和移除方式。 栈&#xff08;Stack&#xff09;&#xff1a; 栈是一种后进先出&#xff08;Last In F…...

新增一个数组传递给后端

实现的效果&#xff1a; 页面 <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

实时分析&#xff08;Realtime Analytics&#xff09;的功能 实时数据更新&#xff1a;Firebase实时分析提供实时数据更新&#xff0c;让开发者可以实时了解应用程序的使用情况&#xff0c;包括活跃用户数量、事件触发次数等指标自定义事件跟踪&#xff1a;开发者可以通过自定…...

2024国赛数学建模A题B题C题D题E题思路资料模型

开始在本帖实时更新2024国赛数学建模赛题思路代码&#xff0c;文章末尾获取&#xff01; 持续更新参考思路...

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 定义常量的区别 引言 看了一些博文&#xff0c;有的文…...

视频结构化从入门到精通——行为分析类应用

行为分析类应用 1. 认识行为分析 监控/判断视频画面中目标的运动过程、携带属性等。从数据中自动识别、跟踪和理解人类或物体行为。 1. 车的行为分析应用 车辆行为分析主要用于监控和管理车辆的动态行为&#xff0c;广泛应用于智能交通、城市管理和安全监控。关键应用包括&…...

Redis的KeyExpirationEventMessageListener键过期监听器

MessageListener通过监听key过期的Redis keyspace通知&#xff0c;然后通过ApplicationEventPublisher发布RedisKeyExpiredEvent事件的模式进行事件监听和广播。 redis.conf地址&#xff1a;https://github.com/redis/redis/blob/unstable/redis.conf Redis官方地址&#xff1…...

MP4视频压缩,推荐这五大压缩操作

MP4视频压缩&#xff0c;在当今数字化的时代&#xff0c;视频已经成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;随着视频分辨率和长度的增加&#xff0c;MP4文件的大小也变得越来越大&#xff0c;这不仅占用了大量的存储空间&#xff0c;还使得传输和分享变得困…...

docker 安装NextERP

有很多方式&#xff1a; 一 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 的一个轻量级存储工具&#xff0c;它采用 key - value 的键值对方式进行存储 它允许保存和读取应用中的基本数据类型&#xff0c;例如&#xff0c;String、int、float、boolean …...

弹性容器Flex中的自动外边距(Auto Margins) 的作用

最近在使用Flex布局时&#xff0c;遇到的一个情况&#xff1a; 有以下的代码&#xff1a; <div class"toolbox"><button id"decrease">-</button><span id"size">1</span><button id"increase">…...

C语言调用子函数时入/出栈(保护/恢复现场)全过程分析:以Cortex-M3为例

0 参考资料&工具 Cortex M3权威指南(中文).pdf keil5&#xff08;用于仿真查看寄存器、栈变化&#xff09;1 C语言调用子函数时出入/出栈&#xff08;保护/恢复现场&#xff09;全过程分析 使用C语言调用子函数是如何保护/恢复现场的呢&#xff1f;本文以Cortex-M3为例&a…...

理解Sigmoid激活函数原理和实现

Sigmoid 激活函数是一种广泛应用于机器学习和深度学习中的非线性函数&#xff0c;特别是在二分类问题中。它的作用是将一个实数值映射到(0, 1)区间&#xff0c;使得输出可以被解释为概率值&#xff0c;这在处理二分类问题时非常有用。 Sigmoid 函数的定义 Sigmoid 函数的数学…...

探秘DevSecOps黄金管道,安全与效率的完美融合

软件应用的安全性已成为企业和用户关注的焦点&#xff0c;DevSecOps作为一种将安全融入开发和运维全过程的理念和实践&#xff0c;旨在消除传统开发模式中安全被后置处理的弊端。DevSecOps黄金管道&#xff08;Golden Pipeline&#xff09;是实现这一理念的核心框架&#xff0c…...

Redis的内存淘汰策略- volatile-lru

volatile-lru 策略简介 在 volatile-lru 策略下&#xff0c;当 Redis 的内存使用达到配置的上限&#xff08;maxmemory&#xff09;时&#xff0c;它会优先删除那些设置了过期时间的键&#xff0c;并且选择最近最少使用的键进行删除。LRU 算法的核心思想是&#xff0c;优先删除…...

HTTP和HTTPS的区别?哪一个更适合你的网站?

什么是 HTTP&#xff1f; HTTP&#xff08;超文本传输协议&#xff09;&#xff08;Hypertext Transfer Protocol&#xff09;它是一组允许网络浏览器与网络服务器&#xff08;托管网站的计算机&#xff09;进行通信的规则。 HTTP 使用请求-响应模型。 例如&#xff0c;当你…...

OpenAI SORA团队负责人 通往智能的方式 报告笔记

OpenAI SORA团队负责人 通往智能的方式 报告笔记 这个报告其实是2024年智源大会的主旨报告&#xff0c;OpenAI SORA和DALL-E团队负责人Aditya Ramesh给出的一段有关多模态大模型的报告。我去听了现场&#xff0c;感觉倍受启发&#xff0c;但是感觉很多并不能当场理解&#xff…...

006-Sleuth(Micrometer)+ZipKin分布式链路追踪

这里写目录标题 1 分布式链路追踪概述1.1 为什么会出现这个技术&#xff1f;需要解决哪些问题&#xff1f;1.2 在分布式与微服务场景下需要解决的问题 2 新一代Spring Cloud Sleuth&#xff1a;Micrometer2.1 官网重要提示2.1.1 新一代Sleuth2.1.2 官网2.1.3 说明2.1.3.1 老项目…...

终极E-Hentai漫画下载指南:一键批量保存你的数字收藏

终极E-Hentai漫画下载指南&#xff1a;一键批量保存你的数字收藏 【免费下载链接】E-Hentai-Downloader Download E-Hentai archive as zip file 项目地址: https://gitcode.com/gh_mirrors/eh/E-Hentai-Downloader 你是否曾在E-Hentai上发现心仪的漫画&#xff0c;却为…...

专业级硬件控制方案深度解析:如何用GHelper实现华硕笔记本高效优化

专业级硬件控制方案深度解析&#xff1a;如何用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&#xff1a;基于快马平台多模型能力深度打造旗博士口播智能体 最近在做一个挺有意思的项目——旗博士口播智能体。这个项目本身是个AI应用&#xff0c;但更有趣的是&#xff0c;整个开发过程都借助了AI来辅助完成。这种"用AI开发AI"的体验&#xff0c;让我…...

解决字幕制作痛点:Qwen3-ForcedAligner-0.6B时间轴对齐实战分享

解决字幕制作痛点&#xff1a;Qwen3-ForcedAligner-0.6B时间轴对齐实战分享 1. 字幕制作的新革命&#xff1a;毫秒级精度时间轴对齐 在视频内容爆炸式增长的今天&#xff0c;字幕制作已成为内容创作者无法回避的痛点。传统字幕制作流程中&#xff0c;最耗时的环节莫过于手动对…...

STM32F1标准库ADC采样避坑指南:如何正确设置定时器触发与DMA传输,避免FFT结果不准?

STM32F1标准库ADC采样避坑指南&#xff1a;如何正确设置定时器触发与DMA传输&#xff0c;避免FFT结果不准&#xff1f; 在嵌入式信号处理领域&#xff0c;STM32F1系列凭借其出色的性价比成为许多开发者的首选。然而&#xff0c;当涉及到ADC采样结合FFT频谱分析时&#xff0c;即…...

MiniCPM-V-2_6AR应用赋能:手机摄像头取景框实时图文叠加说明

MiniCPM-V-2_6AR应用赋能&#xff1a;手机摄像头取景框实时图文叠加说明 1. 引言&#xff1a;当手机摄像头"学会思考" 想象一下这样的场景&#xff1a;你正在旅游景点&#xff0c;打开手机摄像头对准一座古建筑&#xff0c;屏幕上不仅显示实时画面&#xff0c;还自…...

免费AI创作+零跳转!影刀6.0在百家号当前页全自动发文

免费AI创作零跳转&#xff01;影刀6.0在百家号当前页全自动发文百家号创作者的福音来啦&#x1f973;人已经坐在百家号创作页面里了不用自己费脑想标题、写正文&#xff0c;影刀RPA直接调用免费AI大模型&#xff0c;一键搞定爆款创作不用切页、不用手动输入&#xff0c;AI自动贴…...

用Python和NumPy手把手实现投影矩阵:从二维投影到最小二乘法拟合

用Python和NumPy手把手实现投影矩阵&#xff1a;从二维投影到最小二乘法拟合 线性代数中的投影概念看似抽象&#xff0c;但在数据科学和机器学习中无处不在。想象一下&#xff0c;当你用线性回归拟合数据点时&#xff0c;本质上是在寻找一个子空间&#xff0c;使得所有数据点到…...

互联网创业者的AI助手:用Nanbeige 4.1-3B快速生成产品文案与市场分析

互联网创业者的AI助手&#xff1a;用Nanbeige 4.1-3B快速生成产品文案与市场分析 你是不是也遇到过这种情况&#xff1f;产品功能已经开发得七七八八&#xff0c;但产品介绍文档还是一片空白&#xff1b;明天就要发新品预热微博&#xff0c;文案却憋了一下午只写出个标题&…...

EcomGPT电商大模型部署案例:基于Docker镜像的免配置生产环境搭建

EcomGPT电商大模型部署案例&#xff1a;基于Docker镜像的免配置生产环境搭建 1. 项目概述 EcomGPT电商大模型是阿里巴巴IIC实验室专门为电商场景打造的多语言智能助手&#xff0c;基于EcomGPT-7B-Multilingual模型开发。这个模型经过电商领域的专门训练&#xff0c;能够理解商…...