Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!--Wmat (talk)
Please email User:Wmat if you experience any issues with the Request Account form.

PandaBoard Button

Revision as of 18:25, 9 April 2012 by Prpplague (Talk | contribs)

Jump to: navigation, search

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 this shell script can be used to start user land applications. here is the provided example shell script:


if [ $1 = "down" ] ; then
    if [ -x /mnt/flash/scripts/pb0.down ] ; then
        current=`cat /sys/class/leds/led1/brightness`
        if [ "${current}" = 0 ] ; then 
            echo 1 > /sys/class/leds/led1/brightness
            echo 0 > /sys/class/leds/led1/brightness
    if [ -x /mnt/flash/scripts/pb0.up ] ; then

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,

PushButton Hardware