I have wireless RF Transceiver Module 433Mhz CC1101 with spi interface. How use this module with tiny6410? Please help me!
tiny6410 spi
I tried to do the following with kernel linux-2.6.38: in kernel config enable: Device Drivers\SPI support\Samsung S3c64XX series type SPI Device Drivers\SPI support\User mode SPI device driver support in: arch/arm/mach-s3c64xx/Kconfig add:(otherwise dev-spi.c don`t compiling) config S3C64XX_DEV_SPI bool default y help Setup spi bus. in: arch/arm/mach-s3c64xx/mach-mini6410.c add: #include <plat/s3c64xx-spi.h> #include <linux/spi/spi.h> static void mini6410_set_cs(unsigned line, int cs) { unsigned int pin; int change = 1; switch (line) { case 0: pin = S3C64XX_GPC(7); break; default: printk(KERN_ERR "mini6410_set_cs, unknown line %d\n", line); change = 0; break; } if(change) { //gpio_request(pin, "temporary"); gpio_set_value(pin, cs); //gpio_free(pin); } }; static int cc1101_ioSetup(struct spi_device *spi) { printk(KERN_INFO "cc1101: setup gpio pins CS and External Int\n"); s3c_gpio_setpull(S3C64XX_GPL(8), S3C_GPIO_PULL_UP); s3c_gpio_cfgpin(S3C64XX_GPL(8), S3C_GPIO_SFN(3)); s3c_gpio_setpull(S3C64XX_GPC(7), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C_GPIO_OUTPUT); return 0; } static struct s3c64xx_spi_csinfo cc1101_cs_info[] = { { .fb_delay = 0x3, // 9ns feedback delay for cs line .line = 0, .set_level = mini6410_set_cs, }, }; struct cc1101_platform_data { int (*board_specific_setup)(struct spi_device *spi); }; static struct cc1101_platform_data cc1101_info = { .board_specific_setup = cc1101_ioSetup, }; static struct spi_board_info mini6410_spi_board_info[] __initdata = { { .modalias = "cc1101", .platform_data = &cc1101_info, .controller_data = &cc1101_cs_info, .max_speed_hz = 2*1000*1000, .irq = IRQ_EINT(16), .chip_select = 0, .bus_num = 1, .mode = SPI_MODE_0, }, }; in: "static struct platform_device *mini6410_devices[] __initdata = {" add: &s3c64xx_device_spi1, in: "static void __init mini6410_machine_init(void)" add: printk(KERN_INFO "MINI6410: SPI ID %i\n", spi_register_board_info(mini6410_spi_board_info, ARRAY_SIZE(mini6410_spi_board_info))); s3c64xx_spi_set_info(1,0,1); -------------------------------------------------- After running system I get: user@fa:~$ dmesg | grep spi spi-bus: source is mout_epll (0), rate is 24000000 spi-bus: source is mout_epll (0), rate is 24000000 user@fa:~$ dmesg | grep SPI MINI6410: SPI ID 0 user@fa:~$ find /sys -name '*spi*' /sys/devices/platform/s3c64xx-spi.1 /sys/devices/platform/s3c64xx-spi.1/spi_master /sys/devices/platform/s3c64xx-spi.1/spi_master/spi1 /sys/devices/platform/s3c64xx-spi.1/spi1.0 /sys/bus/platform/devices/s3c64xx-spi.1 /sys/bus/platform/drivers/s3c64xx-spi /sys/bus/platform/drivers/s3c64xx-spi/s3c64xx-spi.1 /sys/bus/spi /sys/bus/spi/devices/spi1.0 /sys/bus/spi/drivers/spidev /sys/class/spi_master /sys/class/spi_master/spi1 /sys/class/spidev /sys/module/spidev But in /dev nothing with spi Somebody, please help.
For the mini2440 I also made this change in my kernel config: Device Drivers -> SPI support SPI Master Controller Drivers -> Samsung S3C24XX series SPI SPI Protocol Masters -> User mode SPI device driver support Do you need to do something similar for the mini6410?
Thanks for the reply, but i already done this: I enable in kernel config: Device Drivers\SPI support\Samsung S3c64XX series type SPI Device Drivers\SPI support\User mode SPI device driver support. You talk about it?
Sorry, I have no specific experience on the mini6410. With help I wrote a SPI driver for the mini2440, however you appear to have more experience than I do. Another idea: I thought udev made the /dev/spi* nodes from information in /sys/class/ Good luck.
Sorry, I did not notice that you had already done the kernel modification :( Google for <udev spi> I am trying to find which udev file it is suppose to be in.
Well, I can't find anything in my /lib/udev/rules.d files with spi* in it. Does dmesg have anything to say?
I found it very similar to what we need. I can check tomorrow. http://blog.csdn.net/zhanglongtumi/article/details/9049077
Good. One last one : https://www.kernel.org/doc/Documentation/spi/spidev Device creation Driver binding Good night.