Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2938)

Unified Diff: arch/arm/mach-tegra/nv/include/nvddk_kbc.h

Issue 3256004: [ARM] tegra: add nvos/nvrm/nvmap drivers (Closed) Base URL: ssh://git@gitrw.chromium.org/kernel.git
Patch Set: remove ap15 headers Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « arch/arm/mach-tegra/nv/include/nvcommon.h ('k') | arch/arm/mach-tegra/nv/include/nvddk_nand.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: arch/arm/mach-tegra/nv/include/nvddk_kbc.h
diff --git a/arch/arm/mach-tegra/nv/include/nvddk_kbc.h b/arch/arm/mach-tegra/nv/include/nvddk_kbc.h
new file mode 100644
index 0000000000000000000000000000000000000000..153a569fa736f05bb6d0610dcfcd2f0bbfd5757b
--- /dev/null
+++ b/arch/arm/mach-tegra/nv/include/nvddk_kbc.h
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2007-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.
+ *
+ */
+
+/**
+ * @file
+ * <b>NVIDIA Driver Development Kit:
+ * Key Board Controller (KBC) Interface</b>
+ *
+ * @b Description: Declares interface for the KBC DDK module.
+ *
+ */
+
+#ifndef INCLUDED_NVDDK_KBC_H
+#define INCLUDED_NVDDK_KBC_H
+
+
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
+
+#include "nvrm_init.h"
+#include "nvcommon.h"
+#include "nvos.h"
+
+/**
+ * @defgroup nvddk_kbc Keyboard Controller Interface
+ *
+ * This is the interface to a hardware keyboard controller.
+ * This keeps track of the keys that are pressed. Only one
+ * client is allowed at a time.
+ *
+ * @ingroup nvddk_modules
+ * @{
+ */
+
+/**
+ * An opaque context to the NvDdkKbcRec interface.
+ */
+typedef struct NvDdkKbcRec *NvDdkKbcHandle;
+
+typedef enum
+{
+
+ /// Indicates the key press event.
+ NvDdkKbcKeyEvent_KeyPress = 1,
+
+ /// Indicates the key release event.
+ NvDdkKbcKeyEvent_KeyRelease,
+
+ /// Indicates key event none.
+ NvDdkKbcKeyEvent_None,
+ NvDdkKbcKeyEvent_Num,
+ /// Ignore -- Forces compilers to make 32-bit enums.
+ NvDdkKbcKeyEvent_Force32 = 0x7FFFFFFF
+} NvDdkKbcKeyEvent;
+
+/**
+ * Initializes the keyboard controller.
+ * It allocates resources such as memory, mutexes, and sets up the
+ * KBC handle.
+ *
+ * @param hDevice Handle to the Rm device that is required by NvDDK
+ * to acquire the resources from RM.
+ * @param phKbc A pointer to the KBC handle where the
+ * allocated handle is stored. The memory for the handle is
+ * allocated inside this API.
+ *
+ * @retval NvSuccess Open is successful.
+ */
+ NvError NvDdkKbcOpen(
+ NvRmDeviceHandle hDevice,
+ NvDdkKbcHandle * phKbc );
+
+/**
+ * Releases the KBC handle and releases any resources that
+ * are acquired during the NvDdkKbcOpen() call.
+ *
+ * @param hKbc A KBC handle that is allocated by NvDdkKbcOpen().
+ */
+
+ void NvDdkKbcClose(
+ NvDdkKbcHandle hKbc );
+
+/**
+ * Enables the keyboard controller. This must be called once to
+ * receive the key events.
+ *
+ * @param hKbc A KBC handle that is allocated by NvDdkKbcOpen().
+ * @param SemaphoreId Semaphore to be signaled on any key event.
+ *
+ * @retval NvSuccess KBC is enabled successfully.
+ */
+ NvError NvDdkKbcStart(
+ NvDdkKbcHandle hKbc,
+ NvOsSemaphoreHandle SemaphoreId );
+
+/**
+ * Disables the keyboard controller. This must be called to
+ * stop receiving the key events.
+ *
+ * @param hKbc A KBC handle that is allocated by NvDdkKbcOpen().
+ *
+ * @retval NvSuccess KBC is disabled successfully.
+ */
+ NvError NvDdkKbcStop(
+ NvDdkKbcHandle hKbc );
+
+/**
+ * Sets the repeat time period at which rows must be scanned for key
+ * events.
+ *
+ * @param hKbc A KBC handle that is allocated by NvDdkKbcOpen().
+ * @param RepeatTimeMs Repeat time period in milliseconds.
+ */
+ void NvDdkKbcSetRepeatTime(
+ NvDdkKbcHandle hKbc,
+ NvU32 RepeatTimeMs );
+
+/**
+ * Gets the key events. After calling this function, the caller must sleep
+ * for the amount of time returned by this function before calling it again.
+ * If the return value is 0, then the client must wait on sema before
+ * calling this function again.
+ *
+ * @param hKbc A KBC handle that is allocated by NvDdkKbcOpen().
+ * @param pKeyCount The returned key events count.
+ * @param pKeyCodes The returned key codes.
+ * @param pKeyEvents The returned key events( press/release).
+ *
+ * @return Wait time in milliseconds.
+ */
+ NvU32 NvDdkKbcGetKeyEvents(
+ NvDdkKbcHandle hKbc,
+ NvU32 * pKeyCount,
+ NvU32 * pKeyCodes,
+ NvDdkKbcKeyEvent * pKeyEvents );
+
+/**
+ * Part of static power management, the client must call this API to put
+ * the KBC controller into suspend state. This API is a mechanism for the
+ * client to augment OS power management policy. The h/w context of the KBC
+ * controller is saved, clock is disabled, and power is also disabled
+ * to the controller.
+ *
+ * @param hKbc A KBC handle that is allocated by NvDdkKbcOpen().
+ * @retval NvSuccess If successful, or the appropriate error code.
+ */
+ NvError NvDdkKbcSuspend(
+ NvDdkKbcHandle hKbc );
+
+/**
+ * Part of static power management, the client must call this API to
+ * wake up the KBC controller from a suspended state. This API is
+ * a mechanism for the client to augment OS power management policy.
+ * The h/w context of the KBC controller is restored, clock is enabled,
+ * and power is also enabled to the controller.
+ *
+ * @param hKbc A KBC handle that is allocated by NvDdkKbcOpen().
+ * @retval NvSuccess If successful, or the appropriate error code.
+ */
+ NvError NvDdkKbcResume(
+ NvDdkKbcHandle hKbc );
+
+#if defined(__cplusplus)
+}
+#endif
+
+/** @} */
+#endif
« no previous file with comments | « arch/arm/mach-tegra/nv/include/nvcommon.h ('k') | arch/arm/mach-tegra/nv/include/nvddk_nand.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698