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
 

rs1

rs_2

rs_3

rs_4