diff options
author | Pierre Ficheux <pierre.ficheux@openwide.fr> | 2013-10-24 18:26:24 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2013-10-24 18:26:24 -0500 |
commit | 2df97c42db875513cc4bec8d4132281e9aa34b59 (patch) | |
tree | 18063ecbe571d54a3cac437a083bf993ae0947af /led | |
parent | 5805cb6b1192c37c80d5c93b0d49ba88e0cd3e60 (diff) |
led.h: Add support for Raspberry Pi and BSPs using same SoC
Diffstat (limited to 'led')
-rw-r--r-- | led/led.h | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -61,13 +61,23 @@ uint8_t MPC8313_LED_Count; #define LED_ON() LED_ROTATE() #define LED_OFF() LED_ROTATE() +#elif defined(BCM2835_GPIO_REGS_BASE) +// Raspberry Pi +#define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3)) +#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) + #else /* default case is to print */ #define __LED_PRINTING 1 #define LED_ON() fputs( "LED ON\n", stderr ) #define LED_OFF() fputs( "LED OFF\n", stderr ) - #endif #ifndef LED_INIT |