Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bradfa/1950437 to your computer and use it in GitHub Desktop.
Save bradfa/1950437 to your computer and use it in GitHub Desktop.
0001-board-am335xevm.c-Add-BeagleBone-LED-configuration.patch
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