blob: 02ac7bf67aa4e68d51dfa8ef7f917e18b85fb31b [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_ACH__
#define __H_ACM_ACH__
#include "acm_debug.h"
typedef enum {
ACH_RC_OK,
ACH_RC_NO_UPDATE_NEEDED,
ACH_RC_FAIL_TO_UPDATE
} ACH_ReturnCode;
typedef enum {
COMPONENT_INACTIVE,
COMPONENT_ACTIVE
} ACH_ComponentStatus;
typedef enum {
COMPONENT_TYPE_CODEC,
COMPONENT_TYPE_POWER,
COMPONENT_TYPE_BT,
COMPONENT_TYPE_FM,
COMPONENT_TYPE_GPIO,
COMPONENT_TYPE_MODEM,
COMPONENT_TYPE_SW,
} ACH_ComponentType;
typedef struct {
unsigned char active;
unsigned char ref_count;
void (*ACH_Enable)(void);
void (*ACH_Disable)(void);
void (*ACH_Reset)(void);
void (*ACH_GetTypeAndID)(int *type, unsigned char *id);
ACH_ReturnCode (*ACH_Handle)(void *setting);
} ACH_ComponentHandler;
typedef union {
struct {
unsigned char reg_index;
unsigned short reg_mask;
unsigned char reg_shift;
unsigned short length;
unsigned short *reg_value;
} i2c;
struct {
unsigned char gpio_port;
unsigned char gpio_value;
} gpio;
struct {
unsigned char hci_ocf;
unsigned char hci_ogf;
unsigned short length;
unsigned char *hci_parameters;
} hci;
struct {
unsigned int delay_value;
} delay;
} ACH_ComponentParameter;
#endif