前言
在RK3399平台开发过程中,经常需要用到4G模块,本文旨在介绍一款全网通的4G模块EC200A。
系统:Android8.1
内核 : Kernel 4.4.167
u-boot:2014.10
4G 模块:EC200A
一、EC200A 简介
EC200A系列是移远通信专为M2M和IoT领域设计的LTE Cat4无线通信模块,采用3GPPRel.9LTE技术,支持最大下行速率150Mbps和最大上行速率50Mbps。同时,EC200A系列在封装上兼容移远通信的多网络制式LTE Standard EC25系列、EC21系列、EC20-CE、EG25-G、EC200T系列、EC200D-CN、EC200U系列、EC200N-CN和UMTS/HSPA+UC200T系列模块,实现了从3G网络向4G网络的轻松平滑过渡。
二、EC200A 驱动移植
1. 参考信息
首先从厂商获取相关资料 ,包括:
- 软/硬件及AT操作指令文档集
- USB Serial Driver 指导手册及源码
- Android RIL Driver 指导手册及源码
亦可从以下链接获取相关资料 :
资料列表如下 :
- Quectel_Android_RIL_Driver_V3.5.14.tgz
- Quectel_WCDMA<E_Android_RIL_Driver_User_Guide_V1.0.pdf
- Quectel_Linux_USB_Serial_Option_Driver_20211012.tgz
- Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.0.pdf
2. USB Serial 移植
-
将Quectel_Linux_USB_Serial_Option_Driver_20211012.tgz 解压,得到下列文件:option.c qcserial.c usb-wwan.h usb_wwan.c
-
将解压得到的文件 option.c qcserial.c usb-wwan.h usb_wwan.c 替换掉sdk源码kernel/drivers/usb/serial/路径下的 option.c qcserial.c usb-wwan.h usb_wwan.c
-
使能内核选项,新增宏定义:
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_DEBUG=y
CONFIG_USB_SERIAL_QUALCOMM=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_OPTION=y
3. EC200A 设备树DTS设置
- 在 kernel/arch/arm64/boot/dts/rockchip/rk3399-xxx.dts 中新增4G DTS 配置:
4G-Modem {
compatible="4g-modem-platdata";
pinctrl-names = "default";
pinctrl-0 = <<e_wakeupin <e_power <e_reset <e_simsel>;
4G,wakeup = <&gpio0 2 GPIO_ACTIVE_LOW>;
4G,power = <&gpio1 18 GPIO_ACTIVE_HIGH>;
4G,reset = <&gpio4 6 GPIO_ACTIVE_LOW>;
4G,simsel = <&gpio3 28 GPIO_ACTIVE_LOW>;
status = "okay";
};
-
在 kernel/drivers/net/lte/中移植源码lte_ec200a.c (