gpio: core: setup of an initial GPIO core.

Setup of an initial core GPIO driver. Added these two data structures:

	* gpio_pin
	* gpio_chip

A gpio_chip is a chip containing atleast 1 gpio_pin, and has the ability
to control its I/O pins.

Implemented these API functions:

extern struct gpio_pin *gpio_chip_to_pin(struct gpio_chip *chip, uint16_t nr);
extern int gpio_pin_request(struct gpio_pin *pin);
extern int gpio_pin_write(struct gpio_pin *pin, int val);
extern int gpio_pin_read(struct gpio_pin *pin);
extern int gpio_direction_input(struct gpio_pin *pin);
extern int gpio_direction_output(struct gpio_pin *pin, int value);
extern int raw_gpio_direction_ouput(struct gpio_pin *pin, int value);
extern int raw_gpio_pin_write(struct gpio_pin *pin, int val);
extern int raw_gpio_read_pin(struct gpio_pin *pin);

Signed-off-by: Michel Megens <dev@michelmegens.net>
Merge branch 'sched'
kbuild: fixed a kbuild error in kernel/kconfig.

There was a dependency error in the Kconfig file of the kernel/
subsystem. Fixed by added a depends on.

Signed-off-by: Michel Megens <dev@michelmegens.net>
ETA/OS 0.2.0-rc2

Signed-off-by: Michel Megens <dev@michelmegens.net>
gpio: added open source/drain enables.

gpio_set_open_drain:
	Configure a pin as open drain.

gpio_set_open_source:
	Configure a pin as open source.

Signed-off-by: Michel Megens <dev@michelmegens.net>
gpio: added gpio_get_direction

Added an API function to get the direction of a GPIO pin. The pin's
configuration is also updated based on the return value of
gpio_chip::get_direction.

Signed-off-by: Michel Megens <dev@michelmegens.net>
gpio: atmega: added the ATmega GPIO source file.

* The ATmega GPIO driver will be implemented in atmega-gpio.c.
* Moved the GPIO core library from gpio.c to gpiolib.c

Signed-off-by: Michel Megens <dev@michelmegens.net>
Merge branch 'gpio'

* GPIO driver
* Core library
ETA/OS 0.2.0-rc3

Signed-off-by: Michel Megens <dev@michelmegens.net>
gpio: atmega: implemented the ATmega GPIO driver

Added an implementation to the ATmega GPIO driver. If the GPIO module is
configured for building, it will be automatically initialised during
boot.

Signed-off-by: Michel Megens <dev@michelmegens.net>
Merge branch 'gpio'

* ATmega GPIO driver
Merge branch 'sched'

* Added IPM (Inter-Process messages) to the scheduling core.

Signed-off-by: Michel Megens <dev@michelmegens.net>

Conflicts:
	usr/tests/schedtest/sched.c
doc: added doc groups for GPIO drivers

Added a documentation module for:

	* GPIO core
	* ATmega GPIO driver

Signed-off-by: Michel Megens <dev@michelmegens.net>
ETA/OS 0.2.0-rc4

Signed-off-by: Michel Megens <dev@michelmegens.net>
gpio: doc: documented all GPIO API functions

Documented these functions:

	* gpio_chip_init
	* gpio_pin_init
	* gpio_chip_to_pin
	* gpio_pin_request
	* gpio_direction_input
	* gpio_direction_output
	* raw_gpio_direction_ouput
	* raw_gpio_pin_write
	* gpio_pin_write
	* gpio_pin_read
	* gpio_get_direction
	* raw_gpio_read_pin

Signed-off-by: Michel Megens <dev@michelmegens.net>
gpio: core: implemented gpio_pin_release.

gpio_pin_release can be used to release a pin using gpio_pin_request.
All pins have to be requested to make sure two threads aren't accessing
them at the same time. Once you are done doing your GPIO, you should
release the pin again using gpio_pin_release.

Signed-off-by: Michel Megens <dev@michelmegens.net>
sched: core: removed the some usages of current.

current(rq) is an internal definition to quickly get the currently
running thread on a run queue in the scheduling core. It was however
being used when there was already a local var initialised to the current
thread. Therefore, the uses of `current' have been removed where using
the reference variable is sufficient.

sched: rr: doc: Fixed a doc error on the sys_sched_class.

The system sched class of the round robin scheduling did also show up in
the generic sched::core documentation.

gpio: doc: added documentation to the gpio header.

Signed-off-by: Michel Megens <dev@michelmegens.net>
doc: splitted the module documentation file

The module documentation file is now modular itself. Each module has its
own file in the Documentation/ directory.

Also, fixed some generic documentation errors across the project.

Signed-off-by: Michel Megens <dev@michelmegens.net>
doxygen: added the module files to the Doxyfile

Added the files describing and documenting each module to the Doxygen
configuration file (Doxyfile).

Signed-off-by: Michel Megens <dev@michelmegens.net>
ETA/OS 0.2.0

Signed-off-by: Michel Megens <dev@michelmegens.net>