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;温湿度监控对于存储药品、生物样本和医疗设备至关重要。山东某医院引入了泛地缘科技推出的温湿…

React组件渲染和更新的过程

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

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

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

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

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

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

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

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;条件和分支。变量用于描述条件部分中…

逐字稿 | 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; 描述…

千兆光模块和万兆光模块的区别?

在网络通信领域&#xff0c;千兆光模块和万兆光模块是最为常见且广泛应用的两种光模块。不同之处在于传输速率、封装、传输距离、功耗、发射光功率、接收光功率和应用场景等。 千兆光模块的传输速率为1 Gbps&#xff0c;万兆光模块的传输速率为10 Gbps&#xff0c;这意味着万…

vue-cli脚手架创建项目时报错Error: command failed: npm install --loglevel error

项目背景 环境&#xff1a;vue-cli 5.x 在工程文件中&#xff0c;后端模块wms已经创建完成&#xff0c;现在想新建一个名为vue-web的前端模块 执行命令vue create vue-web时&#xff0c; 报错Error: command failed: npm install --loglevel error 问题分析及解决 排查过程…

idea dubge 详细

目录 一、概述 二、debug操作分析 1、打断点 2、运行debug模式 3、重新执行debug 4、让程序执行到下一次断点后暂停 5、让断点处的代码再加一行代码 6、停止debug程序 7、显示所有断点 8、添加断点运行的条件 9、屏蔽所有断点 10、把光标移到当前程序运行位置 11、单步跳过 12、…

迅为RK3588开发板Android12单摄方案设备树修改

打开 3588-android12/kernel-5.10/arch/arm64/boot/dts/rockchip/topeet_camera_config.dtsi 设备树&#xff0c;此设备树中对底板上的摄像头接口进行了配置&#xff0c;如下图所示&#xff1a; 如果想要使用 J1 接口打开摄像头 OV5695 或者 摄像头 OV13850&#xff0c;只需要在…

pytorch代码实现之动态蛇形卷积模块DySnakeConv

动态蛇形卷积模块DySnakeConv 血管、道路等拓扑管状结构的精确分割在各个领域都至关重要&#xff0c;确保下游任务的准确性和效率。 然而&#xff0c;许多因素使任务变得复杂&#xff0c;包括薄的局部结构和可变的全局形态。在这项工作中&#xff0c;我们注意到管状结构的特殊…

3、Flowable任务分配和流程变量

任务分配和流程变量 1.任务分配 1.1 固定分配 固定分配就是我们前面介绍的&#xff0c;在绘制流程图或者直接在流程文件中通过Assignee来指定的方式 1.2 表达式分配 Flowable使用UEL进行表达式解析。UEL代表Unified Expression Language&#xff0c;是EE6规范的一部分.Flo…

无蓝光的护眼灯有哪些品牌?分享五款优秀的无蓝光护眼台灯

现在儿童近视率越来越高了&#xff0c;用眼过度疲劳是导致近视的主要因素&#xff0c;学习环境的光线是否合适&#xff0c;都会直接影响用眼的疲劳程度。所以给孩子营造一个良好的学习环境非常重要&#xff01;为大家推荐五大品牌的护眼台灯。 1.书客护眼台灯L1 推荐指数&…