если у вас выход шины i2c сделан согласно даташиту, то ничего в указанном файле трогать не надо, необходимо проверить правильность пинов..
достаточно в файле борды прописать необходимые структуры для шины и устройства(часов) на ней и сделать вызов из файла инита борды.. все тривиально и можно подглядеть в соседних файлах..
и не забыть в ядре включить опции - поддержки шины и часов..
как прописать устройство для i2c тут писалось неоднократно..
Спасибо за помощь, всё работает. Подключал часы DS32B35, использовал драйвер DS3232. Единственно напрягает то, что без опции I2C_GPIO не работает, то есть сейчас используется программная эмуляция I2C вместо того, чтобы задействовать имеющееся железо в AT91SAM9G.
Насколько я понял, эта проблема тянется с 9260, странно, что Atmel её не пофиксил... В еррате на AT91SAM9G45 о проблеме с i2c/twi, кстати, ни слова... Получается, не "проще не использовать", а это железо вообще не работает с I2C_GPIO = no.
то есть на AT91SAM9G45 всё должно быть ок :). Кроме того, у народа проблемы с конкретными чипами - SAA7113 и AD9887.
Попробую достучаться до RTC с использованием TWI железа - программная эмуляция такой медленной шины, как i2c, съест достаточно много временных ресурсов, а в данной разработке мне важно время реакции системы на внешние прерывания.
все зависит от того, кто будет заниматься этим прерыванием..
если драйвер часов, то надо оформить в теле драйвера необходимые подпрограммы инита и обработчика прерывания. номер пина можно передавать через структуру часов в файле борды - поищите в соседних файлах, уверен, что уже кто-то эту задачу решал и решил (не обязательно для ваших rtc)
вариант попроще - проводок от часов завести на любой пин АРМа и описать подключение, например, как кнопку в классе event.. ну и дальше навешивать демона на обработку события..