Не могу добится появления устройства в системе, как тут:
root:/> cd /sys/bus/iio/devices/
root:/sys/bus/iio/devices> ls
device0 device0:buffer0:access0 trigger0
device0:buffer0 device0:buffer0:event0
и тут:
root:/sys/devices/platform/ad7606-8.0/device0>
Хотя добавил устройства в makeconfig, добавил инициализацию АЦП, в массив ek_spi_devices[]:
CODE
static struct spi_board_info board_spi_board_info[] __initdata = {
#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 = 0, /* Framework bus number */
.chip_select = 3, /* Framework chip select */
.platform_data = &ad7606_pdata,
.irq = gpio_to_irq(AT91_PIN_PA22),
.mode = SPI_MODE_3,
},
#endif
};
сама структура АЦП тоже описана в файле борды
CODE
static struct ad7606_platform_data ad7606_pdata = {
.default_os = 0,
.default_range = 10000,
.gpio_convst = AT91_PIN_PA27,
.gpio_reset = AT91_PIN_PA28,
.gpio_range = AT91_PIN_PA29,
.gpio_frstdata = -1,
.gpio_stby = -1,
};
В качестве тактового генератора используется hrtimer. В файле борды есть :
CODE
static const char *hrtimer_trigger_pdata[] = {
"0", /* 0 is the name of the trigger */
NULL,
};
static struct platform_device hrtimer_trigger = {
.name = "iio_hrtimer_trigger",
.device = {
.platform_data = &hrtimer_trigger_pdata,
},
};
вот так выглядит функция инициализации перифирии:
CODE
static void __init ek_board_init(void)
{
/* Serial */
at91_add_device_serial();
/* USB Host */
at91_add_device_usbh(&ek_usbh_data);
/* USB Device */
at91_add_device_udc(&ek_udc_data);
/* SPI */
at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices)); //в том числе и AD7606
/* NAND */
ek_add_device_nand();
/* Ethernet */
at91_add_device_eth(&ek_macb_data);
/* MMC */
at91_add_device_mmc(0, &ek_mmc_data);
/* I2C */
at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
/* LEDs */
at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
/* Push Buttons */
ek_add_device_buttons();
}
Но в файловой системе всё равно ничего нового не появляется.
Что я делаю не так?
Как обычно добавляются драйверы в платформу?
Сообщение отредактировал TigerSHARC - May 22 2012, 18:23