coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
ww_ring_programs.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
/*
4
* This is a driver for the Whirlwind LED ring, which is equipped with two LED
5
* microcontrollers TI LP55231 (http://www.ti.com/product/lp55231), each of
6
* them driving three multicolor LEDs.
7
*
8
* The only connection between the ring and the main board is an i2c bus.
9
*
10
* This driver imitates a depthcharge display device. On initialization the
11
* driver sets up the controllers to prepare them to accept programs to run.
12
*
13
* When a certain vboot state needs to be indicated, the program for that
14
* state is loaded into the controllers, resulting in the state appropriate
15
* LED behavior.
16
*/
17
18
#ifndef __THIRD_PARTY_COREBOOT_SRC_DRIVERS_I2C_WW_RING_WW_RING_PROGRAMS_H__
19
#define __THIRD_PARTY_COREBOOT_SRC_DRIVERS_I2C_WW_RING_WW_RING_PROGRAMS_H__
20
21
#include <
stdint.h
>
22
#include "
drivers/i2c/ww_ring/ww_ring.h
"
23
24
/* There are three independent engines/cores in the controller. */
25
#define LP55231_NUM_OF_ENGINES 3
26
27
/* Number of lp55321 controllers on the ring */
28
#define WW_RING_NUM_LED_CONTROLLERS 1
29
30
/*
31
* Structure to describe an lp55231 program: pointer to the text of the
32
* program, its size and load address (load addr + size should not exceed
33
* LP55231_MAX_PROG_SIZE), and start addresses for all of the three
34
* engines.
35
*/
36
typedef
struct
{
37
const
uint8_t
*
program_text
;
38
uint8_t
program_size
;
39
uint8_t
load_addr
;
40
uint8_t
engine_start_addr[
LP55231_NUM_OF_ENGINES
];
41
}
TiLp55231Program
;
42
43
/* A structure to bind controller programs to a vboot state. */
44
typedef
struct
{
45
enum
display_pattern
led_pattern;
46
const
TiLp55231Program
*programs[
WW_RING_NUM_LED_CONTROLLERS
];
47
}
WwRingStateProg
;
48
49
extern
const
WwRingStateProg
wwr_state_programs
[];
50
51
#endif
stdint.h
uint8_t
unsigned char uint8_t
Definition:
stdint.h:8
TiLp55231Program
Definition:
ww_ring_programs.h:36
TiLp55231Program::load_addr
uint8_t load_addr
Definition:
ww_ring_programs.h:39
TiLp55231Program::program_text
const uint8_t * program_text
Definition:
ww_ring_programs.h:37
TiLp55231Program::program_size
uint8_t program_size
Definition:
ww_ring_programs.h:38
WwRingStateProg
Definition:
ww_ring_programs.h:44
ww_ring.h
display_pattern
display_pattern
Definition:
ww_ring.h:10
LP55231_NUM_OF_ENGINES
#define LP55231_NUM_OF_ENGINES
Definition:
ww_ring_programs.h:25
WW_RING_NUM_LED_CONTROLLERS
#define WW_RING_NUM_LED_CONTROLLERS
Definition:
ww_ring_programs.h:28
wwr_state_programs
const WwRingStateProg wwr_state_programs[]
Definition:
ww_ring_programs.c:215
src
drivers
i2c
ww_ring
ww_ring_programs.h
Generated by
1.9.1