[examples-v2 commit] example-v2 patch for RPi B+ (led)
Joel Sherrill
joel at rtems.org
Fri Aug 29 18:24:58 UTC 2014
Module: examples-v2
Branch: master
Commit: 944b4f1f73e8f173fd9c3efaaf79a4b542375106
Changeset: http://git.rtems.org/examples-v2/commit/?id=944b4f1f73e8f173fd9c3efaaf79a4b542375106
Author: Pierre Ficheux <pierre.ficheux at openwide.fr>
Date: Fri Aug 29 08:16:23 2014 -0500
example-v2 patch for RPi B+ (led)
Hi,
Here is the patch for "example-v2" project to support Raspberry Pi B+ as led number is now 47 instead of 16 on RPi B.
regards
--
Pierre FICHEUX -/- CTO OW/OWI, France -\- pierre.ficheux at openwide.fr
http://ingenierie.openwide.fr
http://www.linuxembedded.fr
I would love to change the world, but they won't give me the source code
>From e4d8edfb8650207641bc8e2716cf15ce958ede0f Mon Sep 17 00:00:00 2001
From: Pierre FICHEUX <pierre.ficheux at openwide.fr>
Date: Fri, 29 Aug 2014 15:11:41 +0200
Subject: [PATCH] Added led blink support for RPi B+
---
led/led.h | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/led/led.h b/led/led.h
index 152b76a..3fee684 100644
--- a/led/led.h
+++ b/led/led.h
@@ -67,10 +67,18 @@ uint8_t MPC8313_LED_Count;
#define OUT_GPIO(g) *(gpio+((g)/10)) |= (1<<(((g)%10)*3))
#define GPIO_SET *(gpio+7) // sets bits which are 1 ignores bits which are 0
#define GPIO_CLR *(gpio+10) // clears bits which are 1 ignores bits which are 0
-
-#define LED_INIT() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; OUT_GPIO(16);} while(0)
-#define LED_ON() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_CLR = 1 << 16;} while(0)
-#define LED_OFF() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_SET = 1 << 16;} while(0)
+// For GPIO# >= 32 (RPi B+)
+#define GPIO_SET_EXT *(gpio+8) // sets bits which are 1 ignores bits which are 0
+#define GPIO_CLR_EXT *(gpio+11) // clears bits which are 1 ignores bits which are 0
+
+// RPi B
+//#define LED_INIT() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; OUT_GPIO(16);} while(0)
+//#define LED_ON() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_CLR = 1 << 16;} while(0)
+//#define LED_OFF() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_SET = 1 << 16;} while(0)
+// RPi B+ => led 47
+#define LED_INIT() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; OUT_GPIO(47);} while(0)
+#define LED_ON() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_CLR_EXT = 1 << (47 % 32);} while(0)
+#define LED_OFF() do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_SET_EXT = 1 << (47 % 32);} while(0)
#else
/* default case is to print */
More information about the vc
mailing list