blob: 4fb0c94d0d920c4263ab247b0d2e6835229660b8 [file] [log] [blame]
/*
* All Rights Reserved
*
* MARVELL CONFIDENTIAL
* Copyright 2012 Marvell International Ltd All Rights Reserved.
* The source code contained or described herein and all documents related to
* the source code ("Material") are owned by Marvell International Ltd or its
* suppliers or licensors. Title to the Material remains with Marvell International Ltd
* or its suppliers and licensors. The Material contains trade secrets and
* proprietary and confidential information of Marvell or its suppliers and
* licensors. The Material is protected by worldwide copyright and trade secret
* laws and treaty provisions. No part of the Material may be used, copied,
* reproduced, modified, published, uploaded, posted, transmitted, distributed,
* or disclosed in any way without Marvell's prior express written permission.
*
* No license under any patent, copyright, trade secret or other intellectual
* property right is granted to or conferred upon you by disclosure or delivery
* of the Materials, either expressly, by implication, inducement, estoppel or
* otherwise. Any license under such intellectual property rights must be
* express and approved by Marvell in writing.
*
*/
#ifndef __H_ACM_ELBA__
#define __H_ACM_ELBA__
#include "acm_ach.h"
#define NUM_OF_REGS (sizeof(reg_cache)/sizeof(reg_cache[0]))
#define REG_NUMID_BASE 0
#define ELBA_MAIN_POWERUP_ID 1
#define ELBA_SEQ_PU_READY 0
#define ELBA_AUTO_SEQUENCE_STS_1 11
#define ELBA_SRC_SET2_ID 44
#define ELBA_ID_REG 0
#define ELBA_COEFF_ID 63
#define ELBA_HP_SHRT_AR_ID 10
typedef struct {
unsigned char reg_index;
unsigned short reg_default;
unsigned short reg_value;
// Field of reg_prior represent when will this register be reset;
// 0x00 --- with this value, the register will not be reset,
// 0x01~0xff --- with these values, the register will be reset with ascending sequence;
// If someone would like to modify the resetting sequences in the table,
// only need to modify this field in reg_cache.
unsigned short reg_prior;
} Elba_RegisterCache;
static Elba_RegisterCache reg_cache[] = {
{0x00, 0x03, 0x03, 0x02}, {0x01, 0x00, 0x00, 0x02}, {0x02, 0x00, 0x00, 0x02}, {0x03, 0x00, 0x00, 0x00}, {0x04, 0x00, 0x00, 0x00},
{0x05, 0x00, 0x00, 0x00}, {0x06, 0x00, 0x00, 0x00}, {0x07, 0x00, 0x00, 0x02}, {0x08, 0x00, 0x00, 0x02}, {0x09, 0x00, 0x00, 0x02},
{0x0A, 0x00, 0x00, 0x02}, {0x0B, 0xAA, 0xAA, 0x02}, {0x0C, 0x00, 0x00, 0x02}, {0x10, 0x00, 0x00, 0x02}, {0x11, 0x00, 0x00, 0x02},
{0x12, 0x02, 0x02, 0x02}, {0x13, 0x00, 0x00, 0x02}, {0x14, 0x00, 0x00, 0x02}, {0x15, 0x00, 0x00, 0x02}, {0x16, 0x00, 0x00, 0x02},
{0x17, 0x00, 0x00, 0x02}, {0x20, 0x00, 0x00, 0x02}, {0x21, 0x00, 0x00, 0x02}, {0x22, 0x00, 0x00, 0x02}, {0x23, 0x00, 0x00, 0x02},
{0x24, 0x00, 0x00, 0x02}, {0x25, 0x00, 0x00, 0x02}, {0x26, 0x00, 0x00, 0x03}, {0x27, 0x00, 0x00, 0x02}, {0x28, 0x00, 0x00, 0x02},
{0x29, 0x00, 0x00, 0x02}, {0x2A, 0x00, 0x00, 0x02}, {0x30, 0x00, 0x00, 0x02}, {0x31, 0x00, 0x00, 0x02}, {0x32, 0x00, 0x00, 0x02},
{0x33, 0x00, 0x00, 0x02}, {0x34, 0x00, 0x00, 0x02}, {0x35, 0x00, 0x00, 0x02}, {0x36, 0x00, 0x00, 0x02}, {0x37, 0x00, 0x00, 0x02},
{0x38, 0x00, 0x00, 0x02}, {0x39, 0x00, 0x00, 0x02}, {0x3A, 0x00, 0x00, 0x02}, {0x3B, 0x00, 0x00, 0x02}, {0x3C, 0x12, 0x12, 0x02},
{0x3D, 0x00, 0x00, 0x02}, {0x3E, 0x00, 0x00, 0x02}, {0x3F, 0x00, 0x00, 0x02}, {0x40, 0x00, 0x00, 0x02}, {0x41, 0x00, 0x00, 0x02},
{0x42, 0x00, 0x00, 0x02}, {0x50, 0x00, 0x00, 0x02}, {0x51, 0x00, 0x00, 0x02}, {0x52, 0x00, 0x00, 0x02}, {0x53, 0x00, 0x00, 0x02},
{0x54, 0x05, 0x05, 0x02}, {0x55, 0x00, 0x00, 0x02}, {0x56, 0x00, 0x00, 0x01}, {0x57, 0x00, 0x00, 0x01}, {0x58, 0x00, 0x00, 0x02},
{0x59, 0x00, 0x00, 0x02}, {0x5A, 0x00, 0x00, 0x02}, {0x5B, 0x00, 0x00, 0x02}, {0x5C, 0x00, 0x00, 0x02}, {0x5D, 0x00, 0x00, 0x02},
{0x5E, 0x00, 0x00, 0x02}, {0x5F, 0x00, 0x00, 0x02}, {0x60, 0x00, 0x00, 0x02}, {0x80, 0x00, 0x00, 0x02}, {0x81, 0x00, 0x00, 0x02},
{0x82, 0x10, 0x10, 0x02}, {0x83, 0x01, 0x01, 0x02}, {0x84, 0x88, 0x88, 0x02}, {0x85, 0x16, 0x16, 0x02}, {0x86, 0x16, 0x16, 0x02},
{0x87, 0x00, 0x00, 0x02}, {0x88, 0x40, 0x40, 0x02}, {0x89, 0x00, 0x00, 0x02}, {0x8A, 0x08, 0x08, 0x02}, {0x8B, 0x05, 0x05, 0x02},
{0x8C, 0x00, 0x00, 0x02}, {0x8D, 0x00, 0x00, 0x02}, {0x8E, 0x00, 0x00, 0x02}, {0x8F, 0x00, 0x00, 0x02}, {0x90, 0x04, 0x04, 0x02},
{0x91, 0x03, 0x03, 0x02}, {0x92, 0x00, 0x00, 0x02}, {0x93, 0x04, 0x04, 0x02}, {0x94, 0x02, 0x02, 0x02}, {0x95, 0x44, 0x44, 0x02},
{0x96, 0x71, 0x71, 0x02}, {0x97, 0x12, 0x12, 0x02}, {0x98, 0x00, 0x00, 0x02}
};
void Elba_RegGet(unsigned char numid, unsigned char *value);
void Elba_RegBurstGet(unsigned char numid, unsigned char *value, int size, int offset);
unsigned char Elba_GetRegNumId(unsigned char reg_index);
#endif