Цитата(_chaos_ @ Sep 16 2008, 14:24)

День добрый!
Встала задача написать "драйвер" который будет показывать состояния портов ввода вывода + менять.
под портами ввода вывода понимается.....эм сам не знаю как объяснить

вообщем имеется на плате 8 клемников в каждом по 2 дырки.
4 из них подписаны как DIN1-DIN4 - это дискретные входы
2 DOUT1-DOUT2 это дискретные выходы и 2 AIN1-AIN2 - это аналоговые входы.
Есть "разводка"(не знаю правельно ли обозвал

)
DIN1 - подключен к PB0
DIN2 - подключен к PB1
DIN3 - подключен к PB2
DIN4 - подключен к PB3
DOUT1 - подключен к PB30
DOUT2 - подключен к PB31
AIN1 - подключен к PC0
AIN2 - подключен к PC1
Вот вроде и все из теории.
У меня возникли следующие проблемы: с чего начать не знаю

тк ковырянием в ядре Linux начал относительно недавно.
То что я нарыл: судя по всему мне надо использовать: AT91_PIN_PB0, AT91_PIN_PB1, ....
нашел в файле gpio.h набор функций
at91_gpio_init
at91_set_B_periph
at91_set_A_periph
.....
назначение данных функций мне не понятно-документации по ним не нашел

Хотелось бы что кто-нибудь помог разобраться со всем этим
Заранее благодарен!
ЗЫ я не схемотехник, а программист
arch/arm/at91sam9260.c
arch/arm/at91sam9260_devices.c
arch/arm/gpio.c
arch/arm/leds.c
Здесь можно посмотреть как и какие пины настраиваются "на уровне платы". Это не руководство к действию, но низкоуровневый пример использования.
Собственно названные Вами функции должны экспортироватся в драйвер GPIO верхнего уровня.
К сожалению, по GPIO больше ничем не могу помочь.
Посмотрите также драйверы
drivers/gpio/*
drivers/leds/*
Специфику для своей платы все равно придется писать.
Можно через "Generic GPIO API" или через "Platform Device".
Собственно я не вижу криминала в том, чтобы использовать функции at91_*. Просто такая реализация будет "не кросс-платформенной".
А документация в основном находится в *.c файлах в виде коментариев плюс
Documentation/gpio.txt
Documentation/leds-class.txt
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.