Hi Jorge,
I know the answers to a couple of your questions, but not all of them. I'm working on a 9G20 board; the 9G20 is pin-compatible with the 9260 and uses most of the same libraries from Atmel.
Regarding GPIO, it is extremely likely that the GPIO driver in the Linux kernel will allow you to control the pins from userspace via sysfs. For example, here's a script I use to initialize pins to work as digital outputs on my board:
for pin in 64 65 66 67 68 69 70 71 72 73 96 97 98 99 100 101
do
echo $pin > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio$pin/direction
done
The gpio.txt file you mentioned has more details.
(Just for reference:
http://www.mjmwired.net/kernel/Documentation/gpio.txt)
About the ADC, I'm pretty sure that there is no driver in the kernel yet. The header file is there (I suspect that Atmel just put all the register definitions in the datasheet in headers), but no driver that I'm aware of.
However, there is hope. In 2007, a fellow by the name of Paul Kavan wrote a driver that he posted on this forum (at91.com). It was later picked up by Claudio Mignanti and some other folks, who added some more features and added it into the OpenWRT project a few weeks ago. That code is here:
https://dev.openwrt.org/changeset/24814 I just brought that into my kernel yesterday, and at least the sysfs interface seems to work fine. For example:
[root@rascal:/sys/devices/platform/at91_adc]: cat chan0
514
About booting from NAND flash: it can be done. Making it work is straightforward, but making it reliable is tricky. The issue is that NAND flash tends to get a few corrupt bits. This can be corrected by ECC in software, but only if you can load that software. If your bootloader gets corrupted before you can load the ECC code, you're hosed. To combat this, some NAND chips have a section of memory that is guaranteed to be reliable. However, it varies from manufacturer to manufacturer, which makes things complicated.
If it's useful, I've posted my kernel, bootloader, and filesystem on Github:
https://github.com/rascalmicro/ and some additional documentation here:
http://rascalmicro.com/docs/Reminder: this is all for the 9G20 chip-- very similar, but not identical.
Good luck,
Brandon