<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GaelJ</id>
	<title>ArmadeusWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GaelJ"/>
	<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Special:Contributions/GaelJ"/>
	<updated>2026-04-28T03:26:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Functionalities&amp;diff=10879</id>
		<title>Functionalities</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Functionalities&amp;diff=10879"/>
		<updated>2012-05-02T18:14:51Z</updated>

		<summary type="html">&lt;p&gt;GaelJ: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Functionalities=&lt;br /&gt;
This page lists all the hardware/software functionnalities available on the boards. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
==Audio==&lt;br /&gt;
===Audio Out===&lt;br /&gt;
*[[TSC2102_Linux_driver | Audio codec]]: TSC2102/TSC2101 audio codec &lt;br /&gt;
*[[Audio_with_PWM|PWM]]: sound generation using a PWM&lt;br /&gt;
*[[MAX9768| Amplifier]]: MAX9768 10W mono class D audio amplifier&lt;br /&gt;
&lt;br /&gt;
===Audio In===&lt;br /&gt;
*[[TSC2102_Linux_driver|Audio codec]]: TSC2101 audio codec&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[[ALSA]]: Advanced Linux Sound Architecture&lt;br /&gt;
*[[Madplay]]: Audio player for Unixes&lt;br /&gt;
*[[SDL]]: cross-platform multimedia library&lt;br /&gt;
*[[Gstreamer]]&lt;br /&gt;
*[[Flite]]: fast run-time voice synthesis engine&lt;br /&gt;
*[[Speex]]: speech codec&lt;br /&gt;
*[[Imxssi]]: simple low level I2S development/debug tool&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
===Video Out===&lt;br /&gt;
*[[LCD]]&lt;br /&gt;
*[[BackLight]]&lt;br /&gt;
*[[DVI_/_HDMI]]&lt;br /&gt;
*[[TV_Output]]&lt;br /&gt;
*[[FrameBuffer]]&lt;br /&gt;
&lt;br /&gt;
===Video In===&lt;br /&gt;
*[[Camera_interface]]:&lt;br /&gt;
*[[C38A]]: CMOS sensor module (OV7620)&lt;br /&gt;
*[[GscpaWebcam]]: GSPCA compatible USB webcams&lt;br /&gt;
*[[PWC_Webcams]]&lt;br /&gt;
*[[USB_Webcams]]&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
*[[Video_for_Linux]]: Video 4 Linux&lt;br /&gt;
*[[Qt/Embedded]]: cross-platform general purpose API&lt;br /&gt;
*[[SDL]]: cross-platform multimedia library&lt;br /&gt;
*[[Gstreamer]]&lt;br /&gt;
*[[OpenCV]]&lt;br /&gt;
*[[FBGrab]]: Frame Buffer Grabber&lt;br /&gt;
*[[Mesa]]: Mesa 3D Graphics library&lt;br /&gt;
*[[Using_the_i.MX27_video_codec]]&lt;br /&gt;
*[[LCD4linux]]: driving low cost text and graphical LCD displays&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
==Wired Communication==&lt;br /&gt;
===UART/RS232===&lt;br /&gt;
*[[RS-232]]: global description&lt;br /&gt;
*[[Activate_i.MX_internal_UARTs]]&lt;br /&gt;
*[[Serial_ports_usage_on_Linux]]&lt;br /&gt;
*[[Serial_port_selection_generalities]]: to be merged with previous entry. text ok ??, copied in usb serial&lt;br /&gt;
*[[OpenCore_16550_IP_Linux_driver|Linux driver for the 16C550 FPGA IP (from OpenCore)]]&lt;br /&gt;
*[[USB_to_serial_adapter]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_a_serial_link| USB gadget serial emulation]]&lt;br /&gt;
*[[Cu/uucp]]  To Be Completed&lt;br /&gt;
*[[RS232_Terminal_configuration]]: host applications to take control of your RS232 link&lt;br /&gt;
*[[Serial_Transfer|Serial transfers from Linux]]&lt;br /&gt;
&lt;br /&gt;
===I2C===&lt;br /&gt;
*[[I2C]]&lt;br /&gt;
*[[I2cread.c]]&lt;br /&gt;
*[[I2cwrite.c]]&lt;br /&gt;
&lt;br /&gt;
===SPI===&lt;br /&gt;
*[[SPI]]: To be completed (spi_dev modif in platform)&lt;br /&gt;
&lt;br /&gt;
===Ethernet / Network===&lt;br /&gt;
* manque une page pour décrire l&#039;interface ethernet + commandes de bases sous linux/uboot&lt;br /&gt;
*[[Ethernet_MAC_address]]&lt;br /&gt;
*[[USB_to_Ethernet_adapter]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_an_Ethernet_link|USB gadget ethernet emulation]]&lt;br /&gt;
*[[FTP]], [[NFS]], [[SSH]], [[Telnet]], [[Tftpboot]]&lt;br /&gt;
*[[Boa]]: BOA web server&lt;br /&gt;
*[[Ethernet console]] (in U-Boot)&lt;br /&gt;
*[[Network interface bandwidth measurement]]&lt;br /&gt;
&lt;br /&gt;
===USB===&lt;br /&gt;
*[[USB]]: create USB_OTG entry and delete this one&lt;br /&gt;
*[[USB_Host]]&lt;br /&gt;
*[[USB_Gadget]]&lt;br /&gt;
*[[USB_to_Ethernet_adapter]]&lt;br /&gt;
*[[USB_to_WiFi_adapter]]&lt;br /&gt;
*[[USB_to_serial_adapter]]: still under construction ?&lt;br /&gt;
*[[USB Boot]] (Linux)&lt;br /&gt;
*[[USB Webcams]]&lt;br /&gt;
*[[USB to Playstation joypad adapter]]&lt;br /&gt;
&lt;br /&gt;
===CAN Bus===&lt;br /&gt;
*[[CAN_bus_Linux_driver|MCP251X CAN bus controller]]&lt;br /&gt;
*[[CAN_bus_demo_MCP25020|Communication with a Microchip MCP25020 CAN I/O Expander]]&lt;br /&gt;
*[[CAN_bus_Linux_sja1000|SJA1000 CAN Bus controller]]&lt;br /&gt;
&lt;br /&gt;
===HMS Modules===&lt;br /&gt;
*[[HMS_anybus_Linux|HMS Anybus]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Wireless==&lt;br /&gt;
===Wifi===&lt;br /&gt;
*[[WiFi|WiFi general usage (from Linux)]]&lt;br /&gt;
*[[USB_to_WiFi_adapter|How to use USB to WiFi adapters on your boards]]&lt;br /&gt;
*[[Libertas_driver]]: Marvell Technology Group&#039;s Libertas chipset drivers&lt;br /&gt;
*[[WPA supplicant]]&lt;br /&gt;
&lt;br /&gt;
===GSM/GPRS===&lt;br /&gt;
*[[GSM/GPRS]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
*[[Bluetooth]]&lt;br /&gt;
*[[OBEX]]&lt;br /&gt;
*[[TCP/IP_with_Bluetooth]]&lt;br /&gt;
*[[Wiimote]]&lt;br /&gt;
&lt;br /&gt;
===GPS===&lt;br /&gt;
*[[GPS]]&lt;br /&gt;
*[[GPS_daemon]]: service daemon monitoring one or more GPSes or AIS receivers&lt;br /&gt;
&lt;br /&gt;
===IR===&lt;br /&gt;
*[[IR_HID_USB_Remote|Infrared USB HID remote ]]&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
==Storage / File System==&lt;br /&gt;
*[[MultiMediaCard]]&lt;br /&gt;
*[[USB_Host#USB_Flash_memory_.2F_USB_key_.2F_USB_card_reader_.2F_USB_Hard_Drive|USB drive/dongle usage]]&lt;br /&gt;
*[[USB_Gadget#To_emulate_a_mass_storage_device:|USB gadget mass storage emulation]]&lt;br /&gt;
*[[Create_a_FLASH_partition_to_store_user&#039;s_HOME]]&lt;br /&gt;
*[[UBIFS]]&lt;br /&gt;
*[[Using_Initial_RAM_disk]]: still nder construction ?&lt;br /&gt;
*[[Samba]]: access Windows remote partitions&lt;br /&gt;
*[[Network_File_System_configuration|Network File System (NFS)]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Realtime==&lt;br /&gt;
===Xenomai===&lt;br /&gt;
*[[Xenomai]]: real time co-kernel which cooperate with Linux via Adeos&lt;br /&gt;
*[[Xenomai:Blinking_LEDs]]: Xenomai:examples_usage&lt;br /&gt;
*[[Xenomai_manual_installation]]&lt;br /&gt;
*[[Adeos]]&lt;br /&gt;
&lt;br /&gt;
===RTC===&lt;br /&gt;
*[[RTC]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
==User Input==&lt;br /&gt;
*[[USB_Host#USB_keyboard.2Fmouse_.28HID:_Human_Interface_Device.29| USB input device]]&lt;br /&gt;
*[[Keypad]]: keypad based on GPIO matrix&lt;br /&gt;
*[[GPIO keys]]: User button connected to a GPIO&lt;br /&gt;
*[[Joystick]]: still under construction ?&lt;br /&gt;
*[[PS/2]]: APF9328 only&lt;br /&gt;
*[[TSC2102_Linux_driver| Touchscreen]]: TSC210x 4 wires resistive touch controler&lt;br /&gt;
*[[APF51_PMIC|touchscreen]]: APF51 PMIC 4/5 wires resistive touch controler&lt;br /&gt;
*[[APF28_PMIC|touchscreen]]: APF28 PMIC 4/5 wires resistive touch controler&lt;br /&gt;
*[[GPM]]: mouse support for Linux on the console&lt;br /&gt;
*[[Wiimote]]&lt;br /&gt;
*[[Tslib]]: Linux touchscreen interface&lt;br /&gt;
*[[USB to Playstation joypad adapter]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
*[[AS1531|AS1531]]: 8 channels 12bits ADC (SPI)&lt;br /&gt;
* [[MCP4912|MCP4912]]: 2 channels 10bits DAC (SPI)&lt;br /&gt;
*[[ADC_max1027|MAX1027]]: 8 channels 10bits ADC (SPI)&lt;br /&gt;
*[[Max5821|MAX5821]]: 2 channels 10bits DAC (I2C)&lt;br /&gt;
*[[BQ27x00]]: series of battery gas gauge&lt;br /&gt;
*[[GPIO Driver]]&lt;br /&gt;
*[[GPIO LEDS]]&lt;br /&gt;
*[[JTAG]]&lt;br /&gt;
*[[Led_sensor|Using a LED as a light sensor]]&lt;br /&gt;
*[[URG_laser]]&lt;br /&gt;
*[[PWM]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
==Bootloader==&lt;br /&gt;
*[[BootLoader | U-Boot useful tips]]&lt;br /&gt;
* [[USB_Boot|Boot linux from a USB key]]&lt;br /&gt;
* [[Connection_with_U-Boot_under_Windows|Connection with U-Boot under Windows]]&lt;br /&gt;
* [[U-Boot_communication_quick_check|U-Boot communication quick check]]&lt;br /&gt;
* [[Uboot_FPGA_firmware_update_from_Linux|Uboot FPGA firmware update from Linux]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
==Bootstrap==&lt;br /&gt;
* [[BootStrap | Install U-Boot from scratch or recover your U-Boot if it was corrupted]]&lt;/div&gt;</summary>
		<author><name>GaelJ</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=GPIO_LEDS&amp;diff=10878</id>
		<title>GPIO LEDS</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=GPIO_LEDS&amp;diff=10878"/>
		<updated>2012-05-02T18:13:48Z</updated>

		<summary type="html">&lt;p&gt;GaelJ: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to use leds-gpio driver to manage states of connected leds of your Armadeus board.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
You can manage a led connected to a GPIO pin. The managing is similar with the standard GPIO sysfs driver, but you have some new features like triggers (e.g. LED blinks based on disk access) .&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
First, you need to enable the leds-gpio driver in your kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
     --- LED support&lt;br /&gt;
         [*] LED Class Support&lt;br /&gt;
         &amp;lt;*&amp;gt; LED Support for GPIO connected LEDs&lt;br /&gt;
              [*] Platform device bindings for GPIO LEDs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, in your &#039;&#039;apf27-dev.c&#039;&#039;, you need to define your LED &amp;lt;b&amp;gt;before&amp;lt;/b&amp;gt; the variable &#039;&#039;platform_devices[]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/* GPIO LED */&lt;br /&gt;
#if 1&lt;br /&gt;
 &lt;br /&gt;
/* PORTF_14 used as leds-gpio (GPIO used as LED) */&lt;br /&gt;
static struct gpio_led apf27_gpio_leds[] = {&lt;br /&gt;
	{&lt;br /&gt;
		.name = &amp;quot;portf14&amp;quot;,&lt;br /&gt;
		.default_trigger = &amp;quot;none&amp;quot;,&lt;br /&gt;
		.gpio = (GPIO_PORTF | 14),&lt;br /&gt;
		//.active_low = 1,&lt;br /&gt;
		//.retain_state_suspended = 1,&lt;br /&gt;
		//.default_state = LEDS_GPIO_DEFSTATE_ON,&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static struct gpio_led_platform_data apf27_gpio_leds_platform_data = {&lt;br /&gt;
	.leds = apf27_gpio_leds,&lt;br /&gt;
	.num_leds = ARRAY_SIZE(apf27_gpio_leds),&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static struct platform_device apf27_gpio_leds_device = {&lt;br /&gt;
	.name = &amp;quot;leds-gpio&amp;quot;,&lt;br /&gt;
	.id = 0,&lt;br /&gt;
	.dev = {&lt;br /&gt;
		.platform_data = &amp;amp;apf27_gpio_leds_platform_data,&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
# define LEDS_GPIO &amp;amp;apf27_gpio_leds_device,&lt;br /&gt;
#else&lt;br /&gt;
# define LEDS_GPIO&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the button to get it recognized by the card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
static struct platform_device *platform_devices[] __initdata = {&lt;br /&gt;
	ALSA_SOUND&lt;br /&gt;
	LEDS_GPIO&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/leds/portf14/&lt;br /&gt;
brightness      max_brightness  subsystem       uevent&lt;br /&gt;
device          power           trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>GaelJ</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=GPIO_LEDS&amp;diff=10877</id>
		<title>GPIO LEDS</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=GPIO_LEDS&amp;diff=10877"/>
		<updated>2012-05-02T18:12:12Z</updated>

		<summary type="html">&lt;p&gt;GaelJ: New page: How to use leds-gpio driver to manage states of connected leds of your Armadeus board.  ==Introduction==  You can manage a led connected to a GPIO pin. The managing is similar with the sta...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to use leds-gpio driver to manage states of connected leds of your Armadeus board.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
You can manage a led connected to a GPIO pin. The managing is similar with the standard GPIO sysfs driver, but you have some new features like triggers.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
First, you need to enable the leds-gpio driver in your kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
     --- LED support&lt;br /&gt;
         [*] LED Class Support&lt;br /&gt;
         &amp;lt;*&amp;gt; LED Support for GPIO connected LEDs&lt;br /&gt;
              [*] Platform device bindings for GPIO LEDs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, in your &#039;&#039;apf27-dev.c&#039;&#039;, you need to define your LED &amp;lt;b&amp;gt;before&amp;lt;/b&amp;gt; the variable &#039;&#039;platform_devices[]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/* GPIO LED */&lt;br /&gt;
#if 1&lt;br /&gt;
 &lt;br /&gt;
/* PORTF_14 used as leds-gpio (GPIO used as LED) */&lt;br /&gt;
static struct gpio_led apf27_gpio_leds[] = {&lt;br /&gt;
	{&lt;br /&gt;
		.name = &amp;quot;portf14&amp;quot;,&lt;br /&gt;
		.default_trigger = &amp;quot;none&amp;quot;,&lt;br /&gt;
		.gpio = (GPIO_PORTF | 14),&lt;br /&gt;
		//.active_low = 1,&lt;br /&gt;
		//.retain_state_suspended = 1,&lt;br /&gt;
		//.default_state = LEDS_GPIO_DEFSTATE_ON,&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static struct gpio_led_platform_data apf27_gpio_leds_platform_data = {&lt;br /&gt;
	.leds = apf27_gpio_leds,&lt;br /&gt;
	.num_leds = ARRAY_SIZE(apf27_gpio_leds),&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static struct platform_device apf27_gpio_leds_device = {&lt;br /&gt;
	.name = &amp;quot;leds-gpio&amp;quot;,&lt;br /&gt;
	.id = 0,&lt;br /&gt;
	.dev = {&lt;br /&gt;
		.platform_data = &amp;amp;apf27_gpio_leds_platform_data,&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
# define LEDS_GPIO &amp;amp;apf27_gpio_leds_device,&lt;br /&gt;
#else&lt;br /&gt;
# define LEDS_GPIO&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the button to get it recognized by the card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
static struct platform_device *platform_devices[] __initdata = {&lt;br /&gt;
	ALSA_SOUND&lt;br /&gt;
	LEDS_GPIO&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/leds/portf14/&lt;br /&gt;
brightness      max_brightness  subsystem       uevent&lt;br /&gt;
device          power           trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>GaelJ</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=GPIO_keys&amp;diff=10876</id>
		<title>GPIO keys</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=GPIO_keys&amp;diff=10876"/>
		<updated>2012-05-02T18:02:16Z</updated>

		<summary type="html">&lt;p&gt;GaelJ: /* Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to use gpio-keys driver to read states of the user switch of your Armadeus board (APF51)&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Your APF51 board features a user switch connected to a GPIO pin (GPIO1_3). The driver gpio-keys translates GPIO events in key/button events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /dev/input/event0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you should see weirds characters &#039;&#039;&#039;when pressing&#039;&#039;&#039; the user button of the apf51_dev board:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 T&lt;br /&gt;
 ����T&lt;br /&gt;
      �T&lt;br /&gt;
        �&lt;br /&gt;
         ��T&lt;br /&gt;
            %�&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* if the test wiped out your console, you can get it back with:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also can use the tool &#039;&#039;evtest&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Hardware handling  ---&amp;gt;&lt;br /&gt;
     [*] input-tools&lt;br /&gt;
          [*]   evtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # evtest /dev/input/event0&lt;br /&gt;
...&lt;br /&gt;
Event: time 1335981358.550329, type 22 (EV_PWR), code 0 (), value 1&lt;br /&gt;
Event: time 1335981358.550330, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1335981358.550329, type 22 (EV_PWR), code 0 (), value 0&lt;br /&gt;
Event: time 1335981358.550330, -------------- SYN_REPORT ------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==For APF27==&lt;br /&gt;
&lt;br /&gt;
First, you need to enable the gpio_keys in your kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
     Input device support  ---&amp;gt;&lt;br /&gt;
           &amp;lt;*&amp;gt;   Event interface&lt;br /&gt;
           [*]   Keyboards  ---&amp;gt;&lt;br /&gt;
               &amp;lt;*&amp;gt;   GPIO Buttons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, in your &#039;&#039;apf27-dev.c&#039;&#039;, you need to define your GPIO button &amp;lt;b&amp;gt;before&amp;lt;/b&amp;gt; the variable &#039;&#039;platform_devices[]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/* GPIO KEYS */&lt;br /&gt;
#if 1&lt;br /&gt;
&lt;br /&gt;
/* PORTA_6 used as gpio_keys (GPIO used as input event) */&lt;br /&gt;
static struct gpio_keys_button apf27_gpio_keys[] = {&lt;br /&gt;
	{&lt;br /&gt;
		.code = EV_PWR, /* See include/linux/input.h for more event code */&lt;br /&gt;
		.gpio = (GPIO_PORTA | 6), /* GPIO number */&lt;br /&gt;
		.active_low = 0,&lt;br /&gt;
		.desc = &amp;quot;Notification when the AC is deconnected&amp;quot;, /* Button description*/&lt;br /&gt;
		.type = 0, /* See include/linux/input.h for more type code */&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static struct gpio_keys_platform_data apf27_gpio_keys_data = {&lt;br /&gt;
	.buttons = apf27_gpio_keys,&lt;br /&gt;
	.nbuttons = ARRAY_SIZE(apf27_gpio_keys),&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static struct platform_device apf27_gpio_keys_device = {&lt;br /&gt;
	.name = &amp;quot;gpio-keys&amp;quot;,&lt;br /&gt;
	.id = 0,&lt;br /&gt;
	.dev = {&lt;br /&gt;
		.platform_data = &amp;amp;apf27_gpio_keys_data,&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
# define GPIO_KEYS &amp;amp;apf27_gpio_keys_device,&lt;br /&gt;
#else&lt;br /&gt;
# define GPIO_KEYS&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the button to get it recognized by the card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
static struct platform_device *platform_devices[] __initdata = {&lt;br /&gt;
	ALSA_SOUND&lt;br /&gt;
	GPIO_KEYS&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:UserInput]]&lt;/div&gt;</summary>
		<author><name>GaelJ</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=GPIO_keys&amp;diff=10875</id>
		<title>GPIO keys</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=GPIO_keys&amp;diff=10875"/>
		<updated>2012-05-02T17:45:49Z</updated>

		<summary type="html">&lt;p&gt;GaelJ: /* Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to use gpio-keys driver to read states of the user switch of your Armadeus board (APF51)&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Your APF51 board features a user switch connected to a GPIO pin (GPIO1_3). The driver gpio-keys translates GPIO events in key/button events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Test==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /dev/input/event0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you should see weirds characters &#039;&#039;&#039;when pressing&#039;&#039;&#039; the user button of the apf51_dev board:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 T&lt;br /&gt;
 ����T&lt;br /&gt;
      �T&lt;br /&gt;
        �&lt;br /&gt;
         ��T&lt;br /&gt;
            %�&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* if the test wiped out your console, you can get it back with:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==For APF27==&lt;br /&gt;
&lt;br /&gt;
First, you need to enable the gpio_keys in your kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
     Input device support  ---&amp;gt;&lt;br /&gt;
           &amp;lt;*&amp;gt;   Event interface&lt;br /&gt;
           [*]   Keyboards  ---&amp;gt;&lt;br /&gt;
               &amp;lt;*&amp;gt;   GPIO Buttons&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, in your &#039;&#039;apf27-dev.c&#039;&#039;, you need to define your GPIO button &amp;lt;b&amp;gt;before&amp;lt;/b&amp;gt; the variable &#039;&#039;platform_devices[]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/* GPIO KEYS */&lt;br /&gt;
#if 1&lt;br /&gt;
&lt;br /&gt;
/* PORTA_6 used as gpio_keys (GPIO used as input event) */&lt;br /&gt;
static struct gpio_keys_button apf27_gpio_keys[] = {&lt;br /&gt;
	{&lt;br /&gt;
		.code = EV_PWR, /* See include/linux/input.h for more event code */&lt;br /&gt;
		.gpio = (GPIO_PORTA | 6), /* GPIO number */&lt;br /&gt;
		.active_low = 0,&lt;br /&gt;
		.desc = &amp;quot;Notification when the AC is deconnected&amp;quot;, /* Button description*/&lt;br /&gt;
		.type = 0, /* See include/linux/input.h for more type code */&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static struct gpio_keys_platform_data apf27_gpio_keys_data = {&lt;br /&gt;
	.buttons = apf27_gpio_keys,&lt;br /&gt;
	.nbuttons = ARRAY_SIZE(apf27_gpio_keys),&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
static struct platform_device apf27_gpio_keys_device = {&lt;br /&gt;
	.name = &amp;quot;gpio-keys&amp;quot;,&lt;br /&gt;
	.id = 0,&lt;br /&gt;
	.dev = {&lt;br /&gt;
		.platform_data = &amp;amp;apf27_gpio_keys_data,&lt;br /&gt;
	},&lt;br /&gt;
};&lt;br /&gt;
# define GPIO_KEYS &amp;amp;apf27_gpio_keys_device,&lt;br /&gt;
#else&lt;br /&gt;
# define GPIO_KEYS&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the button to get it recognized by the card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
static struct platform_device *platform_devices[] __initdata = {&lt;br /&gt;
	ALSA_SOUND&lt;br /&gt;
	GPIO_KEYS&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:UserInput]]&lt;/div&gt;</summary>
		<author><name>GaelJ</name></author>
	</entry>
</feed>