154293ec3SDavid Daney /***********************license start***************
254293ec3SDavid Daney  * Author: Cavium Networks
354293ec3SDavid Daney  *
454293ec3SDavid Daney  * Contact: support@caviumnetworks.com
554293ec3SDavid Daney  * This file is part of the OCTEON SDK
654293ec3SDavid Daney  *
7c5aa59e8SDavid Daney  * Copyright (c) 2003-2012 Cavium Networks
854293ec3SDavid Daney  *
954293ec3SDavid Daney  * This file is free software; you can redistribute it and/or modify
1054293ec3SDavid Daney  * it under the terms of the GNU General Public License, Version 2, as
1154293ec3SDavid Daney  * published by the Free Software Foundation.
1254293ec3SDavid Daney  *
1354293ec3SDavid Daney  * This file is distributed in the hope that it will be useful, but
1454293ec3SDavid Daney  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
1554293ec3SDavid Daney  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
1654293ec3SDavid Daney  * NONINFRINGEMENT.  See the GNU General Public License for more
1754293ec3SDavid Daney  * details.
1854293ec3SDavid Daney  *
1954293ec3SDavid Daney  * You should have received a copy of the GNU General Public License
2054293ec3SDavid Daney  * along with this file; if not, write to the Free Software
2154293ec3SDavid Daney  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2254293ec3SDavid Daney  * or visit http://www.gnu.org/licenses/.
2354293ec3SDavid Daney  *
2454293ec3SDavid Daney  * This file may also be available under a different license from Cavium.
2554293ec3SDavid Daney  * Contact Cavium Networks for more information
2654293ec3SDavid Daney  ***********************license end**************************************/
2754293ec3SDavid Daney 
2854293ec3SDavid Daney #ifndef __CVMX_LED_DEFS_H__
2954293ec3SDavid Daney #define __CVMX_LED_DEFS_H__
3054293ec3SDavid Daney 
31aa32a955SDavid Daney #define CVMX_LED_BLINK (CVMX_ADD_IO_SEG(0x0001180000001A48ull))
32aa32a955SDavid Daney #define CVMX_LED_CLK_PHASE (CVMX_ADD_IO_SEG(0x0001180000001A08ull))
33aa32a955SDavid Daney #define CVMX_LED_CYLON (CVMX_ADD_IO_SEG(0x0001180000001AF8ull))
34aa32a955SDavid Daney #define CVMX_LED_DBG (CVMX_ADD_IO_SEG(0x0001180000001A18ull))
35aa32a955SDavid Daney #define CVMX_LED_EN (CVMX_ADD_IO_SEG(0x0001180000001A00ull))
36aa32a955SDavid Daney #define CVMX_LED_POLARITY (CVMX_ADD_IO_SEG(0x0001180000001A50ull))
37aa32a955SDavid Daney #define CVMX_LED_PRT (CVMX_ADD_IO_SEG(0x0001180000001A10ull))
38aa32a955SDavid Daney #define CVMX_LED_PRT_FMT (CVMX_ADD_IO_SEG(0x0001180000001A30ull))
39aa32a955SDavid Daney #define CVMX_LED_PRT_STATUSX(offset) (CVMX_ADD_IO_SEG(0x0001180000001A80ull) + ((offset) & 7) * 8)
40aa32a955SDavid Daney #define CVMX_LED_UDD_CNTX(offset) (CVMX_ADD_IO_SEG(0x0001180000001A20ull) + ((offset) & 1) * 8)
41aa32a955SDavid Daney #define CVMX_LED_UDD_DATX(offset) (CVMX_ADD_IO_SEG(0x0001180000001A38ull) + ((offset) & 1) * 8)
42aa32a955SDavid Daney #define CVMX_LED_UDD_DAT_CLRX(offset) (CVMX_ADD_IO_SEG(0x0001180000001AC8ull) + ((offset) & 1) * 16)
43aa32a955SDavid Daney #define CVMX_LED_UDD_DAT_SETX(offset) (CVMX_ADD_IO_SEG(0x0001180000001AC0ull) + ((offset) & 1) * 16)
4454293ec3SDavid Daney 
4554293ec3SDavid Daney union cvmx_led_blink {
4654293ec3SDavid Daney 	uint64_t u64;
4754293ec3SDavid Daney 	struct cvmx_led_blink_s {
48c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
4954293ec3SDavid Daney 		uint64_t reserved_8_63:56;
5054293ec3SDavid Daney 		uint64_t rate:8;
51c5aa59e8SDavid Daney #else
52c5aa59e8SDavid Daney 		uint64_t rate:8;
53c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
54c5aa59e8SDavid Daney #endif
5554293ec3SDavid Daney 	} s;
5654293ec3SDavid Daney };
5754293ec3SDavid Daney 
5854293ec3SDavid Daney union cvmx_led_clk_phase {
5954293ec3SDavid Daney 	uint64_t u64;
6054293ec3SDavid Daney 	struct cvmx_led_clk_phase_s {
61c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
6254293ec3SDavid Daney 		uint64_t reserved_7_63:57;
6354293ec3SDavid Daney 		uint64_t phase:7;
64c5aa59e8SDavid Daney #else
65c5aa59e8SDavid Daney 		uint64_t phase:7;
66c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
67c5aa59e8SDavid Daney #endif
6854293ec3SDavid Daney 	} s;
6954293ec3SDavid Daney };
7054293ec3SDavid Daney 
7154293ec3SDavid Daney union cvmx_led_cylon {
7254293ec3SDavid Daney 	uint64_t u64;
7354293ec3SDavid Daney 	struct cvmx_led_cylon_s {
74c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
7554293ec3SDavid Daney 		uint64_t reserved_16_63:48;
7654293ec3SDavid Daney 		uint64_t rate:16;
77c5aa59e8SDavid Daney #else
78c5aa59e8SDavid Daney 		uint64_t rate:16;
79c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
80c5aa59e8SDavid Daney #endif
8154293ec3SDavid Daney 	} s;
8254293ec3SDavid Daney };
8354293ec3SDavid Daney 
8454293ec3SDavid Daney union cvmx_led_dbg {
8554293ec3SDavid Daney 	uint64_t u64;
8654293ec3SDavid Daney 	struct cvmx_led_dbg_s {
87c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
8854293ec3SDavid Daney 		uint64_t reserved_1_63:63;
8954293ec3SDavid Daney 		uint64_t dbg_en:1;
90c5aa59e8SDavid Daney #else
91c5aa59e8SDavid Daney 		uint64_t dbg_en:1;
92c5aa59e8SDavid Daney 		uint64_t reserved_1_63:63;
93c5aa59e8SDavid Daney #endif
9454293ec3SDavid Daney 	} s;
9554293ec3SDavid Daney };
9654293ec3SDavid Daney 
9754293ec3SDavid Daney union cvmx_led_en {
9854293ec3SDavid Daney 	uint64_t u64;
9954293ec3SDavid Daney 	struct cvmx_led_en_s {
100c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
10154293ec3SDavid Daney 		uint64_t reserved_1_63:63;
10254293ec3SDavid Daney 		uint64_t en:1;
103c5aa59e8SDavid Daney #else
104c5aa59e8SDavid Daney 		uint64_t en:1;
105c5aa59e8SDavid Daney 		uint64_t reserved_1_63:63;
106c5aa59e8SDavid Daney #endif
10754293ec3SDavid Daney 	} s;
10854293ec3SDavid Daney };
10954293ec3SDavid Daney 
11054293ec3SDavid Daney union cvmx_led_polarity {
11154293ec3SDavid Daney 	uint64_t u64;
11254293ec3SDavid Daney 	struct cvmx_led_polarity_s {
113c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
11454293ec3SDavid Daney 		uint64_t reserved_1_63:63;
11554293ec3SDavid Daney 		uint64_t polarity:1;
116c5aa59e8SDavid Daney #else
117c5aa59e8SDavid Daney 		uint64_t polarity:1;
118c5aa59e8SDavid Daney 		uint64_t reserved_1_63:63;
119c5aa59e8SDavid Daney #endif
12054293ec3SDavid Daney 	} s;
12154293ec3SDavid Daney };
12254293ec3SDavid Daney 
12354293ec3SDavid Daney union cvmx_led_prt {
12454293ec3SDavid Daney 	uint64_t u64;
12554293ec3SDavid Daney 	struct cvmx_led_prt_s {
126c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
12754293ec3SDavid Daney 		uint64_t reserved_8_63:56;
12854293ec3SDavid Daney 		uint64_t prt_en:8;
129c5aa59e8SDavid Daney #else
130c5aa59e8SDavid Daney 		uint64_t prt_en:8;
131c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
132c5aa59e8SDavid Daney #endif
13354293ec3SDavid Daney 	} s;
13454293ec3SDavid Daney };
13554293ec3SDavid Daney 
13654293ec3SDavid Daney union cvmx_led_prt_fmt {
13754293ec3SDavid Daney 	uint64_t u64;
13854293ec3SDavid Daney 	struct cvmx_led_prt_fmt_s {
139c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
14054293ec3SDavid Daney 		uint64_t reserved_4_63:60;
14154293ec3SDavid Daney 		uint64_t format:4;
142c5aa59e8SDavid Daney #else
143c5aa59e8SDavid Daney 		uint64_t format:4;
144c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
145c5aa59e8SDavid Daney #endif
14654293ec3SDavid Daney 	} s;
14754293ec3SDavid Daney };
14854293ec3SDavid Daney 
14954293ec3SDavid Daney union cvmx_led_prt_statusx {
15054293ec3SDavid Daney 	uint64_t u64;
15154293ec3SDavid Daney 	struct cvmx_led_prt_statusx_s {
152c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
15354293ec3SDavid Daney 		uint64_t reserved_6_63:58;
15454293ec3SDavid Daney 		uint64_t status:6;
155c5aa59e8SDavid Daney #else
156c5aa59e8SDavid Daney 		uint64_t status:6;
157c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
158c5aa59e8SDavid Daney #endif
15954293ec3SDavid Daney 	} s;
16054293ec3SDavid Daney };
16154293ec3SDavid Daney 
16254293ec3SDavid Daney union cvmx_led_udd_cntx {
16354293ec3SDavid Daney 	uint64_t u64;
16454293ec3SDavid Daney 	struct cvmx_led_udd_cntx_s {
165c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
16654293ec3SDavid Daney 		uint64_t reserved_6_63:58;
16754293ec3SDavid Daney 		uint64_t cnt:6;
168c5aa59e8SDavid Daney #else
169c5aa59e8SDavid Daney 		uint64_t cnt:6;
170c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
171c5aa59e8SDavid Daney #endif
17254293ec3SDavid Daney 	} s;
17354293ec3SDavid Daney };
17454293ec3SDavid Daney 
17554293ec3SDavid Daney union cvmx_led_udd_datx {
17654293ec3SDavid Daney 	uint64_t u64;
17754293ec3SDavid Daney 	struct cvmx_led_udd_datx_s {
178c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
17954293ec3SDavid Daney 		uint64_t reserved_32_63:32;
18054293ec3SDavid Daney 		uint64_t dat:32;
181c5aa59e8SDavid Daney #else
182c5aa59e8SDavid Daney 		uint64_t dat:32;
183c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
184c5aa59e8SDavid Daney #endif
18554293ec3SDavid Daney 	} s;
18654293ec3SDavid Daney };
18754293ec3SDavid Daney 
18854293ec3SDavid Daney union cvmx_led_udd_dat_clrx {
18954293ec3SDavid Daney 	uint64_t u64;
19054293ec3SDavid Daney 	struct cvmx_led_udd_dat_clrx_s {
191c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
19254293ec3SDavid Daney 		uint64_t reserved_32_63:32;
19354293ec3SDavid Daney 		uint64_t clr:32;
194c5aa59e8SDavid Daney #else
195c5aa59e8SDavid Daney 		uint64_t clr:32;
196c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
197c5aa59e8SDavid Daney #endif
19854293ec3SDavid Daney 	} s;
19954293ec3SDavid Daney };
20054293ec3SDavid Daney 
20154293ec3SDavid Daney union cvmx_led_udd_dat_setx {
20254293ec3SDavid Daney 	uint64_t u64;
20354293ec3SDavid Daney 	struct cvmx_led_udd_dat_setx_s {
204c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
20554293ec3SDavid Daney 		uint64_t reserved_32_63:32;
20654293ec3SDavid Daney 		uint64_t set:32;
207c5aa59e8SDavid Daney #else
208c5aa59e8SDavid Daney 		uint64_t set:32;
209c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
210c5aa59e8SDavid Daney #endif
21154293ec3SDavid Daney 	} s;
21254293ec3SDavid Daney };
21354293ec3SDavid Daney 
21454293ec3SDavid Daney #endif
215