Difference between revisions of "PandaBoard Button"
(Created page with "== UserSpace Access == the carrier board push button can be accessed via the sysfs interface as well as a shell script functionality. the sysfs entry for the push button can be ...") |
(→PushButton Hardware) |
||
Line 57: | Line 57: | ||
== PushButton Hardware == | == PushButton Hardware == | ||
− | [[Image:pb-example.jpg]] | + | [[Image:pb-example-1v8.jpg]] |
[[Category:PandaBoard]] | [[Category:PandaBoard]] |
Revision as of 11:25, 9 April 2012
UserSpace Access
the carrier board push button can be accessed via the sysfs interface as well as a shell script functionality. the sysfs entry for the push button can be found in the directory mark /sys/devices/platform/gpio-keys.0 . the driver also looks for a shell script in /sbin called pb0.sh. this shell script can be used to start user land applications. here is the provided example shell script:
#!/bin/sh if [ $1 = "down" ] ; then if [ -x /mnt/flash/scripts/pb0.down ] ; then /mnt/flash/scripts/pb0.down else current=`cat /sys/class/leds/led1/brightness` if [ "${current}" = 0 ] ; then echo 1 > /sys/class/leds/led1/brightness else echo 0 > /sys/class/leds/led1/brightness fi fi else if [ -x /mnt/flash/scripts/pb0.up ] ; then /mnt/flash/scripts/pb0.up fi fi#
Adding New PushButtons
the gpio buttons are defined in the linux-2.6.xx/arch/arm/mach-s3c2410/mach-tct_hammer.c file. each button requires that the gpio be defined, a name, and key scan code associated with it. in addition standard platform data and platform device have to be defined.
static struct gpio_keys_button gpio_keys_buttons[] = { [0] = { .code = 0x26, .gpio = S3C2410_GPG3, .active_low = 0, .desc = "PB0", }, }; static struct gpio_keys_platform_data gpio_keys_data = { .buttons = gpio_keys_buttons, .nbuttons = ARRAY_SIZE(gpio_keys_buttons), }; static struct platform_device tct_hammer_buttons = { .name = "gpio-keys", .id = 0, .dev = { .platform_data = &gpio_keys_data, }, };