Перейти к содержанию
    

Вероятно он "внутри" SPI, т.к. является устройством на шине. (например на моей железке это выглядит так /sys/devices/platform/s3c64xx-spi.0/spi_master/spi0/spi0.0/)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вероятно он "внутри" SPI, т.к. является устройством на шине. (например на моей железке это выглядит так /sys/devices/platform/s3c64xx-spi.0/spi_master/spi0/spi0.0/)

Дело в том, что я объявляю в массиве устройств SPI устройство с именем SPI_device (.modalias = "SPI_device"), затем указываю массив всех SPI устройств в at91_add_device_spi(), откуда вызывается spi_register_board_info(), где аргумент моё устройство, и функция platform_device_register() где аргумент устройство atmel_spi.

В итоге устройство с именем "SPI_device" не появляется.

 

не могли бы вы привести код как у вас регистрируется устройство "s3c64xx-spi.0" ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

static struct spi_board_info crux_spi_devices[] = {
    {       /* CAN */
        .modalias        = "mcp2515",
        .bus_num        = 0,
        .chip_select    = 0,
        .max_speed_hz    = 10 * 1000 * 1000,
        .irq            = CAN_IRQ,
        .platform_data    = &mcp251x_info,
        .controller_data= &crux_mcp_cs,
    },
};

struct platform_device s3c2416_device_spi = {
    .name            = "s3c64xx-spi",
    .id                = 0,
    .num_resources    = ARRAY_SIZE(s3c2416_spi_resource),
    .resource        = s3c2416_spi_resource,
    .dev = {
        .dma_mask            = &spi_dmamask,
        .coherent_dma_mask    = DMA_BIT_MASK(32),
        .platform_data        = &s3c2416_spi0_pdata,
    },
};

static struct platform_device *crux_devices[] __initdata = {
...
    &s3c2416_device_spi,
...
};

static void __init crux_machine_init(void)
{
    ...
    spi_register_board_info(crux_spi_devices, ARRAY_SIZE(crux_spi_devices));
    ...
    platform_add_devices(crux_devices, ARRAY_SIZE(crux_devices));
    ...
}

А драйвер для Вашего "SPI_device" написан? Зарегистрирован (spi_register_driver)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо, для полноты картины не могли бы вы выложить что у вас лежит в s3c2416_spi_resource.

Драйвер написан и зарегистрирован

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

static struct resource s3c2416_spi_resource[] = {
    [0] = {
        .start = S3C2416_PA_SPI,
        .end   = S3C2416_PA_SPI + 0x100 - 1,
        .flags = IORESOURCE_MEM,
    },
    [1] = {
        .start = DMACH_SPI0_TX,
        .end   = DMACH_SPI0_TX,
        .flags = IORESOURCE_DMA,
    },
    [2] = {
        .start = DMACH_SPI0_RX,
        .end   = DMACH_SPI0_RX,
        .flags = IORESOURCE_DMA,
    },
    [3] = {
        .start = IRQ_SPI0,
        .end   = IRQ_SPI0,
        .flags = IORESOURCE_IRQ,
    },
};

struct s3c64xx_spi_info s3c2416_spi0_pdata = {
    .src_clk_nr        = 0,    /* PCLK */
    .fifo_lvl_mask    = 0x7f,
    .rx_lvl_offset    = 13,
    .tx_st_done        = 21,
    .high_speed        = 1,
    .cfg_gpio         = s3c2416_spi0_cfg_gpio,
};

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вот что использую для своего устройства:

static struct resource spi1_resources[] = {
559         [0] = {
560                 .start  = AT91SAM9260_BASE_SPI1,
561                 .end    = AT91SAM9260_BASE_SPI1 + SZ_16K - 1,
562                 .flags  = IORESOURCE_MEM,
563         },
564         [1] = {
565                 .start  = AT91SAM9260_ID_SPI1,
566                 .end    = AT91SAM9260_ID_SPI1,
567                 .flags  = IORESOURCE_IRQ,
568         },
569 };

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это платформ дата для контроллера SPI, но как я понимаю с самим контроллером SPI у Вас проблем нет, он пробится и появляется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да он появляется. не появляется устройство имя которого я задаю через modalias. Устройство висит на SPI1.0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выложите полную spi_board_info для вашего устройства. А так же вывод "ls /sys/devices/platform/". А то я уже запутался. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

static struct spi_board_info ek_spi_devices[] = {

#if defined(CONFIG_AD7606) || \
    defined(CONFIG_AD7606_MODULE)
    {
        /* the modalias must be the same as spi device driver name */
        .modalias = "ad7606-8", /* Name of spi_driver for this device */
        .max_speed_hz = 10000000,     /* max spi clock (SCK) speed in HZ */
        .bus_num = 1, /* Framework bus number */
        .chip_select = 0, /* Framework chip select */
        .platform_data = &ad7606_pdata,
        //.controller_data = (void *) AT91_PIN_PB3, /* Blackfin only */
                .irq = AT91SAM9260_ID_IRQ2,     
                .mode = SPI_MODE_3,
    },
#endif
};

 

а вот вывод

root:/sys/devices/platform# ls
alarmtimer  at91_rtt.0   atmel_tcb.1    atmel_usart.2          power
at91_mci    atmel_spi.1  atmel_usart.0  iio-trigger-hrtimer.0  uevent
at91_ohci   atmel_tcb.0  atmel_usart.1  macb

Хотя ожидалось увидеть здесь AD7606-8.0

 

вот ещё интересный вывод

root@starterkit:/sys/devices/platform/atmel_spi.1/spi1.0# ls
driver  iio:device0  modalias  power  subsystem  uevent

iio:device0 - это по всей видимости моё устройство, но почему не ad7606-8 ?

Изменено пользователем Dubov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделайте в /sys/devices/platform/atmel_spi.1/spi1.0 "cat modalias"

сделал...

да! Получил AD7606-8

значит ли это что драйвер установился нормально?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По крайней мере probe отработал и вернул 0. Но все может сломаться в процессе работы. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По крайней мере probe отработал и вернул 0. Но все может сломаться в процессе работы. :)

спасибо за советы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...