kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdio/sdiopsu.h
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdio/sdiopsu.h	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,104 @@
+// Copyright (c) 2003-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:
+// Class definitions for SDIO PSU object
+// 
+//
+
+/**
+ @file sdiopsu.h
+ @internalTechnology
+*/
+
+#ifndef __SDIOPSU_H__
+#define __SDIOPSU_H__
+
+#include <drivers/sdio/sdio.h>
+
+class DSDIOPsu : public DMMCPsu
+/**
+ * DPBusPsuBase derived abstract class to control the SDIO socket's power supply.
+ *
+ * Provides special support for SDIO Cards to enter low-power sleep mode when
+ * not in use, or fully powering down the stack.
+ *
+ * This class is intended for derivation at the variant layer, which handles the
+ * variant specific functionality of the power supply.
+ */
+    {
+public:
+	IMPORT_C DSDIOPsu(TInt aPsuNum, TInt aMediaChangedNum);
+
+	IMPORT_C TInt DoCreate();
+	IMPORT_C void DoTickService();
+	IMPORT_C TBool IsLocked();
+
+	inline void Lock();
+	inline void Unlock();
+
+	/**
+	 Re-declaring pure-virtual functions from DMMCPsu for clarity
+	 */
+
+	/**
+	 @publishedPartner
+	 @released
+
+	 Controls the power supply.
+	 Implemented by the variant, directly controls the power to the MMC stack.
+	 @param aState A TPBusPsuState enumeration specifying the required state
+	 				 (EPsuOnFull, EPsuOff, EPsuOnCurLimit)
+
+	 */
+	virtual void DoSetState(TPBusPsuState aState) = 0;
+
+	/**
+	 @publishedPartner
+	 @released
+
+	 Checks the PSU's voltage.
+	 Implemented by the variant, uses a mechanism such as a comparator to check
+	 the PSU's voltage level.  Upon reciept of the voltage level (the process may
+	 be asynchronous), the variant calls ReceiveVoltageCheckResult() with KErrNone
+	 if the voltage is OK, KErrGeneral if there is a problem, or KErrNotReady if the
+	 hardware has not yet powered up.
+	 */
+	virtual void DoCheckVoltage() = 0;
+
+	/**
+	 @publishedPartner
+	 @released
+
+	 Fills in the supplied TPBusPsuInfo object with the characteristics of the platform.
+	 Provided at the variant layer.
+	 @param anInfo A reference to a TPBusPsuInfo to be filled in with the PSU characteristics.
+	 */
+    virtual void PsuInfo(TPBusPsuInfo &anInfo) = 0;
+
+private:
+	TBool iIsLocked;	// Prevents the PSU from powering down when ETrue
+	
+    //
+    // Dummy functions to maintain binary compatibility
+    IMPORT_C virtual void Dummy1();
+    IMPORT_C virtual void Dummy2();
+    IMPORT_C virtual void Dummy3();
+    IMPORT_C virtual void Dummy4();
+    //
+    // Reserved members to maintain binary compatibility
+    TInt iReserved[4];
+    };
+    
+#include <drivers/sdio/sdiopsu.inl>
+
+#endif	// #ifndef __SDIOPSU_H__