Цитата(xor.kruger @ Jan 23 2012, 12:35)

Попытаюсь вкратце ответить на Ваш вопрос.
В меню-конфигураторе (menuconfig) ядра GNU/Linux указывается используемый процессор, поддержка его интерфейсов, периферии и прочего.
К примеру Вы включи в ядре поддержку GPIO и кнопок которые висят на "этом самом" GPIO, только есть не задача, ядро "сходу" не знает на каких конкретно пинах находятся кнопки. Сообщить ему об этом можно в так называемом файле платформ (platform). Файл платформ - это файл, в котором описана периферия которая подключена к Вашему процессору.
Для процессора AT91SAM9260 это файл
Код
arch/arm/mach-at91/board-sam9260ek.c
.
Вот пример как описано подключение в нем кнопок к пинам AT91_PIN_PA30 и AT91_PIN_PA31:
Код
#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
static struct gpio_keys_button ek_buttons[] = {
{
.gpio = AT91_PIN_PA30,
.code = BTN_3,
.desc = "Button 3",
.active_low = 1,
.wakeup = 1,
},
{
.gpio = AT91_PIN_PA31,
.code = BTN_4,
.desc = "Button 4",
.active_low = 1,
.wakeup = 1,
}
};
Опции CONFIG_KEYBOARD_GPIO и CONFIG_KEYBOARD_GPIO_MODULE выставляются в меню конфигураторе.
Реально по умолчанию на один процессор может быть несколько платформов. Конкретный используется в зависимости от выбора отладочной платы (например для файла board-sam9260ek.c нужно выбрать SystemType->AtmelAT91SystemOnChip->AtmelAT91SAM9260-EK).
Точно также, по аналогии с кнопками необходимо поступить и с Вашим АЦП. По приведенной Вами ссылке на сайт аналоговцев уже все описано и Вам остается только скопировать и правильно указать желаемые ножки. Не забудьте, там же, в функции ek_board_init вставить добавление АЦП
Код
platform_add_devices(board_devices, ARRAY_SIZE(board_devices));
Спасибо огромное!
В том то и дело что на сайте аналоговцев показано:
CODE
file: trunk/drivers/staging/iio/adc/ad7606.h
struct ad7606_platform_data {
unsigned default_os;
unsigned default_range;
unsigned gpio_convst;
unsigned gpio_reset;
unsigned gpio_range;
unsigned gpio_os0;
unsigned gpio_os1;
unsigned gpio_os2;
unsigned gpio_frstdata;
unsigned gpio_stby;
};
static struct ad7606_platform_data ad7606_pdata = {
.default_os = 0,
.default_range = 10000,
.gpio_convst = GPIO_PF9,
.gpio_reset = GPIO_PF10,
.gpio_range = GPIO_PH0,
.gpio_os0 = GPIO_PH1,
.gpio_os1 = GPIO_PH2,
.gpio_os2 = GPIO_PH3,
.gpio_frstdata = -1,
.gpio_stby = GPIO_PF12,
};
и можо подумать что пины задаются в ad7606.h
Цитата(xor.kruger @ Jan 23 2012, 12:35)

Попытаюсь вкратце ответить на Ваш вопрос.
В меню-конфигураторе (menuconfig) ядра GNU/Linux указывается используемый процессор, поддержка его интерфейсов, периферии и прочего.
Это простите где?
Я делаю по этой инструкции и ничего такого делать не надо (но предлагается скачать конфигурационный файл)
http://dmilvdv.narod.ru/AT91SAM9260/index.htmlЦитата(xor.kruger @ Jan 23 2012, 12:35)

Реально по умолчанию на один процессор может быть несколько платформов. Конкретный используется в зависимости от выбора отладочной платы (например для файла board-sam9260ek.c нужно выбрать SystemType->AtmelAT91SystemOnChip->AtmelAT91SAM9260-EK).
"SystemType" - это вкладка в menuconfig? нету такой(
Непонятно стало как конфигурирвать вообще (порылся в конфиге в качестве процессора Intel указан, а на ARM нигде даже намёка нет) и вообще судя по:
http://belgorod.lug.ru/wiki/index.php/%D0%...0%BB%D1%8F_ARM9 Надо только частоту кварца руками в исходнике сменить...
Опыта тут нет. Подскажите, возможо где-то расписано как конфиг править ?