diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/assp/omap3530_assp/omap3530_asspreg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/assp/omap3530_assp/omap3530_asspreg.h Wed Mar 31 12:33:34 2010 +0100 @@ -0,0 +1,161 @@ +// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#if 0 // not needed for Symbian^3 + +#ifndef __ASSPREG_H__ +#define __ASSPREG_H__ + +/** +@publishedPartner +@prototype + +A class that exports ASSP register access functionality to +device drivers and other kernel-side code. + +Although Symbian OS defines this class, it does not implement all +the functions within it. An implementation for each of the register +modification functions defined by this class must be provided by +the baseport. +*/ +class AsspRegister + { +public: + + /** + Return the contents of an 8-bit register. + + @param aAddr The address of the register to be read. + @return The contents of the register. + @pre Can be called in any context. + */ + static inline TUint8 Read8(TLinAddr aAddr) + { return *(volatile TUint8*)aAddr; } + + /** + Store a new value in an 8-bit register. This will change + the entire contents of the register concerned. + + @param aAddr The address of the register to be written. + @param aValue The new value to be written to the register. + @pre Can be called in any context. + */ + static inline void Write8(TLinAddr aAddr, TUint8 aValue) + { *(volatile TUint8*)aAddr = aValue; } + + /** + Modify the contents of an 8-bit register. + + @param aAddr The address of the register to be modified. + @param aClearMask A mask of the bits to be cleared in the register. + @param aSetMask A mask of the bits to be set in the register after the clear. + @pre Can be called in any context. + */ + IMPORT_C static void Modify8(TLinAddr aAddr, TUint8 aClearMask, TUint8 aSetMask); + + /** + Return the contents of an 16-bit register. + + @param aAddr The address of the register to be read. + @return The contents of the register. + @pre Can be called in any context. + */ + static inline TUint16 Read16(TLinAddr aAddr) + { return *(volatile TUint16*)aAddr; } + + /** + Store a new value in a 16-bit register. This will change + the entire contents of the register concerned. + + @param aAddr The address of the register to be written. + @param aValue The new value to be written to the register. + @pre Can be called in any context. + */ + static inline void Write16(TLinAddr aAddr, TUint16 aValue) + { *(volatile TUint16*)aAddr = aValue; } + + /** + Modify the contents of a 16-bit register. + + @param aAddr The address of the register to be modified. + @param aClearMask A mask of the bits to be cleared in the register. + @param aSetMask A mask of the bits to be set in the register after the clear. + @pre Can be called in any context. + */ + IMPORT_C static void Modify16(TLinAddr aAddr, TUint16 aClearMask, TUint16 aSetMask); + + /** + Return the contents of a 32-bit register. + + @param aAddr The address of the register to be read. + @return The contents of the register. + @pre Can be called in any context. + */ + static inline TUint32 Read32(TLinAddr aAddr) + { return *(volatile TUint32*)aAddr; } + + /** + Store a new value in a 32-bit register. This will change + the entire contents of the register concerned. + + @param aAddr The address of the register to be written. + @param aValue The new value to be written to the register. + @pre Can be called in any context. + */ + static inline void Write32(TLinAddr aAddr, TUint32 aValue) + { *(volatile TUint32*)aAddr = aValue; } + + /** + Modify the contents of a 32-bit register. + + @param aAddr The address of the register to be modified. + @param aClearMask A mask of the bits to be cleared in the register. + @param aSetMask A mask of the bits to be set in the register after the clear. + @pre Can be called in any context. + */ + IMPORT_C static void Modify32(TLinAddr aAddr, TUint32 aClearMask, TUint32 aSetMask); + + /** + Return the contents of a 64-bit register. + + @param aAddr The address of the register to be read. + @return The contents of the register. + @pre Can be called in any context. + */ + IMPORT_C static TUint64 Read64(TLinAddr aAddr); + + /** + Store a new value in a 64-bit register. This will change + the entire contents of the register concerned. + + @param aAddr The address of the register to be written. + @param aValue The new value to be written to the register. + @pre Can be called in any context. + */ + IMPORT_C static void Write64(TLinAddr aAddr, TUint64 aValue); + + /** + Modify the contents of a 64-bit register. + + @param aAddr The address of the register to be modified. + @param aClearMask A mask of the bits to be cleared in the register. + @param aSetMask A mask of the bits to be set in the register after the clear. + @pre Can be called in any context. + */ + IMPORT_C static void Modify64(TLinAddr aAddr, TUint64 aClearMask, TUint64 aSetMask); + }; + +#endif +#endif