瑞芯微Rockchip开发者社区
直播中

一瞅一个准

12年用户 837经验值
私信 关注
[问答]

SC16IS7xx驱动在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 进行收发测试

笔者在测试时发现 串口输出乱码,后检查发现是  芯片的晶振时钟没有配置正确,所以大家 一定要根据自己的威廉希尔官方网站 相应修改设备树!

举报

更多回帖

发帖
×
20
完善资料,
赚取积分