RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配

目录

  • 一、RTL8723DS WiFi 适配 --- 篇章
    • 1、原理图分析(WiFi部分)
      • `补充:`RTL8723DS时钟输入源讲解
    • 2、根据原理图修改设备树和编辑驱动文件
    • 3、实验验证
    • 4、RTL8723DS WIFI驱动参考文档和博客网站
  • 二、RTL8723DS 蓝牙Bluetooth 适配 --- 篇章
    • 1、原理图分析(蓝牙Bluetooth部分)
    • 2、根据原理图修改设备树
    • 3、修改蓝牙相关的配置
    • 4、RTL8723DS 蓝牙Bluetooth驱动参考文档

  瑞芯微RK系列对“REALTEK瑞昱公司”的wifi、蓝牙双模的模组都有内置适配的,因此HAL层、Framework层、协议栈及库文件都不需要移植适配,只需修改设备树和一些配置文件即可。

一、RTL8723DS WiFi 适配 — 篇章

1、原理图分析(WiFi部分)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


补充:RTL8723DS时钟输入源讲解

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  RTL8723DS模组的第24号引脚是模组的时钟输入源,需要给此提供1.8V~3.3V,32KHz的输入源。由原理图可知,提供时钟输入源的是RK808 CLK32KOUT1引脚提供的外部32KHz时钟。因此需要添加:

clocks =<&rk808 1>;
clock-name = "ext_clock";

PATCH文件和规格书和参考文档👈 — 提取码:baeg


2、根据原理图修改设备树和编辑驱动文件

  由原理图可以看出,板子上使用的RTL8723DS模块WIFI部分的接口是SDIO接口的,因此在设备树上修改对应的GPIO即可。
  Ⅰ、首先打开对RTL8723DS模块的供电,也就是WL_ON引脚->GPIO8_A4,先需要使用pinctrl将其复用成GPIO功能,然后将其WL_ON引脚拉低电平,让其P-MOS管导通,处理方法如下图所示:
在这里插入图片描述
在这里插入图片描述
  我这在HD_gpio_control.c这个GPIO驱动程序上初始化GPIO8_A4,默认拉低电平,如下图所示,这里随意写个驱动即可。
在这里插入图片描述
  Ⅱ、修改sdio0设备树节点,如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  将RTL8723DS驱动添加到内核吗,如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  Ⅳ、修改make menuconfig,如下图所示:
在这里插入图片描述

3、实验验证

  通过以上配置,基本驱动移植就配置好了,如下图所示:
在这里插入图片描述
在这里插入图片描述

4、RTL8723DS WIFI驱动参考文档和博客网站

博客参网站👈
路径:a\RKDocs\android\wifi\Rockchip_Introduction_REALTEK_WIFI_Driver_Porting_CN&EN.pdf和a\RKDocs\android\wifi\Rockchip_Introduction_WIFI_Configuration_CN&EN.pdf

二、RTL8723DS 蓝牙Bluetooth 适配 — 篇章

1、原理图分析(蓝牙Bluetooth部分)

在这里插入图片描述
  上图黄色框框就是本次蓝牙功能适配需要关注的引脚接口。
在这里插入图片描述
在这里插入图片描述

2、根据原理图修改设备树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、修改蓝牙相关的配置

diff --git a/device/rockchip/common/init.connectivity.rc b/device/rockchip/common/init.connectivity.rc
index 40fa8d31b2..66c4abf930 100755
--- a/device/rockchip/common/init.connectivity.rc
+++ b/device/rockchip/common/init.connectivity.rc
@@ -17,16 +17,16 @@ on zygote-startchown bluetooth net_bt ro.bt.bdaddr_pathsetprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr"-    #chmod 0660 /dev/ttyS0
+    chmod 0660 /dev/ttyS0chmod 0660 /dev/ttyS1
-    #chmod 0660 /dev/ttyS8
+    chmod 0660 /dev/ttyS4chmod 0660 /dev/vflashchmod 0664 /dev/vendor_storagechown bluetooth net_bt /dev/vflashchown bluetooth net_bt /dev/vendor_storage#chown bluetooth net_bt /dev/ttyS0
-    chown bluetooth net_bt /dev/ttyS1
-    #chown bluetooth net_bt /dev/ttyS8
+    #chown bluetooth net_bt /dev/ttyS1
+    chown bluetooth net_bt /dev/ttyS4chown bluetooth net_bt /sys/class/rfkill/rfkill0/typechown bluetooth net_bt /sys/class/rfkill/rfkill0/statechmod 0664 /sys/class/rfkill/rfkill0/state
diff --git a/device/rockchip/common/ueventd.rockchip.rc b/device/rockchip/common/ueventd.rockchip.rc
index b69c909155..92fac57a91 100755
--- a/device/rockchip/common/ueventd.rockchip.rc
+++ b/device/rockchip/common/ueventd.rockchip.rc
@@ -65,18 +65,18 @@/dev/gps                  0660   gps        gps# for BT
-/dev/vflash               0660   bluetooth  net_bt/dev/ttyS0                0777   system        system
-/dev/ttyS1                0660   bluetooth  net_bt
+/dev/ttyS1                0777   system     system/dev/ttyS2                0777   system        system/dev/ttyS3                0777   system        system
-/dev/ttyS4                0777   system        system/dev/ttyS5                0777   system        system/dev/ttyS7                0777   system        system/dev/ttyS8                0777   system        system/dev/ttyS9                0777   system        system-/dev/rtk_btusb            0660   bluetooth  net_bt
+/dev/vflash               0660   bluetooth  net_bt_stack
+/dev/ttyS4                0660   bluetooth  net_bt_stack
+/dev/rtk_btusb            0660   bluetooth  net_bt_stack#for hid audio/dev/hidraw0              0660   audio  audio
diff --git a/device/rockchip/rk3288/bluetooth/rtkbt.conf b/device/rockchip/rk3288/bluetooth/rtkbt.conf
index 2bc297212b..42951cb793 100644
--- a/device/rockchip/rk3288/bluetooth/rtkbt.conf
+++ b/device/rockchip/rk3288/bluetooth/rtkbt.conf
@@ -9,7 +9,7 @@ DevClassMinorClass=0x1C#Indicate USB or UART driver bluetooth#BtDeviceNode=/dev/rtk_btusb
-BtDeviceNode=/dev/ttyS0
+BtDeviceNode=/dev/ttyS4# Enable BtSnoop logging function# valid value : true, false
diff --git a/device/rockchip/rk3288/rk3288_Android11/bt_vendor.conf b/device/rockchip/rk3288/rk3288_Android11/bt_vendor.conf
index 3714843d5b..a133cad89f 100755
--- a/device/rockchip/rk3288/rk3288_Android11/bt_vendor.conf
+++ b/device/rockchip/rk3288/rk3288_Android11/bt_vendor.conf
@@ -1,5 +1,5 @@# UART device port where Bluetooth controller is attached
-UartPort = /dev/ttyS0
+UartPort = /dev/ttyS4# Firmware patch file locationFwPatchFilePath = /vendor/etc/firmware/
diff --git a/hardware/realtek/rtkbt/code/libbt-vendor/include/bt_vendor_rtk.h b/hardware/realtek/rtkbt/code/libbt-vendor/include/bt_vendor_rtk.h
index a11546837e..f5a6080ffe 100755
--- a/hardware/realtek/rtkbt/code/libbt-vendor/include/bt_vendor_rtk.h
+++ b/hardware/realtek/rtkbt/code/libbt-vendor/include/bt_vendor_rtk.h
@@ -87,7 +87,7 @@/* Device port name where Bluetooth controller attached */#ifndef BLUETOOTH_UART_DEVICE_PORT
-#define BLUETOOTH_UART_DEVICE_PORT      "/dev/ttyS1"    /* maguro */
+#define BLUETOOTH_UART_DEVICE_PORT      "/dev/ttyS4"    /* maguro */#endif/* Location of firmware patch files */
diff --git a/hardware/realtek/rtkbt/vendor/etc/bluetooth/rtkbt.conf b/hardware/realtek/rtkbt/vendor/etc/bluetooth/rtkbt.conf
index a1e9b39361..c137c0ebd5 100755
--- a/hardware/realtek/rtkbt/vendor/etc/bluetooth/rtkbt.conf
+++ b/hardware/realtek/rtkbt/vendor/etc/bluetooth/rtkbt.conf
@@ -9,7 +9,11 @@ DevClassMinorClass=0x1C#Indicate USB or UART driver bluetooth#BtDeviceNode=/dev/rtkbt_dev
-BtDeviceNode=?/dev/ttyS1:H5
+BtDeviceNode=?/dev/ttyS4:H5
+
+# Enable BtSnoop logging function
+# valid value : true, false
+RtkBtsnoopDump=true# BtSnoop log output fileBtSnoopFileName=/data/misc/bluedroid/btsnoop_hci.cfa
diff --git a/hardware/realtek/rtkbt/vendor/etc/bluetooth/rtkbt_S0.conf b/hardware/realtek/rtkbt/vendor/etc/bluetooth/rtkbt_S0.conf
index 87a8241f17..89cd47356a 100755
--- a/hardware/realtek/rtkbt/vendor/etc/bluetooth/rtkbt_S0.conf
+++ b/hardware/realtek/rtkbt/vendor/etc/bluetooth/rtkbt_S0.conf
@@ -9,7 +9,7 @@ DevClassMinorClass=0x1C#Indicate USB or UART driver bluetooth#BtDeviceNode=/dev/rtk_btusb
-BtDeviceNode=?/dev/ttyS0:H5
+BtDeviceNode=?/dev/ttyS4:H5# Enable BtSnoop logging function# valid value : true, false

4、RTL8723DS 蓝牙Bluetooth驱动参考文档

路径:a\RKDocs\android\bt\Rockchip_Introduction_Android9.0_BT_Configuration_CN.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

温湿度监测技术又进化了,这个操作太牛了!

无论是在家庭、医疗、农业、制造业&#xff0c;还是在物流和食品行业&#xff0c;精确的温湿度监控对于确保安全、质量和效率都至关重要。 客户案例 医疗行业 在医疗行业&#xff0c;温湿度监控对于存储药品、生物样本和医疗设备至关重要。山东某医院引入了泛地缘科技推出的温湿…

杂记-使用crypto-js的AES进行加密/解密

安装 npm i crypto-js -D使用 import CryptoJS from "crypto-js";const aseKey CryptoJS.enc.Utf8.parse("XX123456"); const IV CryptoJS.enc.Utf8.parse(XX123456);// 加密 export function encryption(value) {let key CryptoJS.enc.Utf8.parse(as…

React组件渲染和更新的过程

一、回顾Vue组件渲染和更新的过程 二、回顾JSX本质和vdom 三、组件渲染和更新 1、组件渲染过程 props state (组件有了props state)render()生成vnodepatch(elem, vnode) 2、组件更新过程 setState(newState) --> dirtyComponents (可能有子组件)render()生成newVnodepa…

探索音频传输系统:数字声音的无限可能 | 百能云芯

音频传输系统是一项关键的技术&#xff0c;已经在数字时代的各个领域中广泛应用&#xff0c;从音乐流媒体到电话通信&#xff0c;再到多媒体制作。本文将深入探讨音频传输系统的定义、工作原理以及在现代生活中的各种应用&#xff0c;以帮助您更好地了解这一重要技术。 音频传输…

Java代码生成二维码

在 Java 中&#xff0c;我们可以使用第三方库 zxing&#xff08;Zebra Crossing&#xff09;来生成二维码。zxing 是一个开源的、功能丰富的条形码和二维码处理库&#xff0c;支持多种编程语言。 以下是一个示例代码&#xff0c;展示如何使用 zxing 库在 Web 应用中生成二维码…

为什么推荐使用SSL付费证书?

虽然免费的SSL证书提供了一种获取加密连接的途径&#xff0c;但它们与付费证书相比存在一些局限性和不足之处。免费的SSL证书在某些情况下可能不建议使用&#xff0c;主要有以下几个原因&#xff1a; 1. 可能信任度较低&#xff1a;免费SSL证书通常由非权威的证书颁发机构&…

论文精讲目录

ViT论文逐段精读【论文精读】MoCo 论文逐段精读【论文精读】对比学习论文综述【论文精读】Swin Transformer论文精读【论文精读】CLIP 论文逐段精读【论文精读】双流网络论文逐段精读【论文精读】I3D 论文精读【论文精读】视频理解论文串讲&#xff08;上&#xff09;【论文精读…

Linux ARMv8 异常向量表

http://blog.chinaunix.net/uid-69947851-id-5830546.html 本章接着《Linux内核启动》部分讲解&#xff0c;我们知道了在进入start_kernel之前&#xff0c;通过指令adr_l x8, vectors&#xff1b;msr vbar_el1, x8设置了异常向量表&#xff0c;那么异常向量表的结构是怎么样…

Flutter视图原理之三棵树的建立过程

目录 三棵树的关系树的构建过程1.updateChild函数&#xff08;element的复用&#xff09;2.inflateWidget函数3.mount函数3.1 componentElement的实现3.2 RenderObjectElement的实现3.2.1 attachRenderObject函数 4.performRebuild函数 总结三棵树创建流程 三棵树的关系 Flutt…

简单的elementui倒计时按钮事件

html部分 <el-button :disabled"disableButton" style"width:35%; float: right;" click"startCountdown"><span>{{ buttonText }}</span></el-button> 初始化: disableButton: false,buttonText: 获取验证码,countdow…

WebSocket学习笔记

一篇文章理解WebSocket原理 1.HTTP协议(半双工通信)&#xff1a; HTTP是客户端向服务器发起请求&#xff0c;服务器返回响应给客户端的一种模式。 特点&#xff1a; 1.只能是客户端向服务器发起请求&#xff0c;是单向的。 2.服务器不能主动发送数据给客户端。 半双工通信…

react+ts手写cron表达式转换组件

前言 最近在写的一个分布式调度系统&#xff0c;后端同学需要让我传入cron表达式&#xff0c;给调度接口传参。我去了学习了解了cron表达式的用法&#xff0c;发现有3个通用的表达式刚好符合我们的需求&#xff1a; 需求 每天 xx 的时间&#xff1a; 0 11 20 * * ? 上面是…

Java开发树结构数据封装!

目录 源数据如下controller接口&#xff1a;service层封装:Dao接口&#xff1a;Dao层Mapper:映射实体类&#xff1a; 源数据如下 controller接口&#xff1a; RequestMapping("/UserTreeInfo")public RespBody getUserTreeInfo(Long userId) {List<MenuTreeVo>…

一文学会使用WebRTC API

WebRTC&#xff08;Web Real-Time Communication&#xff09;是一项开放标准和技术集合&#xff0c;由 W3C 和 IETF 等组织共同推动和维护&#xff0c;旨在通过Web浏览器实现实时通信和媒体流传输。WebRTC于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的…

JVS-rules中的基础与复合变量:规则引擎的心脏

JVS-rules中的“变量”概念与编程语言中的变量类似&#xff0c;但它们通常在规则系统中处理条件判断、业务结果复制场景&#xff0c;如下所示&#xff1a; 条件判断&#xff1a;在规则引擎中&#xff0c;规则通常由两个部分组成&#xff1a;条件和分支。变量用于描述条件部分中…

Arduino驱动ICG-20660L传感器(惯性测量传感器篇)

目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序

职场题:有一件特别紧急的事,群众要办理,且联系不上领导,你怎么办?(2)

接1所写 如果无法联系上领导且有一项特别紧急的事情需要办理&#xff0c;以下是进一步的建议&#xff1a; 11. 尝试其他沟通渠道&#xff1a;除了直接联系领导外&#xff0c;尝试通过其他沟通渠道与领导取得联系。这可能包括电子邮件、即时通讯工具或其他内部通信平台。确保详…

逐字稿 | 2 MoCo 论文逐段精读【论文精读】

bryanyzhu的个人空间-bryanyzhu个人主页-哔哩哔哩视频 评价 今天我们一起来读一下 MOCO 这篇论文。 MOCO 是 CVPR 2020 的最佳论文提名&#xff0c;算是视觉领域里使用对比学习的一个里程碑式的工作。而对比学习作为从 19 年开始一直到现在视觉领域乃至整个机器学习领域里最炙…

深度学习零基础教程

代码运行软件安装&#xff1a; anaconda:一个管理环境的软件–>https://blog.csdn.net/scorn_/article/details/106591160&#xff08;可选装&#xff09; pycharm&#xff1a;一个深度学习运行环境–>https://blog.csdn.net/scorn_/article/details/106591160&#xf…

PAM从入门到精通(七)

接前一篇文章&#xff1a;PAM从入门到精通&#xff08;六&#xff09; 本文参考&#xff1a; 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构&#xff1a; 更加形象的形式&#xff1a; 五、主要函数详解 5. pam_strerror 概述&#xff1a; 描述…