Bluewater Systems Linux
Introduction
Bluewater Systems provide are heavily modified version of the 2.6.20 Linux kernel. A number of additional features and drivers have been added to support the Snapper modules. Most of this addtional code has been developed internally by Bluewaters Systems, however some features and drivers have been patched in from non-mainline code. Some of this code has been added to the mainline in more recent kernels.
Snapper Module Support
The Linux kernel provided by Bluewater Systems has a number of defconfigs for building kernels for Snapper modules. Supported modules are: Snapper 255, Snapper CL15, and Snapper 270. Kernels can be built for generic baseboard support (for a single module), or for a specific baseboard and module setup.
Device Drivers
The following device drivers have been added to Bluewater Systems version of the 2.6.20 Linux kernel.
I2C Controllers
Name | Description | Files | Supported Modules |
---|---|---|---|
EP93XX I2C | Support for bit-bashed I2C on the EP93XX series. | drivers/i2c/busses/i2c-ep93xx.c | Snapper CL15 |
FPGA I2C | Support for bit-bashed I2C via FPGA GPIOs | drivers/i2c/busses/i2c-fpga-gpio.c | Snapper 255 |
PXA I2C | Support for I2C on PXA2XX series. | drivers/i2c/busses/i2c-pxa.c | Snapper 255, Snapper 270 |
I2C Devices
Name | Description | Files | Supported Modules |
---|---|---|---|
MAX7311 | Mutli-purpose IO expander. The Snapper power domains use MAX7311 IO expanders | drivers/i2c/chips/max7311.c | All modules |
AD7414 | Temperature sensor | drivers/hwmon/ad7414.c | All modules |
LIS3LV02DQ | Inertial sensor | drivers/hwmon/lis3lv02dq.c | All modules |
MSM82C54 | Frequency counter. Supports 3 interrupt driven frequency counters per chip | drivers/hwmon/msm82c54.c | All modules |
DS4520 | Multi-purpose IO expander | drivers/hwmon/ds4520.c | All modules |
DS1339 | External realtime clock. Features include battery backup or super capacitor charging and wake up alarm. | drivers/i2c/chips/ds1339.c | All modules |
DS2782 | Fuel gauge. Monitors the charge of an external battery. Interfaces directly with the standard Linux APM tools. Bluewater Systems also provide a user space tool for configuring the fuel gauge | drivers/i2c/chips/ds2782.c | All modules |
Snapper power domains | Support for power domain controllers on Snapper modules and baseboards. The power domains are exposed to user space via procfs. | drivers/i2c/chips/snapper_power_domains.c include/asm-arm/hardware/snapper_power_domains.h |
All modules |
Dallas 1-Wire
Name | Description | Files | Supported Modules |
---|---|---|---|
PXA W1 | Support for GPIO based 1-wire on the PXA2XX series | drivers/w1/masters/pxa_gpio_w1.c drivers/w1/masters/snapper_gpio_w1.c |
Snapper 255, Snapper 270 |
DS2404 | 1-wire realtime clock | drivers/w1/slaves/w1_ds2404.c | All modules |
DS2415 | 1-wire realtime clock | drivers/w1/slaves/w1_ds2415.c | All modules |
SPI
Name | Description | Files | Supported Modules |
---|---|---|---|
EP93XX SPI | SPI bus for the EP93XX series. Can be configured for either bit-bashed, or interrupt driven modes. | drivers/spi/spi_ep93xx.c | Snapper CL15 |
IDE
Name | Description | Files | Supported Modules |
---|---|---|---|
EP93XX IDE | Support for IDE hard drives on the EP93XX series. | drivers/ide/arm/ide_arm.c drivers/ide/arm/ide-ep93xx.c include/asm-arm/arch-ep93xx/ide.h |
Snapper CL15 |
Input
Name | Description | Files | Supported Modules |
---|---|---|---|
Synaptics MEP | Support for input devices, such as keyboard and touchring, which use the Synaptics MEP protocol | drivers/input/keyboard/mep_config.h drivers/input/keyboard/mep_hosthw.c drivers/input/keyboard/mep_kbd.c drivers/input/keyboard/meplib.c drivers/input/keyboard/meplib.h |
All modules |
Snapper 255 Keyboard | Keyboard support for Snapper 255 using FPGA GPIOs | drivers/input/keyboard/snapper_kbd.c | Snapper 255 |
EP93XX Touchscreen | Touchscreen support for the EP93XX series. | drivers/input/touchscreen/ep93xx_ts.c | Snapper CL15 |
Snapper 255 Touchscreen | Touchscreen support using the FPGA on Snapper 255 | drivers/input/touchscreen/snapper_ts.c | Snapper 255 |
AC97 UCB1400 | Replacement for mcp-core which allows the UCB1400 touchscreen driver to be connected via the AC97 interface | drivers/mfd/mcp-ac97.c drivers/mfd/snapper-adc.c |
All modules |
Mudshark Keyboard | Driver for the keyboard used on Bluewater Systems Mudshark baseboard | drivers/input/keyboard/mudkbd.c | Snapper 255 |
Sneetch Keyboard | Driver for the keyboard used on Bluewater Systems Sneetch baseboard. | drivers/input/keyboard/sneetchkbd.c | Internal support |
Dory Bluetooth Keyboard | Driver for the Bluetooth pairing keyboard used on Bluewater Systems Dory TMU baseboard. | drivers/input/keyboard/tmu_bt_kbd.c | Snapper CL15 |
GPIOs
Name | Description | Files | Supported Modules |
---|---|---|---|
Proc GPIO | Support for user space access to GPIOs via procfs. | drivers/gpio/proc_gpio.c | All modules |
Snapper 255 GPIO | Support for GPIOs on Snapper 255 | drivers/gpio/snapper-gpio.c, drivers/gpio/snapper-gpio.h | Snapper 255 |
Snapper CL15 GPIO | Support for GPIOs on Snapper CL15 | drivers/gpio/ep93xx_gpio.c | Snapper CL15 |
IO
Name | Description | Files | Supported Modules |
---|---|---|---|
PXA LEDs | Support for GPIO driven LEDs on the PXA2XX series | drivers/leds/leds-pxa.c | Snapper 255, Snapper 270 |
PCMCIA and Compact Flash
Name | Description | Files | Supported Modules |
---|---|---|---|
EP93XX PCMCIA | Support for PCMCIA and Compact Flash on the EP93XX series. On supported baseboards a sysfs file can be used to toggle which of two slots is currently active | drivers/pcmcia/ep93xx_base.c drivers/pcmcia/ep93xx_snapper_cl15.c |
Snapper CL15 |
PXA2XX PCMCIA | Support for PCMCIA on the Snapper 2XX modules. | drivers/pcmcia/pxa2xx_snapper.c drivers/pcmcia/pxa2xx_snapper270.c drivers/pcmcia/pxa2xx_snapper272.c |
Snapper 255, Snapper 270 |
MIC2564A | Support for the Micrel PCMCIA power chip | drivers/pcmcia/micrel_power.c drivers/pcmcia/micrel_power.h |
All modules |
USB
Name | Description | Files | Supported Modules |
---|---|---|---|
ISP1362 | Support for the ISP1362 USB host controller | drivers/usb/host/isp1362-hcd.c drivers/usb/host/isp1362.h |
All modules |
NET2272 | Support for the NET2272 USB gadget driver | drivers/usb/gadget/net2272.c drivers/usb/gadget/net2272.h |
All modules |
PXA27X UDC | Support for the USB gadget on the PXA27X series | drivers/usb/gadget/pxa27x_udc.c drivers/usb/gadget/pxa27x_udc.h |
Snapper 270 |
Filesystems
Name | Description | Files | Supported Modules |
---|---|---|---|
YAFFS2 | The YAFFS2 Flash filesystem | fs/yaffs2 | All modules |
Memory
Name | Description | Files | Supported Modules |
---|---|---|---|
Atmel SPI Flash | Support for Atmel SPI based Flash | drivers/mtd/devices/spi_flash.c | All modules |
Mod 272 Flash | Support for flash memory on Mod 272 | drivers/mtd/maps/mod272-flash.c | Internal support |
PXA Flash | Support for flash memory on PXA2XX based Snapper modules | drivers/mtd/maps/snapper255-flash.c drivers/mtd/maps/snapper270-flash.c drivers/mtd/maps/snapper272-flash.c |
Snapper 255, Snapper 270 |
xD Cards | Support for xD cards on Snapper modules | drivers/mtd/nand/generic_xd.c drivers/mtd/nand/generic_xd.h drivers/mtd/nand/snapper270_xd.c drivers/mtd/nand/snappercl15_xd.c drivers/mtd/nand/snapper_xd.c |
All modules |
Scallop RAID | Support for RAID flash memory on Bluewater Systems Scallop baseboard | drivers/mtd/nand/scallop_raid.c | Snapper 255 |
Snapper RAID | Support for RAID flash on Snapper based boards | drivers/mtd/nand/snapper_raid.c | Snapper 255 |
Networking
Name | Description | Files | Supported Modules |
---|---|---|---|
CF8385 | Libertas 802.11g Wifi driver using the compact flash interface. | driver/net/wireless/libertas | All modules |
Snapper Mailbox | FPGA mailbox driver | drivers/net/snap_fpga_mb.c | Internal support |
Serial
Name | Description | Files | Supported Modules |
---|---|---|---|
FPGA Serial | Support for FPGA based serial ports | drivers/serial/snapper-serial.c | Snapper 255 |
Video
Name | Description | Files | Supported Modules |
---|---|---|---|
Snapper backlight | LCD backlight controller | drivers/video/backlight/snapper_bl.c | All modules |
EP93XX FB | Support for frame buffer video driver at up to 1024x768-16 on the EP93XX series. | drivers/video/ep93xxfb.c drivers/video/ep93xxfb.h drivers/video/lcd_modedb.c include/linux/lcd_ctrl.h |
Snapper CL15 |
Sound
Name | Description | Files | Supported Modules |
---|---|---|---|
EP93XX I2S | I2S sound support for the EP93XX series. Supports both audio in and audio out | sound/arm/ep93xx-i2s.c | Snapper CL15 |
EP93XX PCM | PCM sound support for the EP93XX series. | sound/arm/ep93xx-pcm.c sound/arm/ep93xx-pcm.h |
Snapper CL15 |
TLV320AIC23B | Driver for sound codec used on the Snapper CL15. Supports Audio out, amplified headphone out, line in and microphone in | sound/i2c/tlv320aic23b.c | Snapper CL15 |
Miscellaneous
Name | Description | Files | Supported Modules |
---|---|---|---|
MSL | Support for the Multiple Scalable Link (MSL) bus on the PXA 27x series. Uses DMA support for fast transactions. Uses the Netlink interface to user space | drivers/misc/msl-nl.c drivers/misc/msl.h include/asm-arm/arch-pxa/msl.h |
Internal support |
MPC180 | Cryptographic security accelerator | drivers/char/mpc180_md5.c | Internal support |
SJA1000 | Support for the SJA1000 CAN bus controller. A framework has been added for adding other CAN bus drivers | drivers/can | All modules |
Snapper 255 Battery | Support for batteries on Snapper 255 | drivers/mfd/snapper-battery.c | Snapper 255 |
AD78888 | 12-bit ADC converter | drivers/misc/ad7888.c | All modules |
Power switch | Driver which polls a switch (via a callback) and powers the system down if the switch is held for three seconds | drivers/misc/power_switch.c | All modules |
Snapper PWM | Support for using the FPGA to control PWMs | drivers/misc/snapper-pwm.c | Snapper 255 |
Snapper Timer | Support for FPGA based timer | drivers/misc/snapper-timer.c | Snapper 255 |
Sneetch Power | Power control for Bluewater System Sneetch baseboard | drivers/misc/sneetch_power.c | Internal support |
SPI test | Simple driver for testing the SPI bus | drivers/misc/spi_test.c | All modules |
FPGA RTC | FPGA based realtime clock | drivers/rtc/rtc-snapper-fpga.c | Snapper 255 |