Index: arch/arm/mach-tegra/nv/include/nvrm_owr.h |
diff --git a/arch/arm/mach-tegra/nv/include/nvrm_owr.h b/arch/arm/mach-tegra/nv/include/nvrm_owr.h |
new file mode 100755 |
index 0000000000000000000000000000000000000000..8aebb28e4ad06b92e09e0ddd40e4d5c8af5fec74 |
--- /dev/null |
+++ b/arch/arm/mach-tegra/nv/include/nvrm_owr.h |
@@ -0,0 +1,179 @@ |
+/* |
+ * Copyright (c) 2009 NVIDIA Corporation. |
+ * All rights 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 the NVIDIA Corporation 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 HOLDER 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. |
+ * |
+ */ |
+ |
+#ifndef INCLUDED_nvrm_owr_H |
+#define INCLUDED_nvrm_owr_H |
+ |
+ |
+#if defined(__cplusplus) |
+extern "C" |
+{ |
+#endif |
+ |
+#include "nvrm_pinmux.h" |
+#include "nvrm_module.h" |
+#include "nvrm_init.h" |
+ |
+#include "nvos.h" |
+#include "nvcommon.h" |
+ |
+/** |
+ * NvRmOwrHandle is an opaque handle for the RM OWR driver. |
+ */ |
+ |
+typedef struct NvRmOwrRec *NvRmOwrHandle; |
+ |
+/** |
+ * @brief Open the OWR driver. This function allocates the |
+ * RM OWR handle. |
+ * |
+ * Assert encountered in debug mode if passed parameter is invalid. |
+ * |
+ * @param hDevice Handle to the Rm device which is required by Rm to acquire |
+ * the resources from RM. |
+ * @param instance Instance of the OWR controller to be opened. Starts from 0. |
+ * @param phOwr Points to the location where the OWR handle shall be stored. |
+ * |
+ * @retval NvSuccess OWR driver opened successfully. |
+ * @retval NvError_InsufficientMemory Indicates that function fails to allocate |
+ * the memory. |
+ */ |
+ |
+ NvError NvRmOwrOpen( |
+ NvRmDeviceHandle hDevice, |
+ NvU32 instance, |
+ NvRmOwrHandle * hOwr ); |
+ |
+/** |
+ * @brief Closes the OWR driver. Disables the clock and invalidates the OWR handle. |
+ * This API never fails. |
+ * |
+ * @param hOwr A handle from NvRmOwrOpen(). If hOwr is NULL, this API does |
+ * nothing. |
+ */ |
+ |
+ void NvRmOwrClose( |
+ NvRmOwrHandle hOwr ); |
+ |
+/** |
+ * Defines OWR transaction flags. |
+ */ |
+ |
+typedef enum |
+{ |
+ |
+ /// OWR read the unique address of the device. |
+ NvRmOwr_ReadAddress = 1, |
+ |
+ /// OWR memory read transaction. |
+ NvRmOwr_MemRead, |
+ |
+ /// OWR memory write transaction. |
+ NvRmOwr_MemWrite, |
+ |
+ /// OWR memory readbyte transaction. |
+ NvRmOwr_ReadByte, |
+ |
+ /// OWR memory writebyte transaction. |
+ NvRmOwr_WriteByte, |
+ |
+ /// OWR memory Check Presence |
+ NvRmOwr_CheckPresence, |
+ |
+ /// OWR readbit transaction. |
+ /// The LSB will be received first. |
+ NvRmOwr_ReadBit, |
+ |
+ /// OWR writebit transaction. |
+ /// The LSB will be transmitted first. |
+ NvRmOwr_WriteBit, |
+ |
+ NvRmOwrTransactionFlags_Num, |
+ NvRmOwrTransactionFlags_Force32 = 0x7FFFFFFF |
+} NvRmOwrTransactionFlags; |
+ |
+/** |
+ * Defines OWR transaction info structure. Contains details of the transaction. |
+ */ |
+ |
+typedef struct NvRmOwrTransactionInfoRec |
+{ |
+ |
+ /// Transaction type flags. See @NvRmOwrTransactionFlags |
+ NvU32 Flags; |
+ |
+ /// Offset in the OWR device where Memory read/write operations need to be performed. |
+ NvU32 Offset; |
+ |
+ /// Number of bytes to read/write. |
+ NvU32 NumBytes; |
+ |
+ /// OWR device ROM Id. This can be zero, if there is a single OWR device on the bus. |
+ NvU32 Address; |
+} NvRmOwrTransactionInfo; |
+ |
+/** |
+ * @brief Does multiple OWR transactions. Each transaction can be a read or write. |
+ * |
+ * @param hOwr Handle to the OWR channel. |
+ * @param OwrPinMap for OWR controllers which are being multiplexed across |
+ * multiple pin mux configurations, this specifies which pin mux configuration |
+ * should be used for the transaction. Must be 0 when the ODM pin mux query |
+ * specifies a non-multiplexed configuration for the controller. |
+ * @param Data Pointer to the buffer for all the required read, write transactions. |
+ * @param DataLength Length of the data buffer. |
+ * @param Transcations Pointer to the NvRmOwrTransactionInfo structure. |
+ * See @NvRmOwrTransactionInfo |
+ * @param NumOfTransactions Number of transcations |
+ * |
+ * |
+ * @retval NvSuccess OWR Transaction succeeded. |
+ * @retval NvError_NotSupported Indicates assumption on parameter values violated. |
+ * @retval NvError_InvalidState Indicates that the last read or write call is not |
+ * completed. |
+ * @retval NvError_ControllerBusy Indicates controller is presently busy with an |
+ * OWR transaction. |
+ */ |
+ |
+ NvError NvRmOwrTransaction( |
+ NvRmOwrHandle hOwr, |
+ NvU32 OwrPinMap, |
+ NvU8 * Data, |
+ NvU32 DataLen, |
+ NvRmOwrTransactionInfo * Transaction, |
+ NvU32 NumOfTransactions ); |
+ |
+#if defined(__cplusplus) |
+} |
+#endif |
+ |
+#endif |