uboot/include/status_led.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2000-2004
   3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   4 *
   5 * SPDX-License-Identifier:     GPL-2.0+
   6 */
   7
   8/*
   9 * The purpose of this code is to signal the operational status of a
  10 * target which usually boots over the network; while running in
  11 * PCBoot, a status LED is blinking. As soon as a valid BOOTP reply
  12 * message has been received, the LED is turned off. The Linux
  13 * kernel, once it is running, will start blinking the LED again,
  14 * with another frequency.
  15 */
  16
  17#ifndef _STATUS_LED_H_
  18#define _STATUS_LED_H_
  19
  20#ifdef CONFIG_STATUS_LED
  21
  22#define STATUS_LED_OFF          0
  23#define STATUS_LED_BLINKING     1
  24#define STATUS_LED_ON           2
  25
  26void status_led_tick (unsigned long timestamp);
  27void status_led_set  (int led, int state);
  28
  29/*****  TQM8xxL  ********************************************************/
  30#if defined(CONFIG_TQM8xxL)
  31# define STATUS_LED_PAR         im_cpm.cp_pbpar
  32# define STATUS_LED_DIR         im_cpm.cp_pbdir
  33# define STATUS_LED_ODR         im_cpm.cp_pbodr
  34# define STATUS_LED_DAT         im_cpm.cp_pbdat
  35
  36# define STATUS_LED_BIT         0x00000001
  37# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)
  38# define STATUS_LED_STATE       STATUS_LED_BLINKING
  39
  40# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
  41
  42# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
  43
  44/*****  MVS v1  **********************************************************/
  45#elif (defined(CONFIG_MVS) && CONFIG_MVS < 2)
  46# define STATUS_LED_PAR         im_ioport.iop_pdpar
  47# define STATUS_LED_DIR         im_ioport.iop_pddir
  48# undef  STATUS_LED_ODR
  49# define STATUS_LED_DAT         im_ioport.iop_pddat
  50
  51# define STATUS_LED_BIT         0x00000001
  52# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)
  53# define STATUS_LED_STATE       STATUS_LED_BLINKING
  54
  55# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
  56
  57# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
  58
  59/*****  GEN860T  *********************************************************/
  60#elif defined(CONFIG_GEN860T)
  61
  62# define STATUS_LED_PAR                 im_ioport.iop_papar
  63# define STATUS_LED_DIR                 im_ioport.iop_padir
  64# define STATUS_LED_ODR                 im_ioport.iop_paodr
  65# define STATUS_LED_DAT                 im_ioport.iop_padat
  66
  67# define STATUS_LED_BIT                 0x0800  /* Red LED 0 is on PA.4 */
  68# define STATUS_LED_PERIOD              (CONFIG_SYS_HZ / 4)
  69# define STATUS_LED_STATE               STATUS_LED_OFF
  70# define STATUS_LED_BIT1                0x0400  /* Grn LED 1 is on PA.5 */
  71# define STATUS_LED_PERIOD1             (CONFIG_SYS_HZ / 8)
  72# define STATUS_LED_STATE1              STATUS_LED_BLINKING
  73# define STATUS_LED_BIT2                0x0080  /* Red LED 2 is on PA.8 */
  74# define STATUS_LED_PERIOD2             (CONFIG_SYS_HZ / 4)
  75# define STATUS_LED_STATE2              STATUS_LED_OFF
  76# define STATUS_LED_BIT3                0x0040  /* Grn LED 3 is on PA.9 */
  77# define STATUS_LED_PERIOD3             (CONFIG_SYS_HZ / 4)
  78# define STATUS_LED_STATE3              STATUS_LED_OFF
  79
  80# define STATUS_LED_ACTIVE              1       /* LED on for bit == 1  */
  81# define STATUS_LED_BOOT                1       /* Boot status on LED 1 */
  82
  83/*****  IVMS8  **********************************************************/
  84#elif defined(CONFIG_IVMS8)
  85
  86# define STATUS_LED_PAR         im_cpm.cp_pbpar
  87# define STATUS_LED_DIR         im_cpm.cp_pbdir
  88# define STATUS_LED_ODR         im_cpm.cp_pbodr
  89# define STATUS_LED_DAT         im_cpm.cp_pbdat
  90
  91# define STATUS_LED_BIT         0x00000010      /* LED 0 is on PB.27    */
  92# define STATUS_LED_PERIOD      (1 * CONFIG_SYS_HZ)
  93# define STATUS_LED_STATE       STATUS_LED_OFF
  94# define STATUS_LED_BIT1        0x00000020      /* LED 1 is on PB.26    */
  95# define STATUS_LED_PERIOD1     (1 * CONFIG_SYS_HZ)
  96# define STATUS_LED_STATE1      STATUS_LED_OFF
  97/* IDE LED usable for other purposes, too */
  98# define STATUS_LED_BIT2        0x00000008      /* LED 2 is on PB.28    */
  99# define STATUS_LED_PERIOD2     (1 * CONFIG_SYS_HZ)
 100# define STATUS_LED_STATE2      STATUS_LED_OFF
 101
 102# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
 103
 104# define STATUS_ILOCK_SWITCH    0x00800000      /* ILOCK switch in IRQ4 */
 105
 106# define STATUS_ILOCK_PERIOD    (CONFIG_SYS_HZ / 10)    /* about every 100 ms   */
 107
 108# define STATUS_LED_YELLOW      0
 109# define STATUS_LED_GREEN       1
 110# define STATUS_LED_BOOT        2               /* IDE LED used for boot status */
 111
 112/*****  IVML24  *********************************************************/
 113#elif defined(CONFIG_IVML24)
 114
 115# define STATUS_LED_PAR         im_cpm.cp_pbpar
 116# define STATUS_LED_DIR         im_cpm.cp_pbdir
 117# define STATUS_LED_ODR         im_cpm.cp_pbodr
 118# define STATUS_LED_DAT         im_cpm.cp_pbdat
 119
 120# define STATUS_LED_BIT         0x00000010      /* LED 0 is on PB.27    */
 121# define STATUS_LED_PERIOD      (1 * CONFIG_SYS_HZ)
 122# define STATUS_LED_STATE       STATUS_LED_OFF
 123# define STATUS_LED_BIT1        0x00000020      /* LED 1 is on PB.26    */
 124# define STATUS_LED_PERIOD1     (1 * CONFIG_SYS_HZ)
 125# define STATUS_LED_STATE1      STATUS_LED_OFF
 126/* IDE LED usable for other purposes, too */
 127# define STATUS_LED_BIT2        0x00000008      /* LED 2 is on PB.28    */
 128# define STATUS_LED_PERIOD2     (1 * CONFIG_SYS_HZ)
 129# define STATUS_LED_STATE2      STATUS_LED_OFF
 130
 131# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
 132
 133# define STATUS_ILOCK_SWITCH    0x00004000      /* ILOCK is on PB.17    */
 134
 135# define STATUS_ILOCK_PERIOD    (CONFIG_SYS_HZ / 10)    /* about every 100 ms   */
 136
 137# define STATUS_LED_YELLOW      0
 138# define STATUS_LED_GREEN       1
 139# define STATUS_LED_BOOT        2               /* IDE LED used for boot status */
 140
 141/*****  ICU862   ********************************************************/
 142#elif defined(CONFIG_ICU862)
 143
 144# define STATUS_LED_PAR         im_ioport.iop_papar
 145# define STATUS_LED_DIR         im_ioport.iop_padir
 146# define STATUS_LED_ODR         im_ioport.iop_paodr
 147# define STATUS_LED_DAT         im_ioport.iop_padat
 148
 149# define STATUS_LED_BIT         0x4000          /* LED 0 is on PA.1 */
 150# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)
 151# define STATUS_LED_STATE       STATUS_LED_BLINKING
 152# define STATUS_LED_BIT1        0x1000          /* LED 1 is on PA.3 */
 153# define STATUS_LED_PERIOD1     (CONFIG_SYS_HZ)
 154# define STATUS_LED_STATE1      STATUS_LED_OFF
 155
 156# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
 157
 158# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
 159
 160/*****  Someone else defines these  *************************************/
 161#elif defined(STATUS_LED_PAR)
 162
 163  /*
 164   * ADVICE: Define in your board configuration file rather than
 165   * filling this file up with lots of custom board stuff.
 166   */
 167
 168/*****  NetVia   ********************************************************/
 169#elif defined(CONFIG_NETVIA)
 170
 171#if !defined(CONFIG_NETVIA_VERSION) || CONFIG_NETVIA_VERSION == 1
 172
 173#define STATUS_LED_PAR          im_ioport.iop_pdpar
 174#define STATUS_LED_DIR          im_ioport.iop_pddir
 175#undef  STATUS_LED_ODR
 176#define STATUS_LED_DAT          im_ioport.iop_pddat
 177
 178# define STATUS_LED_BIT         0x0080                  /* PD.8 */
 179# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)
 180# define STATUS_LED_STATE       STATUS_LED_BLINKING
 181
 182# define STATUS_LED_BIT1        0x0040                  /* PD.9 */
 183# define STATUS_LED_PERIOD1     (CONFIG_SYS_HZ / 2)
 184# define STATUS_LED_STATE1      STATUS_LED_OFF
 185
 186# define STATUS_LED_ACTIVE      0               /* LED on for bit == 0  */
 187# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
 188
 189#endif
 190
 191/*****  CMI   ********************************************************/
 192#elif defined(CONFIG_CMI)
 193# define STATUS_LED_DIR         im_mios.mios_mpiosm32ddr
 194# define STATUS_LED_DAT         im_mios.mios_mpiosm32dr
 195
 196# define STATUS_LED_BIT         0x2000          /* Select one of the 16 possible*/
 197                                                /* MIOS outputs */
 198# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)     /* Blinking periode is 500 ms */
 199# define STATUS_LED_STATE       STATUS_LED_BLINKING
 200
 201# define STATUS_LED_ACTIVE      1               /* LED on for bit == 0  */
 202# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
 203
 204/*****  KUP4K, KUP4X  ****************************************************/
 205#elif defined(CONFIG_KUP4K) || defined(CONFIG_KUP4X)
 206
 207# define STATUS_LED_PAR         im_ioport.iop_papar
 208# define STATUS_LED_DIR         im_ioport.iop_padir
 209# define STATUS_LED_ODR         im_ioport.iop_paodr
 210# define STATUS_LED_DAT         im_ioport.iop_padat
 211
 212# define STATUS_LED_BIT         0x00000300  /*  green + red    PA[8]=yellow,  PA[7]=red,  PA[6]=green */
 213# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)
 214# define STATUS_LED_STATE       STATUS_LED_BLINKING
 215
 216# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
 217
 218# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
 219
 220#elif defined(CONFIG_SVM_SC8xx)
 221# define STATUS_LED_PAR         im_cpm.cp_pbpar
 222# define STATUS_LED_DIR         im_cpm.cp_pbdir
 223# define STATUS_LED_ODR         im_cpm.cp_pbodr
 224# define STATUS_LED_DAT         im_cpm.cp_pbdat
 225
 226# define STATUS_LED_BIT         0x00000001
 227# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)
 228# define STATUS_LED_STATE       STATUS_LED_BLINKING
 229
 230# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
 231
 232# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
 233
 234/*****  RBC823    ********************************************************/
 235#elif defined(CONFIG_RBC823)
 236
 237# define STATUS_LED_PAR         im_ioport.iop_pcpar
 238# define STATUS_LED_DIR         im_ioport.iop_pcdir
 239#  undef STATUS_LED_ODR
 240# define STATUS_LED_DAT         im_ioport.iop_pcdat
 241
 242# define STATUS_LED_BIT         0x0002          /* LED 0 is on PC.14 */
 243# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)
 244# define STATUS_LED_STATE       STATUS_LED_BLINKING
 245# define STATUS_LED_BIT1        0x0004          /* LED 1 is on PC.13 */
 246# define STATUS_LED_PERIOD1     (CONFIG_SYS_HZ)
 247# define STATUS_LED_STATE1      STATUS_LED_OFF
 248
 249# define STATUS_LED_ACTIVE      1               /* LED on for bit == 1  */
 250
 251# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
 252
 253/*****  NetPhone   ********************************************************/
 254#elif defined(CONFIG_NETPHONE) || defined(CONFIG_NETTA2)
 255/* XXX empty just to avoid the error */
 256/*****  STx XTc    ********************************************************/
 257#elif defined(CONFIG_STXXTC)
 258/* XXX empty just to avoid the error */
 259/************************************************************************/
 260#elif defined(CONFIG_V38B)
 261
 262# define STATUS_LED_BIT         0x0010                  /* Timer7 GPIO */
 263# define STATUS_LED_PERIOD      (CONFIG_SYS_HZ / 2)
 264# define STATUS_LED_STATE       STATUS_LED_BLINKING
 265
 266# define STATUS_LED_ACTIVE      0               /* LED on for bit == 0 */
 267# define STATUS_LED_BOOT        0               /* LED 0 used for boot status */
 268
 269#elif defined(CONFIG_MOTIONPRO)
 270
 271#define STATUS_LED_BIT          ((vu_long *) MPC5XXX_GPT6_ENABLE)
 272#define STATUS_LED_PERIOD       (CONFIG_SYS_HZ / 10)
 273#define STATUS_LED_STATE        STATUS_LED_BLINKING
 274
 275#define STATUS_LED_BIT1         ((vu_long *) MPC5XXX_GPT7_ENABLE)
 276#define STATUS_LED_PERIOD1      (CONFIG_SYS_HZ / 10)
 277#define STATUS_LED_STATE1       STATUS_LED_OFF
 278
 279#define STATUS_LED_BOOT         0       /* LED 0 used for boot status */
 280
 281#elif defined(CONFIG_BOARD_SPECIFIC_LED)
 282/* led_id_t is unsigned long mask */
 283typedef unsigned long led_id_t;
 284
 285extern void __led_toggle (led_id_t mask);
 286extern void __led_init (led_id_t mask, int state);
 287extern void __led_set (led_id_t mask, int state);
 288#else
 289# error Status LED configuration missing
 290#endif
 291/************************************************************************/
 292
 293#ifndef CONFIG_BOARD_SPECIFIC_LED
 294# include <asm/status_led.h>
 295#endif
 296
 297/*
 298 * Coloured LEDs API
 299 */
 300#ifndef __ASSEMBLY__
 301extern void     coloured_LED_init (void);
 302extern void     red_led_on(void);
 303extern void     red_led_off(void);
 304extern void     green_led_on(void);
 305extern void     green_led_off(void);
 306extern void     yellow_led_on(void);
 307extern void     yellow_led_off(void);
 308extern void     blue_led_on(void);
 309extern void     blue_led_off(void);
 310#else
 311        .extern LED_init
 312        .extern red_led_on
 313        .extern red_led_off
 314        .extern yellow_led_on
 315        .extern yellow_led_off
 316        .extern green_led_on
 317        .extern green_led_off
 318        .extern blue_led_on
 319        .extern blue_led_off
 320#endif
 321
 322#endif  /* CONFIG_STATUS_LED    */
 323
 324#endif  /* _STATUS_LED_H_       */
 325