uboot/include/status_led.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * (C) Copyright 2000-2004
   4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   5 */
   6
   7/*
   8 * The purpose of this code is to signal the operational status of a
   9 * target which usually boots over the network; while running in
  10 * PCBoot, a status LED is blinking. As soon as a valid BOOTP reply
  11 * message has been received, the LED is turned off. The Linux
  12 * kernel, once it is running, will start blinking the LED again,
  13 * with another frequency.
  14 */
  15
  16#ifndef _STATUS_LED_H_
  17#define _STATUS_LED_H_
  18
  19#ifdef CONFIG_LED_STATUS
  20
  21#define LED_STATUS_PERIOD       (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ)
  22#ifdef CONFIG_LED_STATUS1
  23#define LED_STATUS_PERIOD1      (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ1)
  24#endif /* CONFIG_LED_STATUS1 */
  25#ifdef CONFIG_LED_STATUS2
  26#define LED_STATUS_PERIOD2      (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ2)
  27#endif /* CONFIG_LED_STATUS2 */
  28#ifdef CONFIG_LED_STATUS3
  29#define LED_STATUS_PERIOD3      (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ3)
  30#endif /* CONFIG_LED_STATUS3 */
  31#ifdef CONFIG_LED_STATUS4
  32#define LED_STATUS_PERIOD4      (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ4)
  33#endif /* CONFIG_LED_STATUS4 */
  34#ifdef CONFIG_LED_STATUS5
  35#define LED_STATUS_PERIOD5      (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ5)
  36#endif /* CONFIG_LED_STATUS5 */
  37
  38void status_led_init(void);
  39void status_led_tick(unsigned long timestamp);
  40void status_led_set(int led, int state);
  41
  42/*****  MVS v1  **********************************************************/
  43#if (defined(CONFIG_MVS) && CONFIG_MVS < 2)
  44# define STATUS_LED_PAR         im_ioport.iop_pdpar
  45# define STATUS_LED_DIR         im_ioport.iop_pddir
  46# undef  STATUS_LED_ODR
  47# define STATUS_LED_DAT         im_ioport.iop_pddat
  48
  49# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
  50
  51/*****  Someone else defines these  *************************************/
  52#elif defined(STATUS_LED_PAR)
  53  /*
  54   * ADVICE: Define in your board configuration file rather than
  55   * filling this file up with lots of custom board stuff.
  56   */
  57
  58#elif defined(CONFIG_LED_STATUS_BOARD_SPECIFIC)
  59/* led_id_t is unsigned long mask */
  60typedef unsigned long led_id_t;
  61
  62extern void __led_toggle (led_id_t mask);
  63extern void __led_init (led_id_t mask, int state);
  64extern void __led_set (led_id_t mask, int state);
  65void __led_blink(led_id_t mask, int freq);
  66#else
  67# error Status LED configuration missing
  68#endif
  69/************************************************************************/
  70
  71#ifndef CONFIG_LED_STATUS_BOARD_SPECIFIC
  72# include <asm/status_led.h>
  73#endif
  74
  75#endif  /* CONFIG_LED_STATUS    */
  76
  77/*
  78 * Coloured LEDs API
  79 */
  80#ifndef __ASSEMBLY__
  81void coloured_LED_init(void);
  82void red_led_on(void);
  83void red_led_off(void);
  84void green_led_on(void);
  85void green_led_off(void);
  86void yellow_led_on(void);
  87void yellow_led_off(void);
  88void blue_led_on(void);
  89void blue_led_off(void);
  90#else
  91        .extern LED_init
  92        .extern red_led_on
  93        .extern red_led_off
  94        .extern yellow_led_on
  95        .extern yellow_led_off
  96        .extern green_led_on
  97        .extern green_led_off
  98        .extern blue_led_on
  99        .extern blue_led_off
 100#endif
 101
 102#endif  /* _STATUS_LED_H_       */
 103