RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配

这篇具有很好参考价值的文章主要介绍了RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

一、RTL8723DS WiFi 适配 — 篇章

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

RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式


补充:RTL8723DS时钟输入源讲解

RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式

RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式

  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管导通,处理方法如下图所示:
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
  我这在HD_gpio_control.c这个GPIO驱动程序上初始化GPIO8_A4,默认拉低电平,如下图所示,这里随意写个驱动即可。
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
  Ⅱ、修改sdio0设备树节点,如下图所示:
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
  将RTL8723DS驱动添加到内核吗,如下图所示:
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
  Ⅳ、修改make menuconfig,如下图所示:
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式

3、实验验证

  通过以上配置,基本驱动移植就配置好了,如下图所示:
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式

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部分)

RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
  上图黄色框框就是本次蓝牙功能适配需要关注的引脚接口。
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式

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

RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式
RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配,瑞芯微RK3288 Android11驱动开发,嵌入式硬件,linux,驱动开发,嵌入式

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文章来源地址https://www.toymoban.com/news/detail-723391.html

到了这里,关于RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RK3288 Android logo 一、Android 系统开机logo的修改

    安卓系统的开机分为u-boot logo 和 kernel logo 开机logo图片必须是 bmp 格式,并且分辨率必须为偶数 将制作好的BMP格式logo图片放置Android源码kernel目录下,重新编译即可 原因:  uboot logo 图片只能是8bpp的bmp图(参考uboot源码), 一般使用的都是24bpp 的jpg 和png 图 解决:  使用图片转换脚

    2024年02月10日
    浏览(41)
  • RK平台移植rtl8852bs wifi驱动

    RK平台 android 12的内核里面没有rtl8852bs wifi驱动,找模组原厂要了驱动,看了一下是其他平台的。。。要放RK平台是编译不过的,要做一下相应的修改,有点坑! 首先,修改kernel-5.10/drivers/net/wireless/rockchip_wlan/Kconfig: 接着, 修改kernel-5.10/drivers/net/wireless/rockchip_wlan/Makefile:

    2024年02月03日
    浏览(37)
  • 基于RK3399 Android11适配OV13850 MIPI摄像头

      从上图可看出,我们需要关心的,①MIPI数据和时钟接口使用的是MIPI_TX1/RX1 ②I2C使用的是I2C4总线 ③RST复位引脚使用的是GPIO2_D2 ④PWDN使用的是GPIO1_C7 ⑤MCLK使用的是GPIO3_B7 ⑥需要保证红色框框的供电电源正常。   结合RK提供的文档,如下摄像头数据采集拓扑图所示,我们

    2024年03月14日
    浏览(47)
  • Android Bluetooth | 蓝牙配对源码分析

    好厚米们,我又来了! 这次分享的是 蓝牙设备执行配对动作时Android源码的执行流程。 下面先来说下, 应用层是如何发起蓝牙配对的: ( ps:大多数业务逻辑,都是扫描到可用设备后,点击可用设备 - 发起配对。) 这里我直接略过点击可用设备的步骤哈,扫描到第一个可用

    2024年02月06日
    浏览(54)
  • Android Bluetooth(蓝牙) - 概念和框架

    目录   基本概念: 蓝牙的总体流程图 参考文献: RF(RADIO):射频层,本地蓝牙数据通过射频发送给远端设备,并且通过射频接收自远端蓝牙设备的数据 BB(BASEBAND):基带层,进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。 LMP

    2024年02月08日
    浏览(60)
  • 深入了解Android蓝牙Bluetooth【基础+进阶】

    也可以说是蓝牙技术。所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的。利用“蓝牙”技术,能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网Internet之间的通

    2024年02月05日
    浏览(46)
  • rk3566-安卓11-千兆网卡 rtl8211f 移植

    phy 常用的接口有两种 RGMII 和 RMII, 这两种对应的物理接口有 6 中如下所示. 首先需要根据原理图确定是哪种接法, 根据接法对应的 name 在文档 Rockchip_Developer_Guide_Linux_GMAC_Mode_Configuration_CN.pdf 中查找对应的配置. 1.1 RGMII 模式 该模式需要关注的硬件接口 mac: GMACX_MCLKINOUT , ETHx_REFCL

    2024年01月23日
    浏览(65)
  • Android连接蓝牙设备问题(android.permission.BLUETOOTH)

            近期遇到一个问题,之前发布的APP连接蓝牙都是正常的,现在有人反映连不上了。经过测试发现:android 12 和 harmonyOS 3.0.0 都会有这个问题,而之前的版本就不会有这个。         经过网上一番查找,原来是因为最近Google发布的Android 12,新引入了 BLUETOOTH_SCAN、

    2024年01月16日
    浏览(47)
  • Android Bluetooth(一)——蓝牙的开启和搜索

    Android 平台包含蓝牙网络堆栈支持,此支持能让设备以无线方式与其他蓝牙设备交换数据。应用框架提供通过 Android Bluetooth API 访问蓝牙功能的权限。这些 API 允许应用以无线方式连接到其他蓝牙设备,从而实现点到点和多点无线功能。 Android 应用可通过 Bluetooth API 执行以下操

    2024年01月16日
    浏览(45)
  • 【Android开发基础】蓝牙信息的获取(Bluetooth)

    描述:蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接。蓝牙使当前的一些便携移动设备和计算机设备能够不需要电缆就能连接到互联网,并且可以无线接入互联网。

    2024年02月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包