ARM: i.MX6: cm-fx6: add initial support

Add initial support for Compulab cm-fx6 module.
The initial support is based on the BSP for MX6Q_ARM2 board.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: add LED support

Add support for the green LED (heart beat).

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: fix SST SPI flash support

cm-fx6 uses SST SPI flash on bus 1 and chip select 0.
Adjust the board data so the flash is detected and used appropriately.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: remove nand __init annotations

Platform data and a like should not be marked as __init, so the drivers
can be compiled as modules and not crash on load.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: remove csi related board code

Remove both, camera and tvin code.
The CSI code currently is not used on cm-fx6.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: add I2C EEPROM

cm-fx6 features an EEPROM chip on I2C bus 3.
Add support for the EEPROM chip.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: remove MIPI DSI board glue

Remove MX6_ARM2 specific MIPI DSI board glue.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: several cosmetic changes

Make several cosmetic changes, so the board code will look more like the
cm-fx6 board code:
1) add author and copyright
2) rename multiple functions and structures to cm_fx6_*()
3) multiple white space changes (fix ups)
4) remove __init* annotation from platform_data structures
5) remove unused includes, comments, definitions and declarations

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: refactor I2C3 pins handling

I2C3 pins on cm-fx6 are not designed to be changed in run time and are
always belong to the I2C3 bus.
Refactor the I2C3 pins to simplify the code.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: multiple renamings

Rename multiple mx6<q|dl>[_arm2] names into cm_fx6_<q|dl>.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: add ads7846 touchscreen

cm-fx6 has an on-board resistive touchscreen controller.
Add support fo that controller.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: several minor adjustments

1) remove wrong SD3 pin muxes
2) remove some comment and white space
3) reorder GPIO definitions to be in increasing order

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: rename the USB init function

Use cm-fx6 specific USB initialization function.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: reset the on-board USB hub

cm-fx6 features an on-board USB hub.
Reset the hub as a part of boot process.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: fix the SD3 CD and WP

sb-fx6 has its card detect pin on GPIO7_1 and write protect on GPIO7_0.
Adjust the pin mux and platform data to fix the SD3 CD and WP
functionality.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: make more code board specific

Rename multiple functions and structures to be cm-fx6 specific.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: add proper NAND flash support

cm-fx6 features an on-board NAND flash. Add proper suport for it.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: refactor SPI bus 0 handling

Prepare for another SPI bus and its devices registration, by
refactoring the board specific SPI code in a flexible way to handle
multiple SPI busses and devices.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: add support for SPI bus 1

Add support for SPI bus 1 and peripheral DataImage SCF0403 LCD
connected to the bus.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
ARM: i.MX6: cm-fx6: refactor I2C buses handling

Refactor the I2C bus and board info handling, so all the information
will be in the same place. This allows convinient viewing/adding/etc. of
the I2C devices on different boards (e.g. modules, base boards,
touchscreens).

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>