0001-board-am335xevm.c-Add-BeagleBone-LED-configuration.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From f53cecf219fee81d349fa5fa562d538cae1abf8b Mon Sep 17 00:00:00 2001 | |
From: Andrew Bradford <andrew.bradford@omni-id.com> | |
Date: Thu, 1 Mar 2012 10:06:05 -0500 | |
Subject: [PATCH] board-am335xevm.c: Add BeagleBone LED configuration | |
Blinks USR0 (D2) as heartbeat. | |
Blinks USR1 (D3) on MMC access. | |
--- | |
arch/arm/mach-omap2/board-am335xevm.c | 60 +++++++++++++++++++++++++++++++++ | |
1 files changed, 60 insertions(+), 0 deletions(-) | |
diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c | |
index 8aa7e10..054ddd0 100644 | |
--- a/arch/arm/mach-omap2/board-am335xevm.c | |
+++ b/arch/arm/mach-omap2/board-am335xevm.c | |
@@ -19,6 +19,7 @@ | |
#include <linux/i2c/at24.h> | |
#include <linux/phy.h> | |
#include <linux/gpio.h> | |
+#include <linux/leds.h> | |
#include <linux/spi/spi.h> | |
#include <linux/spi/flash.h> | |
#include <linux/gpio_keys.h> | |
@@ -823,6 +824,54 @@ static struct pinmux_config profibus_pin_mux[] = { | |
{NULL, 0}, | |
}; | |
+/* BeagleBone USRx LEDS - gpio1_21 -> gpio1_24 */ | |
+#define BEAGLEBONE_USR0_LED GPIO_TO_PIN(1, 21) | |
+#define BEAGLEBONE_USR1_LED GPIO_TO_PIN(1, 22) | |
+#define BEAGLEBONE_USR2_LED GPIO_TO_PIN(1, 23) | |
+#define BEAGLEBONE_USR3_LED GPIO_TO_PIN(1, 24) | |
+ | |
+static struct gpio_led gpio_leds[] = { | |
+ { | |
+ .name = "beaglebone::usr0", | |
+ .default_trigger = "heartbeat", | |
+ .gpio = BEAGLEBONE_USR0_LED, | |
+ }, | |
+ { | |
+ .name = "beaglebone::usr1", | |
+ .default_trigger = "mmc0", | |
+ .gpio = BEAGLEBONE_USR1_LED, | |
+ }, | |
+ { | |
+ .name = "beaglebone::usr2", | |
+ .gpio = BEAGLEBONE_USR2_LED, | |
+ }, | |
+ { | |
+ .name = "beaglebone::usr3", | |
+ .gpio = BEAGLEBONE_USR3_LED, | |
+ }, | |
+}; | |
+ | |
+static struct gpio_led_platform_data gpio_led_info = { | |
+ .leds = gpio_leds, | |
+ .num_leds = ARRAY_SIZE(gpio_leds), | |
+}; | |
+ | |
+static struct platform_device leds_gpio = { | |
+ .name = "leds-gpio", | |
+ .id = -1, | |
+ .dev = { | |
+ .platform_data = &gpio_led_info, | |
+ }, | |
+}; | |
+ | |
+static struct pinmux_config bone_pin_mux[] = { | |
+ /* User LED gpios (gpio1_21 to gpio1_24) */ | |
+ {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, | |
+ {"gpmc_a6.rgmii2_tclk", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, | |
+ {"gpmc_a7.rgmii2_rclk", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, | |
+ {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, | |
+}; | |
+ | |
/* Module pin mux for eCAP0 */ | |
static struct pinmux_config ecap0_pin_mux[] = { | |
{"ecap0_in_pwm0_out.ecap0_in_pwm0_out", | |
@@ -949,6 +998,15 @@ static void tsc_init(int evm_id, int profile) | |
pr_err("failed to register touchscreen device\n"); | |
} | |
+static void boneleds_init(int evm_id, int profile ) | |
+{ | |
+ int err; | |
+ setup_pin_mux(bone_pin_mux); | |
+ err = platform_device_register(&leds_gpio); | |
+ if (err) | |
+ pr_err("failed to register BeagleBone LEDS\n"); | |
+} | |
+ | |
static void rgmii1_init(int evm_id, int profile) | |
{ | |
setup_pin_mux(rgmii1_pin_mux); | |
@@ -1725,6 +1783,7 @@ static struct evm_dev_cfg beaglebone_old_dev_cfg[] = { | |
{usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | |
{mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | |
{i2c2_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | |
+ {boneleds_init, DEV_ON_BASEBOARD, PROFILE_ALL}, | |
{NULL, 0, 0}, | |
}; | |
@@ -1736,6 +1795,7 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = { | |
{usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | |
{mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | |
{i2c2_init, DEV_ON_BASEBOARD, PROFILE_NONE}, | |
+ {boneleds_init, DEV_ON_BASEBOARD, PROFILE_ALL}, | |
{NULL, 0, 0}, | |
}; | |
-- | |
1.7.2.5 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment