sysfs: cannot create duplicate filename '/class/spi_master/spi1'

在编写SPI驱动程序的时候,遇到如下问题



s3c2410-spi s3c2410-spi.0: master is unqueued, this is deprecated
------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:508 sysfs_add_one+0x80/0xa4()
sysfs: cannot create duplicate filename '/class/spi_master/spi1'
Modules linked in:
[<c000e9b0>] (unwind_backtrace+0x0/0xf8) from [<c0017a24>] (warn_slowpath_common+0x48/0x60)
[<c0017a24>] (warn_slowpath_common+0x48/0x60) from [<c0017ad0>] (warn_slowpath_fmt+0x30/0x40)
[<c0017ad0>] (warn_slowpath_fmt+0x30/0x40) from [<c00d0fe8>] (sysfs_add_one+0x80/0xa4)
[<c00d0fe8>] (sysfs_add_one+0x80/0xa4) from [<c00d2060>] (sysfs_do_create_link+0x110/0x1f8)
[<c00d2060>] (sysfs_do_create_link+0x110/0x1f8) from [<c01859b8>] (device_add+0x2d0/0x66c)
[<c01859b8>] (device_add+0x2d0/0x66c) from [<c01cc7d4>] (spi_register_master+0x74/0x270)
[<c01cc7d4>] (spi_register_master+0x74/0x270) from [<c01ccde8>] (spi_bitbang_start+0x104/0x17c)
[<c01ccde8>] (spi_bitbang_start+0x104/0x17c) from [<c02d1ee8>] (s3c24xx_spi_probe+0x1e4/0x374)
[<c02d1ee8>] (s3c24xx_spi_probe+0x1e4/0x374) from [<c0188df4>] (platform_drv_probe+0x18/0x1c)
[<c0188df4>] (platform_drv_probe+0x18/0x1c) from [<c0187a90>] (driver_probe_device+0x84/0x214)
[<c0187a90>] (driver_probe_device+0x84/0x214) from [<c0187cac>] (__driver_attach+0x8c/0x90)
[<c0187cac>] (__driver_attach+0x8c/0x90) from [<c0186530>] (bus_for_each_dev+0x64/0x90)
[<c0186530>] (bus_for_each_dev+0x64/0x90) from [<c0186c70>] (bus_add_driver+0x180/0x248)
[<c0186c70>] (bus_add_driver+0x180/0x248) from [<c018826c>] (driver_register+0x58/0x130)
[<c018826c>] (driver_register+0x58/0x130) from [<c0008560>] (do_one_initcall+0x34/0x17c)
[<c0008560>] (do_one_initcall+0x34/0x17c) from [<c03c030c>] (kernel_init+0xf4/0x1bc)
[<c03c030c>] (kernel_init+0xf4/0x1bc) from [<c000a1e8>] (kernel_thread_exit+0x0/0x8)
---[ end trace 4b71d52102dc89fe ]---
s3c2410-spi s3c2410-spi.1: Failed to register SPI master
s3c2410-spi: probe of s3c2410-spi.1 failed with error -17






错误的原因是:
cannot create duplicate filename '/class/spi_master/spi1'  
创建了两个相同的控制器,创建了两次控制器1




解决方案:找到设置为  控制器1 的,  .bus_num ,将它设为0
struct s3c2410_spi_info spi0_info={
.num_cs =0xffff ,
.bus_num   = 0, //1 ,  //把1改成0 。   bus_num的值就是几号控制器
.set_cs =s3c_spi_set_cs,
};

原文地址:https://www.cnblogs.com/alan666/p/8311954.html