Hi All,
I am using SBC8100 (http://www.armkits.com/download/sbc8100.pdf) with OMAP3530 processor on the board. OMAP processor have 4 SPI on it, one of the SPI, SPI2 is being used for LCD display. I am trying to use the other SPI, SPI1 and trying to enable it so that I can see the SPI on /dev/spidev1.0. I am using spidev driver and follow the documentation of spidev.
I configure the board information in /arch/arm/mach-omap2/board-omap3evm.c as follows:
struct spi_board_info omap3evm_spi_board_info1[] = {
[0] = {
.modalias = "spidev",
.bus_num = 1,
.chip_select = 0,
.max_speed_hz = 1000000,
},
};
and register the SPI as follows:
spi_register_board_info(omap3evm_spi_board_info1, ARRAY_SIZE(omap3evm_spi_board_info1));
I recompile the kernel and configure the SPI to be built-in into the kernel (not as module). After I update the uImage (kernel image) into the NAND flash and reboot, the system hangs as follows:
Texas Instruments X-Loader 1.41
Starting OS Bootloader...
U-Boot 1.3.3-svn323 (Jan 14 2010 - 11:37:31)
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
SBC8100 Board + LPDDR/NAND
DRAM: 128 MB
NAND: 128 MiB
Error: no valid bmp image at 800c0000
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x280000, size 0x210000
Reading data from 0x48f800 -- 100% complete.
2162688 bytes read: OK
## Booting kernel from Legacy Image at 80300000 ...
Image Name: Linux-2.6.22.18-omap3
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2028200 Bytes = 1.9 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux.............................................................
......................................................................... done,
booting the kernel.
I am not sure why it hangs there. However if I change the above spi_board_info as follows (change the bus_no = 2 and chip_select = 1):
struct spi_board_info omap3evm_spi_board_info1[] = {
[0] = {
.modalias = "spidev",
.bus_num = 2,
.chip_select = 1,
.max_speed_hz = 1000000,
},
};
the system can reboot and there is spidev2.1 under /dev. However what I want is to enable SPI1 which have chip select 0 or 3. I have also try using chip_select = 3 for SPI1, but it is also hangs. Do I miss something here?
Can anyone advise me regarding this?
Thank you and Best Regards,
Helmi