Muxed Mass Memory Control/mmmCtrl_chipset_api.h
author Arnaud Lenoir
Tue, 05 Oct 2010 14:48:01 +0100
changeset 26 0cdfb9e7f8e5
parent 0 bb4b476bbb96
permissions -rw-r--r--
FYI - READ ONLY - Updated SHAI_public_APIs-status.xlsx. contact arnaudl@symbian.org for any changes you want.

/*
  mmmCtrl_chipset_api.h

  Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
  All rights reserved.

  This program and the accompanying materials are made available 
  under the terms of the Eclipse Public License v1.0 which accompanies 
  this distribution, and is available at 
  http://www.eclipse.org/legal/epl-v10.html

  Initial Contributors:
  Nokia Corporation - initial contribution.

  Contributors:
*/

/** @file
@brief mmm Ctrl Chipset API H

This is the header file for Muxed Mass Memory Control chipset API.

@publishedDeviceAbstraction
*/

#ifndef __MMM_CTRL_CHIPSET_API_H__
#define __MMM_CTRL_CHIPSET_API_H__

#ifdef __cplusplus
extern "C" {

#ifndef SYMOS_OAM
#define SYMOS_OAM
#endif

#endif

#if defined(SYMOS_OAM)   /* do not use SYMOS_OAM -flag inside chipset API code */
#define MMM_CTRL_SYMBIAN
#else
    /* these definitions are for non symbian code */
typedef unsigned long int TUint32;
typedef unsigned char TUint8;
typedef unsigned int TUint;
typedef signed int TInt;
typedef void TAny;
#endif

/* Include files */

    /*  all the needed include files must be included by C or CPP -file */
    /*  before this header file.                                        */

/* Constants */

    /* Parameter values for mmmCtrlStateSet */
#define mmmCtrlDeviceOff                 0x0000
#define mmmCtrlBusControllerReset        0x0001
#define mmmCtrlBusModeNormal             0x0002

    /* return values for mmmCtrlLastErrorGet() -function     */
#define mmmCtrlErrorNone                ((TUint32)mmmCtrlOk)
    /* the rest of the error codes are defined by the vendor */
    /* to their own header file.                             */

    /* Error return value for mmmCtrlIntPinGet() –function   */
#define mmmCtrlNonValid                 (-1)

    /* Error return value for mmmCtrlBaseAddressGet() –function */
#define mmmCtrlInvalidAddress	        (TAny*)(-1)

/* Macros */

/* Data types */

typedef enum
    {
    mmmCtrlOk = 0,               /* status OK */
    mmmCtrlNotSupported,         /* feature not supported */
    mmmCtrlDmaOnGoing,           /* DMA started */
    mmmCtrlFail                  /* error has happened */
    }    TmmmCtrlStatus;

typedef enum
    {
    mmmCtrlVirtualAddress = 0,   /* Virtual base address of device */
    mmmCtrlPhysicalAddress       /* Physical base address of device */
    }    TmmmCtrlAddress;

    /* Function prototypes */
TmmmCtrlStatus mmmCtrlInit( void );
TUint32 mmmCtrlVersionGet( void );
TAny* mmmCtrlBaseAddressGet( TmmmCtrlAddress address );
TmmmCtrlStatus mmmCtrlStateSet( TUint32 state );
TInt mmmCtrlIntPinGet( void );
TmmmCtrlStatus mmmCtrlMemCpy( TAny* target, TAny* source, TUint32 n,
    void (*cb)(TmmmCtrlStatus) );
TUint32 mmmCtrlLastErrorGet( void );

/* Class declaration */

#ifdef __cplusplus
}
#endif

#endif /* __MMM_CTRL_CHIPSET_API_H__  */