uboot/board/ti/beagle/led.c
<<
>>
Prefs
   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