linux-2.6.26下SPI1(2)带2个CS驱动移植调试

本文介绍了一个具体的SPI调试案例,包括配置SPI板级支持包的具体参数,如芯片选择、中断请求及最大速度等,并展示了如何在系统中注册这些配置,最终使能SPI设备。通过此过程,系统生成了两个SPI设备节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


转载请保留这一行,原文链接


第一个链接:

先完成单个SPI调试


修改文件:

// forch:
static struct spi_board_info s3c2410_spi1_board[] = {
        {
                 .modalias = "spidev",
                .bus_num        = 0,  
                .chip_select        = 0,
                .irq = IRQ_EINT9,
                .max_speed_hz         = 500*1000,
        },
        {
                 .modalias = "spidev",
                .bus_num        = 0,
                .chip_select        = 1,
                .irq = IRQ_EINT9,
                .max_speed_hz         = 500*1000,
        },

};
// forch:
static struct s3c2410_spi_info s3c2410_spi1_platdata[] = {
    [0] ={
        .pin_cs = S3C2410_GPA1,
        .num_cs = 2, // 1正常
    },
    [1] ={
        .pin_cs = S3C2440_GPJ12,
        .num_cs = 2, // 1正常
    },
};


// forch
static struct platform_device *smdk2410_devices[] __initdata = {
    &s3c_device_usb,
//    &qt2410_spi,// tianyl2011-0927
    &s3c_device_spi1,// forch
    //&s3c_device_lcd,
    //&s3c_device_wdt,
    //&s3c_device_i2c,
    //&s3c_device_iis,
};


static void __init smdk2410_init(void)
{
    platform_add_devices(smdk2410_devices, ARRAY_SIZE(smdk2410_devices));
    
    // 本来要添加到 smdk_machine_init(); 直接放这里了
    s3c_device_spi1.dev.platform_data = s3c2410_spi1_platdata;// forch  片选
    spi_register_board_info(s3c2410_spi1_board,ARRAY_SIZE(s3c2410_spi1_board));// forch 设备名称编号

    smdk_machine_init();
}


驱动下生成了两个节点

[root@forch app]# ls /dev/ |grep spi
spidev0.0
spidev0.1
[root@forch app]#





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值