瑞芯微Rockchip开发者社区
登录
直播中
一瞅一个准
12年用户
837经验值
私信
关注
[问答]
SC16IS7xx驱动在RK3288平台上是如何完成移植的
开启该帖子的消息推送
RK3288
驱动
移植
SC16IS7xx驱动在RK3288平台上是如何完成移植的?有哪些移植过程呢?
回帖
(1)
王鹏
2022-3-3 09:43:23
之前的文章记录了 SC16IS762 SPI/I2C 转 UART 串口芯片 驱动调试过程,
本编中将记录 使用内核中自带的SC16IS7xx 驱动在RK3288平台上的移植过程。
环境:
Hardware: RK3288 (九鼎 RK3288 CV5 核心板)
SDK: linux 4.4.18
SC16IS762 电路:
1、首先参考内核中关于该芯片设备树的描述,
在设备树中添加 相关描述如下:
&spi0 {
status = "okay";
max-freq = <48000000>; //spi internal clk, don't modify
pinctrl-names = "default"; //pinctrl according to you board
pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0 &spi0_cs1>;
sc16is762@01 {
compatible = "nxp,sc16is762";
reg = <0x01>; //chip select 0:cs0 1:cs1
spi-max-frequency = <1000000>; //spi output clock
//clocks = <&cru SCLK_SPI0>;
clocks = <&ext_sc16is7xx>;
pinctrl-names = "default"; //pinctrl according to you board
pinctrl-0 = <&sc16is762_irqgpio>;
interrupt-parent = <&gpio8>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
irq-gpio = <&gpio8 1 GPIO_ACTIVE_LOW>;
};
};
由于 SC16IS762 需要指定始终源 进行串口 波特率的设置,否则会出现 驱动 probe 失败的问题:
所以需要添加 clocks 描述;
ext_sc16is7xx: external-sc16is7xx-clock {
compatible = "fixed-clock";
clock-frequency = <18432000>;
clock-output-names = "ext_sc16is7xx";
#clock-cells = <0>;
};
始终频率需要根据自己的电路设置,公司板子上SC16IS762 使用的晶振为18.432MHZ
2、修改内核配置选项 使能 sc16is7xx 驱动,make menuconfig ---> /sc16is7xx , 根据提示使能,这里不赘述
3、配置好后 ./mk.sh -k -cv=5 重新编译生成 zboot.img, 烧录至主板后重启,查看启动打印信息
驱动被正常调用,查看/dev/ttysc0 是否存在
4、microcom -s 115200 /dev/ttysc0 进行收发测试
笔者在测试时发现 串口输出乱码,后检查发现是 芯片的晶振时钟没有配置正确,所以大家 一定要根据自己的电路相应修改设备树!
之前的文章记录了 SC16IS762 SPI/I2C 转 UART 串口芯片 驱动调试过程,
本编中将记录 使用内核中自带的SC16IS7xx 驱动在RK3288平台上的移植过程。
环境:
Hardware: RK3288 (九鼎 RK3288 CV5 核心板)
SDK: linux 4.4.18
SC16IS762 电路:
1、首先参考内核中关于该芯片设备树的描述,
在设备树中添加 相关描述如下:
&spi0 {
status = "okay";
max-freq = <48000000>; //spi internal clk, don't modify
pinctrl-names = "default"; //pinctrl according to you board
pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0 &spi0_cs1>;
sc16is762@01 {
compatible = "nxp,sc16is762";
reg = <0x01>; //chip select 0:cs0 1:cs1
spi-max-frequency = <1000000>; //spi output clock
//clocks = <&cru SCLK_SPI0>;
clocks = <&ext_sc16is7xx>;
pinctrl-names = "default"; //pinctrl according to you board
pinctrl-0 = <&sc16is762_irqgpio>;
interrupt-parent = <&gpio8>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
irq-gpio = <&gpio8 1 GPIO_ACTIVE_LOW>;
};
};
由于 SC16IS762 需要指定始终源 进行串口 波特率的设置,否则会出现 驱动 probe 失败的问题:
所以需要添加 clocks 描述;
ext_sc16is7xx: external-sc16is7xx-clock {
compatible = "fixed-clock";
clock-frequency = <18432000>;
clock-output-names = "ext_sc16is7xx";
#clock-cells = <0>;
};
始终频率需要根据自己的电路设置,公司板子上SC16IS762 使用的晶振为18.432MHZ
2、修改内核配置选项 使能 sc16is7xx 驱动,make menuconfig ---> /sc16is7xx , 根据提示使能,这里不赘述
3、配置好后 ./mk.sh -k -cv=5 重新编译生成 zboot.img, 烧录至主板后重启,查看启动打印信息
驱动被正常调用,查看/dev/ttysc0 是否存在
4、microcom -s 115200 /dev/ttysc0 进行收发测试
笔者在测试时发现 串口输出乱码,后检查发现是 芯片的晶振时钟没有配置正确,所以大家 一定要根据自己的电路相应修改设备树!
举报
更多回帖
rotate(-90deg);
回复
相关问答
RK3288
驱动
移植
怎样去解决调节
rk3288
平台上
的cpu温度频率出现bug的问题呢
2022-03-03
2073
如何在
RK3288
平台上
去编译uboot命令呢
2022-02-10
1214
在
RK3288
平台上
用gpio
驱动
点亮led灯的步骤有哪些呢
2022-03-03
972
在
RK3288
平台上
如何采用裸机实现LVDS和MIPI接口的LCD显示?
2022-03-04
1039
如何对
RK3288
平台上
的SPI接口进行调试呢
2022-03-04
1479
怎样去编译
RK3288
平台上
的Android系统源码呢
2022-03-10
1962
怎样
在
RK3288
平台上
点亮2.8寸的TFT LCD呢
2022-03-04
2034
如何对
在
RK3288
平台上
的XFS5152语音模块进行
驱动
调试呢
2022-03-03
830
怎样去设计一种基于
rk3288
平台
的双屏异显广告机呢
2022-03-03
1160
RK3288
camera
驱动
移植
步骤是怎样的?
2022-03-10
1601
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分