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