AnsweredAssumed Answered

i can't use spi_register_board_info() to register my board info .

Question asked by dannynash on Mar 10, 2012
Latest reply on Mar 12, 2012 by sonic

大家好,

目前使用BF533透過SPI介面控制一個ADCICkerneluClinux 2006R2

寫了一個SPIdriver,但在寫的過程中遇到一些問題,想請教各位

 

因為我沒辦法make出可以使用的kernel,目前的Image是有現成的,也就是我必須以non_static的方式寫成module。

static struct spi_board_info bfin_spi_board_info[] = {

{

.modalias = "spidev", /* Name of spi_driver for this device */

.max_speed_hz = 8, /* actual baudrate is SCLK/(2xspeed_hz) */

.bus_num = 1, /* Framework bus number */

.chip_select = 6, /* Framework chip select. */

.platform_data = NULL, /* No spi_driver specific config */

.controller_data = &spi_adc_chip_info,

.mode = SPI_MODE_1,

},

};

上面是我參考linux-2.6.x/arch/blackfin/mach-bf533/boards/stamp.c中,根據設計的板子對於spi_board_info架構下定義,

 

參考網路上的文章,會在probe 中 呼叫spi_register_board_info 來註冊這些資訊,

但是當我這麼做的時候會出現一長串的錯誤碼

{

 

CURRENT PROCESS:               

 

COMM=insmod PID=112                  

TEXT = 0x00cc0040-0x00ce2ca0  DATA = 0x00ce2ca4-0x00ce9654

BSS = 0x00ce9654-0x00cee594   USER-STACK = 0x00cfff6c

 

return address: 0x000f88dc; contents of [PC-16...PC+8]:

e148 5524 05e3 e12a 0064 e108 5524 e800                                      

00b4 9342 e148 55cc e108 55cc 3228 3221 X                                        

9100 6001 e300 3d4c e140 45b8 e100 45b8                                      

 

RETE: 00000000  RETN: 0017bad8  RETX: 000f88dc  RETS: 001eb26e

IPEND: 8030 SYSCFG: 0036

SEQSTAT: 00000026               

R0: 00c46a2c R1: 00000001    R2: 0000001f    R3: 00000053

R4: 00000012 R5: 0000001f    R6: 00c46a60    R7: 00000000                                                           

P0: 55cc55cc P1: 00100a74    P2: 00000064    P3: 000ffc6c

  P4: 00000001 P5: 00c46a2c    FP: 0017bda8                    

....

 

}

 

參考網路上敘述的文章之後,有關於這方面的討論

int __init  spi_register_board_info(struct spi_board_info const *info, unsigned n)

將原本定義的__init替換成為 __devinit  可以解決這個問題,

但如此一來又需要重新make kernel

 

請問是否有其他方式可以註冊這些資訊呢?

 

感謝各位

Outcomes