RK3288 上内核自带SC16IS762 驱动程序调试

之前的文章记录了 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 进行收发测试 

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

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值