This project started with me wanting to create a SBC running Linux without touching BGA packages. After trips to the helpful EEVblog forums folks pointed me to the Allwinner V3s chip. Hmm an eLQFP128 chip with a single-core Cortex-A7, 64MB of built-in RAM, parallel RGB LCD output and MIPI CSI camera interface? Well it is a bit tight on resources, yet it still would make an cool point and shoot camera.
I have a few older ARM dev boards laying around. Their Samsung ARM926EJ-S and ARM1176JZF-S based processors never saw mainline kernel and U-Boot support anyway. I might as well cannibalize the 4.3in resistive touch screens that came with them. Luckily the original manufacturer of the boards still sells the screens as a standalone module and have opened up its documentation. This gives me the display and human interface.
The V3s comes with an LRADC with interrupt intended for buttons. There goes my two-step shutter button. The camera module itself is also a quick decision: I am reusing the Raspberry Pi camera module, at least for now.
As of the remaining I/O pins, they are going away fast: USART2 and SD1 interfaces goes to the Wi-Fi and Bluetooth combo. The lone SPI bus is taken by a 16MB SPI Flash as it hosts the firmware (although V3s is capable of booting off SD cards, I want normal SD cards being able to be used by the camera, without having to be loaded with a Linux root filesystem) and this plugs the SD2 interface too. There is the debug UART0 (plugging I2C1) and the lone remaining I2C0 bus, shared by the PMIC, touchscreen (having to stand behind an I2C to SPI bridge for the sake of the boot ROM) and system configuration EEPROM