RC522在S5PV210处理器上的linux驱动调试(1)

最近在做RC522在linux系统上的驱动,板卡采用天嵌科技的TQ210板卡,这个板卡用的S5PV210处理器。调试过程会分篇来写。

RC522在单片机上很好移植,但是一旦基于linux系统上就没这么容易了。本人也是费劲周折。

首先了解关于linux中SPI驱动的基本知识,网上有很多参考,请自行寻找。

1 .平台设备的注册条件
注册设备驱动引入了设备驱动管理机制,也就是platform device和platform drivers。在设备驱动注册之前,它的关联设备platform device必先完成注册。

顺序:创建新的设备及资源->注册新的设备->创建新的设备驱动->注册新驱动

2 . arch/arm/mach-s5pv210/mach-tq210.c中的platform device

平台初始化过程中,会运行tq210_machine_init函数,此函数中会运行platform_add_devices(tq210_devices, ARRAY_SIZE(tq210_devices));添加设备,下面看tq210_devices这个结构体中有定义关于spi总线的两句话
&s5pv210_device_spi0,
&s5pv210_device_spi1,
在dev-spi.c文件中有关于上面两句话的定义
struct platform_device s5pv210_device_spi0 = {
.name  = "s3c64xx-spi",
.id  = 0,
.num_resources = ARRAY_SIZE(s5pv210_spi0_resource),
.resource  = s5pv210_spi0_resource,
.dev = {
.dma_mask = &spi_dmamask,
.coherent_dma_mask= DMA_BIT_MASK(32),
.platform_data = &s5pv210_spi0_pdata,
},
};
此结构体中定义了platform_device。
现在回到arch/arm/mach-s5pv210/mach-tq210.c中来,tq210_machine_init函数中还运行了
if (!gpio_request(S5PV210_GPB(1), "SPI_CS0")) {
gpio_direction_output(S5PV210_GPB(1), 1);
s3c_gpio_cfgpin(S5PV210_GPB(1), S3C_GPIO_SFN(1));
s3c_gpio_setpull(S5PV210_GPB(1), S3C_GPIO_PULL_UP);
s5pv210_spi_set_info(0,S5PV210_SPI_SRCCLK_PCLK, ARRAY_SIZE(smdk_spi0_csi));
}
if (!gpio_request(S5PV210_GPB(5), "SPI_CS1")) {
gpio_direction_output(S5PV210_GPB(5), 1);
s3c_gpio_cfgpin(S5PV210_GPB(5), S3C_GPIO_SFN(1));
s3c_gpio_setpull(S5PV210_GPB(5), S3C_GPIO_PULL_UP);
s5pv210_spi_set_info(1,S5PV210_SPI_SRCCLK_PCLK, ARRAY_SIZE(smdk_spi1_csi));
}
spi_register_board_info(s3c_spi_devs, ARRAY_SIZE(s3c_spi_devs));
注册spi总线,
s3c_spi_devs[]结构体中定义了模式,最高速度,总线等描述,此处再调试过程中发现.max_speed_hz的数值不可低于130000,若低于此数值,编译内核之后来/dev中无法查看到spidev0.0及spidev1.0设备。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值