/*
 * Copyright 2010 Trident Microsystems (Far East) Ltd. All rights reserved.
 * All prior copyright rights in this work and the accompanying software
 * products transferred to Trident Microsystems (Far East) Ltd. by written
 * agreement.
 */
/*****************************************************************************/
/* Copyright (c) 2010 NXP B.V.  All rights are reserved.                     */
/*                                                                           */
/* Redistribution and use in source and binary forms, with or without        */
/* modification, are permitted provided that the following conditions        */
/* are met:                                                                  */
/*                                                                           */
/* Redistributions of source code must retain the above copyright            */
/* notice, this list of conditions and the following disclaimer.             */
/*                                                                           */
/* Redistributions in binary form must reproduce the above copyright         */
/* notice, this list of conditions and the following disclaimer in the       */
/* documentation and/or other materials provided with the distribution.      */
/*                                                                           */
/* Neither the name of NXP nor the names of its                              */
/* contributors may be used to endorse or promote products derived from      */
/* this software without specific prior written permission.                  */
/*                                                                           */
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS       */
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT         */
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR     */
/* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT      */
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,     */
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT          */
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,     */
/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY     */
/* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT       */
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE         */
/* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH          */
/* DAMAGE.                                                                   */
/*                                                                           */
/*****************************************************************************/
/**
    @file   ph833xCore.h
    @brief  Common PNX833X SoC drivers.

@b  Component:  phStbCore

*//*

Rev Date        Author      Comments
--------------------------------------------------------------------------------
  1 20060309    J Grant     New
  2 20070625    M Neill     Add set audio rate function
  2 20070704    M Neill     Add get HW version function
  3 20070912    barnish     Change M0 hardware version to M0a
  4 20071016    batelaan    Rm internal function ph833xCore_Activate
  5 20071217    hutch       Merge in EB's minor change from 12/12/07
  7 20080206    batelaan    Update file copyright/license text
  8 20080226    batelaan    Remove PNX8335 M0A option.
  9 20081008    griffiths   Add phStbCoreReadProc to gather pts
 10 20090120    batelaan    Update file copyright/license text
 11 20090217    batelaan    Rm ph833xCore_setAudioRate
--------------------------------------------------------------------------------
    For consistency and standardisation retain the Section Separators.
*/

#ifndef PH833XCORE_H
#define PH833XCORE_H

/*******************
* INCLUDE FILES    *
********************/
#include "tmNxTypes.h"

#ifdef __cplusplus
extern "C"
{
#endif

/**************************************************************************
* EXPORTED MACROS                          PH_833XCORE_VO_<_WORD>+        *
***************************************************************************/

/*********************************************************************
* EXPORTED TYPEDEFS                      [p]ph833xCore_Vo_<Word>+_t  *
**********************************************************************/
/** Version of the hardware (SoC).
    By convention these values should be used to enable workarounds for older versions
    rather than disable them for later ones i.e. if the latest version is M1 then
    only the M0a value should be tested for.
*/
typedef enum
{
    ph833xCore_M1,
    ph833xCore_Unknown
} ph833xCore_hwVersion;

/**************************************************************************
* EXPORTED DATA                     g[k|p|kp|pk|kpk]ph833xCore_Vo_<Word>+ *
***************************************************************************/

/****************************************************************************
* EXPORTED FUNCTION PROTOTYPES                    ph833xCore_Vo[_<Word>+]   *
*****************************************************************************/

/** Get the version of the hardware (SoC).
    @param pVersion @b OUT The version.
    @return TM_OK on success.
 */
extern tmErrorCode_t ph833xCore_getHwVersion( ph833xCore_hwVersion * pVersion );

extern tmErrorCode_t ph833xCore_Activate_Dsp(void);

extern int phStbCoreReadProc(char *buf, char **start, off_t offset,
                               int len, int *eof, void *private);

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

/******************************************************************************/
#ifdef __cplusplus
}
#endif

#endif /* PH833XCORE_H      Do not add any thing below this line */
