1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (c) 2010 Texas Instruments, Inc. 4 * Jason Kridner <jkridner@beagleboard.org> 5 */ 6#include <common.h> 7#include <status_led.h> 8#include <asm/arch/cpu.h> 9#include <asm/io.h> 10#include <asm/arch/sys_proto.h> 11#include <asm/gpio.h> 12 13/* GPIO pins for the LEDs */ 14#define BEAGLE_LED_USR0 150 15#define BEAGLE_LED_USR1 149 16 17#ifdef CONFIG_LED_STATUS_GREEN 18void green_led_off(void) 19{ 20 __led_set(CONFIG_LED_STATUS_GREEN, 0); 21} 22 23void green_led_on(void) 24{ 25 __led_set(CONFIG_LED_STATUS_GREEN, 1); 26} 27#endif 28 29static int get_led_gpio(led_id_t mask) 30{ 31#ifdef CONFIG_LED_STATUS0 32 if (CONFIG_LED_STATUS_BIT & mask) 33 return BEAGLE_LED_USR0; 34#endif 35#ifdef CONFIG_LED_STATUS1 36 if (CONFIG_LED_STATUS_BIT1 & mask) 37 return BEAGLE_LED_USR1; 38#endif 39 40 return 0; 41} 42 43void __led_init (led_id_t mask, int state) 44{ 45 int toggle_gpio; 46 47 toggle_gpio = get_led_gpio(mask); 48 49 if (toggle_gpio && !gpio_request(toggle_gpio, "led")) 50 __led_set(mask, state); 51} 52 53void __led_toggle (led_id_t mask) 54{ 55 int state, toggle_gpio; 56 57 toggle_gpio = get_led_gpio(mask); 58 if (toggle_gpio) { 59 state = gpio_get_value(toggle_gpio); 60 gpio_direction_output(toggle_gpio, !state); 61 } 62} 63 64void __led_set (led_id_t mask, int state) 65{ 66 int toggle_gpio; 67 68 toggle_gpio = get_led_gpio(mask); 69 if (toggle_gpio) 70 gpio_direction_output(toggle_gpio, state); 71} 72