Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/gpu/drm/radeon/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 228 kB image not shown  

Quelle  si_dpm.c   Sprache: C

 
/*
 * Copyright 2013 Advanced Micro Devices, Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 *
 */


#include <linux/math64.h>
#include <linux/pci.h>
#include <linux/seq_file.h>

#include "atom.h"
#include "evergreen.h"
#include "r600_dpm.h"
#include "rv770.h"
#include "radeon.h"
#include "radeon_asic.h"
#include "ni_dpm.h"
#include "si_dpm.h"
#include "si.h"
#include "sid.h"
#include "vce.h"

#define MC_CG_ARB_FREQ_F0           0x0a
#define MC_CG_ARB_FREQ_F1           0x0b
#define MC_CG_ARB_FREQ_F2           0x0c
#define MC_CG_ARB_FREQ_F3           0x0d

#define SMC_RAM_END                 0x20000

#define SCLK_MIN_DEEPSLEEP_FREQ     1350

static const struct si_cac_config_reg cac_weights_tahiti[] = {
 { 0x0, 0x0000ffff, 0, 0xc, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0x101, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0xc, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x8fc, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x95, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x34e, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x1a1, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0xda, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x46, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x208, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0xe7, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x948, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x167, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x35, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x31, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0x18e, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg lcac_tahiti[] = {
 { 0x143, 0x0001fffe, 1, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0x143, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x146, 0x0001fffe, 1, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0x146, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x149, 0x0001fffe, 1, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0x149, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x14c, 0x0001fffe, 1, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0x14c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x98, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x98, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x9b, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x9b, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x9e, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x9e, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x101, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x101, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x104, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x104, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x107, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x107, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10a, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x10a, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10d, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x10d, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x8c, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x8c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x8f, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x8f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x92, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x92, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x95, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x95, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x14f, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x14f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x152, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x152, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x155, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x155, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x158, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x158, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x110, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x110, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x113, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x113, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x116, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x116, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x119, 0x0001fffe, 1, 0x8, SISLANDS_CACCONFIG_CGIND },
 { 0x119, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11c, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x11c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11f, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x11f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x122, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x122, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x125, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x125, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x128, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x128, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x12b, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x12b, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x15b, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x15b, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x15e, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x15e, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x161, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x161, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x164, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x164, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x167, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x167, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x16a, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x16a, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x16d, 0x0001fffe, 1, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x16d, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x170, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x170, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x173, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x173, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x176, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x176, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x179, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x179, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x17c, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x17c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x17f, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x17f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }

};

static const struct si_cac_config_reg cac_override_tahiti[] = {
 { 0xFFFFFFFF }
};

static const struct si_powertune_data powertune_data_tahiti = {
 ((1 << 16) | 27027),
 6,
 0,
 4,
 95,
 {
  0UL,
  0UL,
  4521550UL,
  309631529UL,
  -1270850L,
  4513710L,
  40
 },
 595000000UL,
 12,
 {
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0
 },
 true
};

static const struct si_dte_data dte_data_tahiti = {
 { 1159409, 0, 0, 0, 0 },
 { 777, 0, 0, 0, 0 },
 2,
 54000,
 127000,
 25,
 2,
 10,
 13,
 { 27, 31, 35, 39, 43, 47, 54, 61, 67, 74, 81, 88, 95, 0, 0, 0 },
 { 240888759, 221057860, 235370597, 162287531, 158510299, 131423027, 116673180, 103067515, 87941937, 76209048, 68209175, 64090048, 58301890, 0, 0, 0 },
 { 12024, 11189, 11451, 8411, 7939, 6666, 5681, 4905, 4241, 3720, 3354, 3122, 2890, 0, 0, 0 },
 85,
 false
};

static const struct si_dte_data dte_data_tahiti_pro = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0x0, 0x0, 0x0, 0x0, 0x0 },
 5,
 45000,
 100,
 0xA,
 1,
 0,
 0x10,
 { 0x96, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
 { 0x895440, 0x3D0900, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680 },
 { 0x7D0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static const struct si_dte_data dte_data_new_zealand = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0 },
 { 0x29B, 0x3E9, 0x537, 0x7D2, 0 },
 0x5,
 0xAFC8,
 0x69,
 0x32,
 1,
 0,
 0x10,
 { 0x82, 0xA0, 0xB4, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE },
 { 0x895440, 0x3D0900, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680 },
 { 0xDAC, 0x1388, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685, 0x685 },
 85,
 true
};

static const struct si_dte_data dte_data_aruba_pro = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0x0, 0x0, 0x0, 0x0, 0x0 },
 5,
 45000,
 100,
 0xA,
 1,
 0,
 0x10,
 { 0x96, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
 { 0x895440, 0x3D0900, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680 },
 { 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static const struct si_dte_data dte_data_malta = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0x0, 0x0, 0x0, 0x0, 0x0 },
 5,
 45000,
 100,
 0xA,
 1,
 0,
 0x10,
 { 0x96, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
 { 0x895440, 0x3D0900, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680 },
 { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static struct si_cac_config_reg cac_weights_pitcairn[] = {
 { 0x0, 0x0000ffff, 0, 0x8a, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x24d, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x19, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0x118, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0x76, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0xc11, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0x7f3, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x403, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x367, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x4c9, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x45d, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0x36d, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x534, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x5da, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x880, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0x201, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0x9f, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x1f, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x5de, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x7b, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x13, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0xf9, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x66, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x13, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0x186, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg lcac_pitcairn[] = {
 { 0x98, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x98, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x104, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x104, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x110, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x110, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x14f, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x14f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x8c, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x8c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x143, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x143, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x9b, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x9b, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x107, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x107, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x113, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x113, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x152, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x152, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x8f, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x8f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x146, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x146, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x9e, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x9e, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10a, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x10a, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x116, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x116, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x155, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x155, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x92, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x92, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x149, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x149, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x101, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x101, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10d, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x10d, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x119, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x119, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x158, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x158, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x95, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x95, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x14c, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x14c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11c, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x11c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11f, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x11f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x122, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x122, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x125, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x125, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x128, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x128, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x12b, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x12b, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x164, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x164, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x167, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x167, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x16a, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x16a, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x15e, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x15e, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x161, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x161, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x15b, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x15b, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x16d, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x16d, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x170, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x170, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x173, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x173, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x176, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x176, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x179, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x179, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x17c, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x17c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x17f, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x17f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_override_pitcairn[] = {
 { 0xFFFFFFFF }
};

static const struct si_powertune_data powertune_data_pitcairn = {
 ((1 << 16) | 27027),
 5,
 0,
 6,
 100,
 {
  51600000UL,
  1800000UL,
  7194395UL,
  309631529UL,
  -1270850L,
  4513710L,
  100
 },
 117830498UL,
 12,
 {
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0
 },
 true
};

static const struct si_dte_data dte_data_pitcairn = {
 { 0, 0, 0, 0, 0 },
 { 0, 0, 0, 0, 0 },
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 0,
 false
};

static const struct si_dte_data dte_data_curacao_xt = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0x0, 0x0, 0x0, 0x0, 0x0 },
 5,
 45000,
 100,
 0xA,
 1,
 0,
 0x10,
 { 0x96, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
 { 0x895440, 0x3D0900, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680 },
 { 0x1D17, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static const struct si_dte_data dte_data_curacao_pro = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0x0, 0x0, 0x0, 0x0, 0x0 },
 5,
 45000,
 100,
 0xA,
 1,
 0,
 0x10,
 { 0x96, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
 { 0x895440, 0x3D0900, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680 },
 { 0x1D17, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static const struct si_dte_data dte_data_neptune_xt = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0x0, 0x0, 0x0, 0x0, 0x0 },
 5,
 45000,
 100,
 0xA,
 1,
 0,
 0x10,
 { 0x96, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
 { 0x895440, 0x3D0900, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680, 0x989680 },
 { 0x3A2F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static const struct si_cac_config_reg cac_weights_chelsea_pro[] = {
 { 0x0, 0x0000ffff, 0, 0x82, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0x153, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x52, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0xAC, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x118, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0xBE, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x110, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x4CD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x37, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0x27, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0xC3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x35, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0x28, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x26C, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3B2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x99D, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA3F, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x34, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x2BD, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7A, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0x100, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_weights_chelsea_xt[] = {
 { 0x0, 0x0000ffff, 0, 0x82, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0x153, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x52, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0xAC, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x118, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0xBE, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x110, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x4CD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x37, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0x27, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0xC3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x35, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0x28, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x26C, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3B2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x99D, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA3F, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x34, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x30A, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7A, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0x100, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_weights_heathrow[] = {
 { 0x0, 0x0000ffff, 0, 0x82, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0x153, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x52, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0xAC, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x118, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0xBE, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x110, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x4CD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x37, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0x27, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0xC3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x35, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0x28, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x26C, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3B2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x99D, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA3F, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x34, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x362, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7A, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0x100, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_weights_cape_verde_pro[] = {
 { 0x0, 0x0000ffff, 0, 0x82, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0x153, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x52, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0xAC, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x118, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0xBE, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x110, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x4CD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x37, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0x27, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0xC3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x35, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0x28, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x26C, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3B2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x99D, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA3F, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x34, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x315, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7A, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0x100, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_weights_cape_verde[] = {
 { 0x0, 0x0000ffff, 0, 0x82, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0x153, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x52, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0xAC, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x118, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0xBE, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x110, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x4CD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x37, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0x27, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0xC3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x35, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0x28, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x26C, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3B2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x99D, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA3F, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x34, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x3BA, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7A, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0x100, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg lcac_cape_verde[] = {
 { 0x98, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x98, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x104, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x104, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x110, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x110, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x14f, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x14f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x8c, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x8c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x143, 0x0001fffe, 1, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x143, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x9b, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x9b, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x107, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x107, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x113, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x113, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x152, 0x0001fffe, 1, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x152, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x8f, 0x0001fffe, 1, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x8f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x146, 0x0001fffe, 1, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x146, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11c, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x11c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11f, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x11f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x164, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x164, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x167, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x167, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x16a, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x16a, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x15e, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x15e, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x161, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x161, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x15b, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x15b, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x16d, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x16d, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x170, 0x0001fffe, 1, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x170, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x173, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x173, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x176, 0x0001fffe, 1, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x176, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x179, 0x0001fffe, 1, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x179, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x17c, 0x0001fffe, 1, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x17c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x17f, 0x0001fffe, 1, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x17f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_override_cape_verde[] = {
 { 0xFFFFFFFF }
};

static const struct si_powertune_data powertune_data_cape_verde = {
 ((1 << 16) | 0x6993),
 5,
 0,
 7,
 105,
 {
  0UL,
  0UL,
  7194395UL,
  309631529UL,
  -1270850L,
  4513710L,
  100
 },
 117830498UL,
 12,
 {
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0
 },
 true
};

static const struct si_dte_data dte_data_cape_verde = {
 { 0, 0, 0, 0, 0 },
 { 0, 0, 0, 0, 0 },
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 0,
 false
};

static const struct si_dte_data dte_data_venus_xtx = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0x71C, 0xAAB, 0xE39, 0x11C7, 0x0 },
 5,
 55000,
 0x69,
 0xA,
 1,
 0,
 0x3,
 { 0x96, 0xB4, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 { 0x895440, 0x3D0900, 0x989680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 { 0xD6D8, 0x88B8, 0x1555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static const struct si_dte_data dte_data_venus_xt = {
 { 0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0xBDA, 0x11C7, 0x17B4, 0x1DA1, 0x0 },
 5,
 55000,
 0x69,
 0xA,
 1,
 0,
 0x3,
 { 0x96, 0xB4, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 { 0x895440, 0x3D0900, 0x989680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 { 0xAFC8, 0x88B8, 0x238E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static const struct si_dte_data dte_data_venus_pro = {
 {  0x1E8480, 0x3D0900, 0x989680, 0x2625A00, 0x0 },
 { 0x11C7, 0x1AAB, 0x238E, 0x2C72, 0x0 },
 5,
 55000,
 0x69,
 0xA,
 1,
 0,
 0x3,
 { 0x96, 0xB4, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 { 0x895440, 0x3D0900, 0x989680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 { 0x88B8, 0x88B8, 0x3555, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
 90,
 true
};

static struct si_cac_config_reg cac_weights_oland[] = {
 { 0x0, 0x0000ffff, 0, 0x82, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0x153, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x52, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x4F, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0x135, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0xAC, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x118, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0xBE, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x110, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x4CD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x37, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0x27, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0xC3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x35, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0x28, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x26C, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3B2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x99D, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA3F, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0xA, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x34, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x3BA, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x30, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7A, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0x100, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_weights_mars_pro[] = {
 { 0x0, 0x0000ffff, 0, 0x43, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x29, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0xAF, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x2A, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0xA0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x29, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0xA0, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0x59, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x1A5, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0x1D6, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x2A3, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x8FD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x76, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x8A, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0xA3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0x71, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x36, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0xA6, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x81, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3D2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x27C, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA96, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0xB, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x7, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x36, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x10, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x10, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x32, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7E, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0x280, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0x7, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0x3C, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0x203, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0xB4, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_weights_mars_xt[] = {
 { 0x0, 0x0000ffff, 0, 0x43, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x29, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0xAF, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x2A, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0xA0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x29, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0xA0, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0x59, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x1A5, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0x1D6, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x2A3, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x8FD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x76, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x8A, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0xA3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0x71, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x36, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0xA6, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x81, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3D2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x27C, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA96, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0xB, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x7, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x36, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x10, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x10, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x60, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x32, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7E, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0x280, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0x7, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0x3C, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0x203, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0xB4, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_weights_oland_pro[] = {
 { 0x0, 0x0000ffff, 0, 0x43, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x29, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0xAF, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x2A, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0xA0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x29, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0xA0, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0x59, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x1A5, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0x1D6, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x2A3, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x8FD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x76, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x8A, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0xA3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0x71, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x36, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0xA6, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x81, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3D2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x27C, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA96, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0xB, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x7, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x36, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x10, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x10, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x90, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x32, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7E, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0x280, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0x7, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0x3C, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0x203, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0xB4, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg cac_weights_oland_xt[] = {
 { 0x0, 0x0000ffff, 0, 0x43, SISLANDS_CACCONFIG_CGIND },
 { 0x0, 0xffff0000, 16, 0x29, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0x0000ffff, 0, 0xAF, SISLANDS_CACCONFIG_CGIND },
 { 0x1, 0xffff0000, 16, 0x2A, SISLANDS_CACCONFIG_CGIND },
 { 0x2, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0x0000ffff, 0, 0xA0, SISLANDS_CACCONFIG_CGIND },
 { 0x3, 0xffff0000, 16, 0x29, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0x0000ffff, 0, 0xA0, SISLANDS_CACCONFIG_CGIND },
 { 0x4, 0xffff0000, 16, 0x59, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0x0000ffff, 0, 0x1A5, SISLANDS_CACCONFIG_CGIND },
 { 0x5, 0xffff0000, 16, 0x1D6, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0x0000ffff, 0, 0x2A3, SISLANDS_CACCONFIG_CGIND },
 { 0x6, 0xffff0000, 16, 0x8FD, SISLANDS_CACCONFIG_CGIND },
 { 0x18f, 0x0000ffff, 0, 0x76, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0x0000ffff, 0, 0x8A, SISLANDS_CACCONFIG_CGIND },
 { 0x7, 0xffff0000, 16, 0xA3, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0x0000ffff, 0, 0x71, SISLANDS_CACCONFIG_CGIND },
 { 0x8, 0xffff0000, 16, 0x36, SISLANDS_CACCONFIG_CGIND },
 { 0x9, 0x0000ffff, 0, 0xA6, SISLANDS_CACCONFIG_CGIND },
 { 0xa, 0x0000ffff, 0, 0x81, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0x0000ffff, 0, 0x3D2, SISLANDS_CACCONFIG_CGIND },
 { 0xb, 0xffff0000, 16, 0x27C, SISLANDS_CACCONFIG_CGIND },
 { 0xc, 0x0000ffff, 0, 0xA96, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0x0000ffff, 0, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xd, 0xffff0000, 16, 0x5, SISLANDS_CACCONFIG_CGIND },
 { 0xe, 0x0000ffff, 0, 0xB, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0x0000ffff, 0, 0x3, SISLANDS_CACCONFIG_CGIND },
 { 0xf, 0xffff0000, 16, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0x0000ffff, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x10, 0xffff0000, 16, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0x0000ffff, 0, 0x15, SISLANDS_CACCONFIG_CGIND },
 { 0x11, 0xffff0000, 16, 0x7, SISLANDS_CACCONFIG_CGIND },
 { 0x12, 0x0000ffff, 0, 0x36, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0x0000ffff, 0, 0x10, SISLANDS_CACCONFIG_CGIND },
 { 0x13, 0xffff0000, 16, 0x10, SISLANDS_CACCONFIG_CGIND },
 { 0x14, 0x0000ffff, 0, 0x120, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x15, 0xffff0000, 16, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x4e, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0x0000ffff, 0, 0x32, SISLANDS_CACCONFIG_CGIND },
 { 0x16, 0xffff0000, 16, 0x7E, SISLANDS_CACCONFIG_CGIND },
 { 0x17, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x18, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x19, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0x0000ffff, 0, 0x280, SISLANDS_CACCONFIG_CGIND },
 { 0x1a, 0xffff0000, 16, 0x7, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1b, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0x0000ffff, 0, 0x3C, SISLANDS_CACCONFIG_CGIND },
 { 0x1c, 0xffff0000, 16, 0x203, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0x0000ffff, 0, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1d, 0xffff0000, 16, 0x0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1e, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x1f, 0xffff0000, 16, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x20, 0x0000ffff, 0, 0, SISLANDS_CACCONFIG_CGIND },
 { 0x6d, 0x0000ffff, 0, 0xB4, SISLANDS_CACCONFIG_CGIND },
 { 0xFFFFFFFF }
};

static const struct si_cac_config_reg lcac_oland[] = {
 { 0x98, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x98, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x104, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
 { 0x104, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x110, 0x0001fffe, 1, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x110, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x14f, 0x0001fffe, 1, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x14f, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x8c, 0x0001fffe, 1, 0x6, SISLANDS_CACCONFIG_CGIND },
 { 0x8c, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x143, 0x0001fffe, 1, 0x4, SISLANDS_CACCONFIG_CGIND },
 { 0x143, 0x00000001, 0, 0x1, SISLANDS_CACCONFIG_CGIND },
 { 0x11c, 0x0001fffe, 1, 0x2, SISLANDS_CACCONFIG_CGIND },
--> --------------------

--> maximum size reached

--> --------------------

Messung V0.5
C=95 H=94 G=94

¤ Dauer der Verarbeitung: 0.53 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.