RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配

news2024/12/28 3:57:42

目录

  • 一、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文件和规格书和参考文档👈


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-start
     chown bluetooth net_bt ro.bt.bdaddr_path
     setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr"
 
-    #chmod 0660 /dev/ttyS0
+    chmod 0660 /dev/ttyS0
     chmod 0660 /dev/ttyS1
-    #chmod 0660 /dev/ttyS8
+    chmod 0660 /dev/ttyS4
     chmod 0660 /dev/vflash
     chmod 0664 /dev/vendor_storage
     chown bluetooth net_bt /dev/vflash
     chown 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/ttyS4
     chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
     chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
     chmod 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 location
 FwPatchFilePath = /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 file
 BtSnoopFileName=/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.coloradmin.cn/o/1106082.html

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

相关文章

使用 LF Edge eKuiper 将物联网流处理数据写入 Databend

作者&#xff1a;韩山杰 Databend Cloud 研发工程师 https://github.com/hantmac LF Edge eKuiper LF Edge eKuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源软件&#xff0c;可以运行在各类资源受限的边缘设备上。eKuiper 的主要目标是在边缘端提供一个流媒体软件…

怎样正确做 Web 应用的压力测试?

Web应用&#xff0c;通俗来讲就是一个网站&#xff0c;主要依托于浏览器来访问其功能。 那怎么正确做网站的压力测试呢&#xff1f; 提到压力测试&#xff0c;我们想到的是服务端压力测试&#xff0c;其实这是片面的&#xff0c;完整的压力测试包含服务端压力测试和前端压力测…

hue实现对hiveserver2 的负载均衡

如果你使用的是CDH集群那就很是方便的 在Cloudera Manager中&#xff0c;进入HDFS Service 进入Instances标签页面&#xff0c;点击Add Role Instances按钮&#xff0c;如下图所示 点击Continue按钮&#xff0c;如下图所示 返回Instances页面&#xff0c;选择HttpFS角色…

Jmeter测试添加凭证和导出压测结果

选中测试计划中的HTTP请求&#xff0c;右键-->添加配置元件-->HTTP信息头管理器&#xff0c;在窗口中添加 如果是post请求&#xff0c;还需在信息头管理器中添加Content-Type:application/json 导出聚合报告

数学建模——最大流问题(配合例子说明)

目录 一、最大流有关的概念 例1 1、容量网络的定义 2、符号设置 3、建立模型 3.1 每条边的容量限制 3.2 平衡条件 3.3 网络的总流量 4、网络最大流数学模型 5、计算 二、最小费用流 例2 【符号说明】 【建立模型】 &#xff08;1&#xff09;各条边的流量限制 &a…

(Python)使用Matplotlib将x轴移动到绘图顶部

移动前&#xff1a; 我们有两种方法可以实现这个目标&#xff1a; import warnings warnings.filterwarnings(ignore)import numpy as np import matplotlib.pyplot as pltcolumn_labels list(ABCD) row_labels list(WXYZ)data np.random.rand(4, 4)fig, ax plt.subplots(…

手写商用Java虚拟机HotSpot,疯狂磨砺技术中

在当前Java行业激烈竞争的形式下&#xff0c;唯有掌握技术&#xff0c;心中才不能慌。在多年前&#xff0c;我就开始苦练底层技术&#xff0c;但是眼看百遍也不如手过一遍&#xff0c;所以我打算把虚拟机的精华实现部分用手敲出来&#xff0c;这个过程注定不会轻松&#xff0c;…

基于springboot的学生宿舍管理系统(源码+LW+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

副业兼职做什么好呢?七个线上兼职线下副业可供选择

生活节奏的加快&#xff0c;人们的生活压力也与日俱增。为了缓解压力、增加收入&#xff0c;许多人都开始寻找副业兼职的机会。副业兼职不仅可以帮助我们应对经济困境&#xff0c;更可以为我们的生活注入新的乐趣和意义。但是在众多的副业兼职选择中&#xff0c;该如何找到适合…

(1)攻防世界web-Training-WWW-Robots

1.开启环境&#xff0c;查看网页 翻译一下 2.前往robots.txt 命令&#xff1a;http://61.147.171.105:57663/robots.txt 3.前往fl0g.php 命令&#xff1a;http://61.147.171.105:57663/fl0g.php 4.得到flag cyberpeace{92ec1ef9b6d900100399093b9ae9e386}

python烟花代码

下面是一个用Python编写的简单烟花特效代码&#xff0c;使用了Pygame库来实现图形显示。请确保你已经安装了Pygame库&#xff0c;如果没有安装&#xff0c;可以使用pip install pygame来安装。 import pygame import random# 初始化Pygame pygame.init()# 屏幕大小 width, hei…

热点报告 | 解压经济成为新风向,素人改造踩中用户痛点

您是否曾有以下困惑&#xff1f;打开小红书首页推荐&#xff0c;似乎已经被算法教育成了成熟的信息茧房&#xff0c;想要找到下一个热点&#xff0c;又忧虑一叶以障目&#xff1b;看着搜索框热词&#xff0c;又担心无法掌握热词背后的话题命脉&#xff0c;难以在浮光掠影中寻找…

【学位论文】GB/T 7714-2015引用的快捷操作方法

GB/T 7714-2015《信息与文献参考文献著录规则》于2015年12月1日开始实施&#xff0c;成为了目前国内主流的学位论文引用格式之一。本文介绍一种比较方便简单的引用方法。 7714示例&#xff1a; [1] He K, Gkioxari G, Dollr P, et al. Mask r-cnn[C]//Proceedings of the IEEE …

web安全之XSS攻击

什么是XSS攻击 XSS&#xff08;Cross-Site Scripting&#xff09;又称跨站脚本&#xff0c;XSS的重点不在于跨站点&#xff0c;而是在于脚本的执行。XSS是一种经常出现在 Web 应用程序中的计算机安全漏洞&#xff0c;是由于 Web 应用程序对用户的输入过滤不足而产生的。 常见…

基于react18+arco+zustand通用后台管理系统React18Admin

React-Arco-Admin轻量级后台管理系统解决方案 基于vite4构建react18后台项目ReactAdmin。使用了reactarco-designzustandbizcharts等技术架构非凡后台管理框架。支持 dark/light主题、i18n国际化、动态路由鉴权、3种经典布局、tabs路由标签 等功能。 技术框架 编辑器&#xff…

pip install huggingface_hub时报错

pip install huggingface_hub时报错&#xff1a; 可以尝试&#xff1a;pip install --upgrade huggingface_hub 进行安装 方法参考了&#xff1a;https://blog.csdn.net/m0_72295867/article/details/132060750

vue.js - 断开发送的请求,解决接口重复请求数据错误问题(vue中axios多次相同请求中断上一个)

描述 进入页面时第一个接口还在请求,立即切换tab请求第二个接口。但是第二个接口响应比第一个接口响应快,页面展示的时第一个接口的数据,如图: 解决方法 判断如果是相同的接

谷歌浏览器跨域及--disable-web-security无效解决办法

谷歌浏览器跨域设置 &#xff08;1&#xff09;创建一个目录&#xff0c;例如我在C盘创建MyChromeDevUserData文件夹 &#xff08;2&#xff09; 在桌面选择谷歌浏览器右键 -> 属性 -> 快捷方式 -> 目标&#xff0c;添加--disable-web-security --user-data-dirC:\M…

第六届物业管理创新发展论坛在深召开,鹏业受邀参加并发表主题演讲

10月12日至14日&#xff0c;由中国物业管理协会&#xff08;以下简称“中物协”&#xff09;主办&#xff0c;物业管理行业唯一报备商务部的国际性展会——2023中国国际物业管理产业博览会&#xff08;以下简称“物博会”&#xff09;在深圳会展中心隆重举行。 本届物博会同期还…

Docker是一个流行的容器化平台,用于构建、部署和运行应用程序。

文章目录 Web应用程序数据库服务器微服务应用开发环境持续集成和持续部署 (CI/CD)应用程序依赖项云原生应用程序研究和教育 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&#xff1a;…