| Index: arch/arm/mach-tegra/nv/include/nvrm_module.h
|
| diff --git a/arch/arm/mach-tegra/nv/include/nvrm_module.h b/arch/arm/mach-tegra/nv/include/nvrm_module.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7fed6a90268e40fd8120457e10ace4bd3ddea474
|
| --- /dev/null
|
| +++ b/arch/arm/mach-tegra/nv/include/nvrm_module.h
|
| @@ -0,0 +1,745 @@
|
| +/*
|
| + * 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_module_H
|
| +#define INCLUDED_nvrm_module_H
|
| +
|
| +
|
| +#if defined(__cplusplus)
|
| +extern "C"
|
| +{
|
| +#endif
|
| +
|
| +#include "nvrm_init.h"
|
| +
|
| +#include "nvrm_drf.h"
|
| +
|
| +/**
|
| + * SOC hardware controller class identifiers.
|
| + */
|
| +
|
| +typedef enum
|
| +{
|
| +
|
| + /// Specifies an invalid module ID.
|
| + NvRmModuleID_Invalid = 0,
|
| +
|
| + /// Specifies the application processor.
|
| + NvRmModuleID_Cpu,
|
| +
|
| + /// Specifies the Audio Video Processor
|
| + NvRmModuleID_Avp,
|
| +
|
| + /// Specifies the Vector Co Processor
|
| + NvRmModuleID_Vcp,
|
| +
|
| + /// Specifies the display controller.
|
| + NvRmModuleID_Display,
|
| +
|
| + /// Specifies the IDE controller.
|
| + NvRmModuleID_Ide,
|
| +
|
| + /// Graphics Host
|
| + NvRmModuleID_GraphicsHost,
|
| +
|
| + /// Specifies 2D graphics controller
|
| + NvRmModuleID_2D,
|
| +
|
| + /// Specifies 3D graphics controller
|
| + NvRmModuleID_3D,
|
| +
|
| + /// Specifies VG graphics controller
|
| + NvRmModuleID_VG,
|
| +
|
| + /// NV epp (encoder pre-processor)
|
| + NvRmModuleID_Epp,
|
| +
|
| + /// NV isp (image signal processor)
|
| + NvRmModuleID_Isp,
|
| +
|
| + /// NV vi (video input)
|
| + NvRmModuleID_Vi,
|
| +
|
| + /// Specifies USB2 OTG controller
|
| + NvRmModuleID_Usb2Otg,
|
| +
|
| + /// Specifies the I2S controller.
|
| + NvRmModuleID_I2s,
|
| +
|
| + /// Specifies the Pulse Width Modulator controller.
|
| + NvRmModuleID_Pwm,
|
| +
|
| + /// Specifies the Three Wire controller.
|
| + NvRmModuleID_Twc,
|
| +
|
| + /// HSMMC controller
|
| + NvRmModuleID_Hsmmc,
|
| +
|
| + /// Specifies SDIO controller
|
| + NvRmModuleID_Sdio,
|
| +
|
| + /// Specifies the NAND controller.
|
| + NvRmModuleID_Nand,
|
| +
|
| + /// Specifies the I2C controller.
|
| + NvRmModuleID_I2c,
|
| +
|
| + /// Specifies the Sony Phillips Digital Interface Format controller.
|
| + NvRmModuleID_Spdif,
|
| +
|
| + /// Specifies the %UART controller.
|
| + NvRmModuleID_Uart,
|
| +
|
| + /// Specifies the timer controller.
|
| + NvRmModuleID_Timer,
|
| +
|
| + /// Specifies the timer controller microsecond counter.
|
| + NvRmModuleID_TimerUs,
|
| +
|
| + /// Real time clock controller.
|
| + NvRmModuleID_Rtc,
|
| +
|
| + /// Specifies the Audio Codec 97 controller.
|
| + NvRmModuleID_Ac97,
|
| +
|
| + /// Specifies Audio Bit Stream Engine
|
| + NvRmModuleID_BseA,
|
| +
|
| + /// Specifies Video decoder
|
| + NvRmModuleID_Vde,
|
| +
|
| + /// Specifies Video encoder (Motion Picture Encoder)
|
| + NvRmModuleID_Mpe,
|
| +
|
| + /// Specifies Camera Serial Interface
|
| + NvRmModuleID_Csi,
|
| +
|
| + /// Specifies High-Bandwidth Digital Content Protection interface
|
| + NvRmModuleID_Hdcp,
|
| +
|
| + /// Specifies High definition Multimedia Interface
|
| + NvRmModuleID_Hdmi,
|
| +
|
| + /// Specifies MIPI baseband controller
|
| + NvRmModuleID_Mipi,
|
| +
|
| + /// Specifies TV out controller
|
| + NvRmModuleID_Tvo,
|
| +
|
| + /// Specifies Serial Display
|
| + NvRmModuleID_Dsi,
|
| +
|
| + /// Specifies Dynamic Voltage Controller
|
| + NvRmModuleID_Dvc,
|
| +
|
| + /// Specifies the eXtended I/O controller.
|
| + NvRmModuleID_Xio,
|
| +
|
| + /// SPI controller
|
| + NvRmModuleID_Spi,
|
| +
|
| + /// Specifies SLink controller
|
| + NvRmModuleID_Slink,
|
| +
|
| + /// Specifies FUSE controller
|
| + NvRmModuleID_Fuse,
|
| +
|
| + /// Specifies KFUSE controller
|
| + NvRmModuleID_KFuse,
|
| +
|
| + /// Specifies EthernetMIO controller
|
| + NvRmModuleID_Mio,
|
| +
|
| + /// Specifies keyboard controller
|
| + NvRmModuleID_Kbc,
|
| +
|
| + /// Specifies Pmif controller
|
| + NvRmModuleID_Pmif,
|
| +
|
| + /// Specifies Unified Command Queue
|
| + NvRmModuleID_Ucq,
|
| +
|
| + /// Specifies Event controller
|
| + NvRmModuleID_EventCtrl,
|
| +
|
| + /// Specifies Flow controller
|
| + NvRmModuleID_FlowCtrl,
|
| +
|
| + /// Resource Semaphore
|
| + NvRmModuleID_ResourceSema,
|
| +
|
| + /// Arbitration Semaphore
|
| + NvRmModuleID_ArbitrationSema,
|
| +
|
| + /// Specifies Arbitration Priority
|
| + NvRmModuleID_ArbPriority,
|
| +
|
| + /// Specifies Cache Memory Controller
|
| + NvRmModuleID_CacheMemCtrl,
|
| +
|
| + /// Specifies very fast infra red controller
|
| + NvRmModuleID_Vfir,
|
| +
|
| + /// Specifies Exception Vector
|
| + NvRmModuleID_ExceptionVector,
|
| +
|
| + /// Specifies Boot Strap Controller
|
| + NvRmModuleID_BootStrap,
|
| +
|
| + /// Specifies System Statistics Monitor controller
|
| + NvRmModuleID_SysStatMonitor,
|
| +
|
| + /// Specifies System
|
| + NvRmModuleID_Cdev,
|
| +
|
| + /// Misc module ID which contains registers for PInmux/DAP control etc.
|
| + NvRmModuleID_Misc,
|
| +
|
| + // PCIE Device attached to AP20
|
| + NvRmModuleID_PcieDevice,
|
| +
|
| + // One-wire interface controller
|
| + NvRmModuleID_OneWire,
|
| +
|
| + // Sync NOR controller
|
| + NvRmModuleID_SyncNor,
|
| +
|
| + // NOR Memory aperture
|
| + NvRmModuleID_Nor,
|
| +
|
| + // AVP UCQ module.
|
| + NvRmModuleID_AvpUcq,
|
| +
|
| + /// clock and reset controller
|
| + NvRmPrivModuleID_ClockAndReset,
|
| +
|
| + /// interrupt controller
|
| + NvRmPrivModuleID_Interrupt,
|
| +
|
| + /// interrupt controller Arbitration Semaphore grant registers
|
| + NvRmPrivModuleID_InterruptArbGnt,
|
| +
|
| + /// interrupt controller DMA Tx/Rx DRQ registers
|
| + NvRmPrivModuleID_InterruptDrq,
|
| +
|
| + /// interrupt controller special SW interrupt
|
| + NvRmPrivModuleID_InterruptSw,
|
| +
|
| + /// interrupt controller special CPU interrupt
|
| + NvRmPrivModuleID_InterruptCpu,
|
| +
|
| + /// Apb Dma controller
|
| + NvRmPrivModuleID_ApbDma,
|
| +
|
| + /// Apb Dma Channel
|
| + NvRmPrivModuleID_ApbDmaChannel,
|
| +
|
| + /// Gpio controller
|
| + NvRmPrivModuleID_Gpio,
|
| +
|
| + /// Pin-Mux Controller
|
| + NvRmPrivModuleID_PinMux,
|
| +
|
| + /// memory configuation
|
| + NvRmPrivModuleID_Mselect,
|
| +
|
| + /// memory controller (internal memory and memory arbitration)
|
| + NvRmPrivModuleID_MemoryController,
|
| +
|
| + /// external memory (ddr ram, etc.)
|
| + NvRmPrivModuleID_ExternalMemoryController,
|
| +
|
| + /// Processor Id
|
| + NvRmPrivModuleID_ProcId,
|
| +
|
| + /// Entire System (used for system reset)
|
| + NvRmPrivModuleID_System,
|
| +
|
| + /* CC device id (not sure what it actually does, but it is needed to
|
| + * set the mem_init_done bit so that memory works).
|
| + */
|
| + NvRmPrivModuleID_CC,
|
| +
|
| + /// AHB Arbitration Control
|
| + NvRmPrivModuleID_Ahb_Arb_Ctrl,
|
| +
|
| + /// AHB Gizmo Control
|
| + NvRmPrivModuleID_Ahb_Gizmo_Ctrl,
|
| +
|
| + /// External memory
|
| + NvRmPrivModuleID_ExternalMemory,
|
| +
|
| + /// Internal memory
|
| + NvRmPrivModuleID_InternalMemory,
|
| +
|
| + /// TCRAM
|
| + NvRmPrivModuleID_Tcram,
|
| +
|
| + /// IRAM
|
| + NvRmPrivModuleID_Iram,
|
| +
|
| + /// GART
|
| + NvRmPrivModuleID_Gart,
|
| +
|
| + /// MIO/EXIO
|
| + NvRmPrivModuleID_Mio_Exio,
|
| +
|
| + /* External PMU */
|
| + NvRmPrivModuleID_PmuExt,
|
| +
|
| + /* One module ID for all peripherals which includes cache controller,
|
| + * SCU and interrupt controller */
|
| + NvRmPrivModuleID_ArmPerif,
|
| + NvRmPrivModuleID_ArmInterruptctrl,
|
| +
|
| + /* PCIE Root Port internally is made up of 3 major blocks. These 3 blocks
|
| + * have seperate reset and clock domains. So, the driver treats these
|
| + *
|
| + * AFI is the wrapper on the top of the PCI core.
|
| + * PCIe refers to the core PCIe state machine module.
|
| + * PcieXclk refers to the transmit/receive logic which runs at different
|
| + * clock and have different reset.
|
| + * */
|
| + NvRmPrivModuleID_Afi,
|
| + NvRmPrivModuleID_Pcie,
|
| + NvRmPrivModuleID_PcieXclk,
|
| +
|
| + /* PL310 */
|
| + NvRmPrivModuleID_Pl310,
|
| +
|
| + /*
|
| + * AHB re-map aperture seen from AVP. Use this aperture for AVP to have
|
| + * uncached access to SDRAM.
|
| + */
|
| + NvRmPrivModuleID_AhbRemap,
|
| + NvRmModuleID_Num,
|
| + NvRmModuleID_Force32 = 0x7FFFFFFF
|
| +} NvRmModuleID;
|
| +
|
| +/* FIXME
|
| + * Hack to make the existing drivers work.
|
| + * NvRmPriv* should be renamed to NvRm*
|
| + */
|
| +#define NvRmPrivModuleID_Num NvRmModuleID_Num
|
| +
|
| +/**
|
| + * Multiple module instances are handled by packing the instance number into
|
| + * the high bits of the module id. This avoids ponderous apis with both
|
| + * module ids and instance numbers.
|
| + */
|
| +
|
| +/**
|
| + * Module bitfields that are compatible with the NV_DRF macros.
|
| + */
|
| +#define NVRM_MODULE_0 (0x0)
|
| +#define NVRM_MODULE_0_ID_RANGE 15:0
|
| +#define NVRM_MODULE_0_INSTANCE_RANGE 19:16
|
| +#define NVRM_MODULE_0_BAR_RANGE 23:20
|
| +
|
| +/**
|
| + * Create a module id with a given instance.
|
| + */
|
| +#define NVRM_MODULE_ID( id, instance ) \
|
| + (NvRmModuleID)( \
|
| + NV_DRF_NUM( NVRM, MODULE, ID, (id) ) \
|
| + | NV_DRF_NUM( NVRM, MODULE, INSTANCE, (instance) ) )
|
| +
|
| +/**
|
| + * Get the actual module id.
|
| + */
|
| +#define NVRM_MODULE_ID_MODULE( id ) \
|
| + NV_DRF_VAL( NVRM, MODULE, ID, (id) )
|
| +
|
| +/**
|
| + * Get the instance number of the module id.
|
| + */
|
| +#define NVRM_MODULE_ID_INSTANCE( id ) \
|
| + NV_DRF_VAL( NVRM, MODULE, INSTANCE, (id) )
|
| +
|
| +/**
|
| + * Get the bar number for the module.
|
| + */
|
| +#define NVRM_MODULE_ID_BAR( id ) \
|
| + NV_DRF_VAL( NVRM, MODULE, BAR, (id) )
|
| +
|
| +/**
|
| + * Module Information structure
|
| + */
|
| +
|
| +typedef struct NvRmModuleInfoRec
|
| +{
|
| + NvU32 Instance;
|
| + NvU32 Bar;
|
| + NvRmPhysAddr BaseAddress;
|
| + NvU32 Length;
|
| +} NvRmModuleInfo;
|
| +
|
| +/**
|
| + * Returns list of available module instances and their information.
|
| + *
|
| + * @param hRmDeviceHandle The RM device handle
|
| + * @param Module The module for which to get the number of instances.
|
| + * @param pNum Unsigned integer indicating the number of module information
|
| + * structures in the array pModuleInfo.
|
| + * @param pModuleInfo A pointer to an array of module information structure,
|
| + * where the size of array is determined by the value in pNum.
|
| + *
|
| + * @retval NvSuccess If successful, or the appropriate error.
|
| + */
|
| +
|
| + NvError NvRmModuleGetModuleInfo(
|
| + NvRmDeviceHandle hDevice,
|
| + NvRmModuleID module,
|
| + NvU32 * pNum,
|
| + NvRmModuleInfo * pModuleInfo );
|
| +
|
| +/**
|
| + * Returns a physical address associated with a hardware module.
|
| + * (To be depcreated and replaced by NvRmModuleGetModuleInfo)
|
| + *
|
| + * @param hRmDeviceHandle The RM device handle
|
| + * @param Module the module for which to get addresses.
|
| + * @param pBaseAddress a pointer to the beginning of the
|
| + * hardware register bank is stored here.
|
| + * @param pSize the length of the aperture in bytes is stored
|
| + * here.
|
| + */
|
| +
|
| + void NvRmModuleGetBaseAddress(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvRmModuleID Module,
|
| + NvRmPhysAddr * pBaseAddress,
|
| + NvU32 * pSize );
|
| +
|
| +/**
|
| + * Returns the number of instances of a particular hardware module.
|
| + * (To be depcreated and replaced by NvRmModuleGetModuleInfo)
|
| + *
|
| + * @param hRmDeviceHandle The RM device handle
|
| + * @param Module The module for which to get the number of instances.
|
| + *
|
| + * @returns Number of instances.
|
| + */
|
| +
|
| + NvU32 NvRmModuleGetNumInstances(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvRmModuleID Module );
|
| +
|
| +/**
|
| + * Resets the module controller hardware.
|
| + *
|
| + * @param hRmDeviceHandle The RM device handle
|
| + * @param Module The module to reset
|
| + */
|
| +
|
| + void NvRmModuleReset(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvRmModuleID Module );
|
| +
|
| +/**
|
| + * Resets the controller with an option to hold the controller in the reset.
|
| + *
|
| + * @param hRmDeviceHandle Rm device handle
|
| + * @param Module The module to be reset
|
| + * @param bHold If NV_TRUE hold the module in reset, If NV_TRUE pulse the
|
| + * reset.
|
| + *
|
| + * So, to keep the module in reset and do something
|
| + * NvRmModuleResetWithHold(hRm, ModId, NV_TRUE)
|
| + * ... update some registers
|
| + * NvRmModuleResetWithHold(hRm, ModId, NV_FALSE)
|
| + */
|
| +
|
| + void NvRmModuleResetWithHold(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvRmModuleID Module,
|
| + NvBool bHold );
|
| +
|
| +/**
|
| + * DDK capability encapsualtion. See NvRmModuleGetCapabilities().
|
| + */
|
| +
|
| +typedef struct NvRmModuleCapabilityRec
|
| +{
|
| + NvU8 MajorVersion;
|
| + NvU8 MinorVersion;
|
| + NvU8 EcoLevel;
|
| + void* Capability;
|
| +} NvRmModuleCapability;
|
| +
|
| +/**
|
| + * Returns a pointer to a class-specific capabilities structure.
|
| + *
|
| + * Each DDK will supply a list of NvRmCapability structures sorted by module
|
| + * Minor and Eco levels (assuming that no DDK supports two Major versions
|
| + * simulatenously). The last cap in the list that matches the hardware's
|
| + * version and eco level will be returned. If the current hardware's eco
|
| + * level is higher than the given module capability list, the last module
|
| + * capability with the highest eco level (the last in the list) will be
|
| + * returned.
|
| + *
|
| + * @param hRmDeviceHandle The RM device handle
|
| + * @param Module the target module
|
| + * @param pCaps Pointer to the capability list
|
| + * @param NumCaps The number of capabilities in the list
|
| + * @param Capability Out parameter: the cap that maches the current hardware
|
| + *
|
| + * Example usage:
|
| + *
|
| + * typedef struct FakeDdkCapRec
|
| + * {
|
| + * NvU32 FeatureBits;
|
| + * } FakeDdkCap;
|
| + *
|
| + * FakeDdkCap cap1;
|
| + * FakeDdkCap cap2;
|
| + * FakeDdkCap *cap;
|
| + * NvRmModuleCapability caps[] =
|
| + * { { 1, 0, 0, &fcap1 },
|
| + * { 1, 1, 0, &fcap2 },
|
| + * };
|
| + * cap1.bits = ...;
|
| + * cap2.bits = ...;
|
| + * err = NvRmModuleGetCapabilities( hDevice, NvRmModuleID_FakeDDK, caps, 2,
|
| + * (void *)&cap );
|
| + * ...
|
| + * if( cap->FeatureBits & FAKEDKK_SOME_FEATURE )
|
| + * {
|
| + * ...
|
| + * }
|
| + */
|
| +
|
| + NvError NvRmModuleGetCapabilities(
|
| + NvRmDeviceHandle hDeviceHandle,
|
| + NvRmModuleID Module,
|
| + NvRmModuleCapability * pCaps,
|
| + NvU32 NumCaps,
|
| + void* * Capability );
|
| +
|
| +/**
|
| + * @brief Queries for the device unique ID.
|
| + *
|
| + * @pre Not callable from early boot.
|
| + *
|
| + * @param pId A pointer to an area of caller-allocated memory to hold the
|
| + * unique ID.
|
| + * @param pIdSize an input, a pointer to a variable containing the size of
|
| + * the caller-allocated memory to hold the unique ID pointed to by \em pId.
|
| + * Upon successful return, this value is updated to reflect the actual
|
| + * size of the unique ID returned in \em pId.
|
| + *
|
| + * @retval ::NvError_Success \em pId points to the unique ID and \em pIdSize
|
| + * points to the actual size of the ID.
|
| + * @retval ::NvError_BadParameter
|
| + * @retval ::NvError_NotSupported
|
| + * @retval ::NvError_InsufficientMemory
|
| + */
|
| +
|
| + NvError NvRmQueryChipUniqueId(
|
| + NvRmDeviceHandle hDevHandle,
|
| + NvU32 IdSize,
|
| + void* pId );
|
| +
|
| +/**
|
| + * @brief Returns random bytes using hardware sources of entropy
|
| + *
|
| + * @param hRmDeviceHandle The RM device handle
|
| + * @param NumBytes Number of random bytes to return in pBytes.
|
| + * @param pBytes Array where the random bytes should be stored
|
| + *
|
| + * @retval ::NvError_Success
|
| + * @retval ::NvError_BadParameter
|
| + * @retval ::NvError_NotSupported If no hardware entropy source is available
|
| + */
|
| +
|
| + NvError NvRmGetRandomBytes(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvU32 NumBytes,
|
| + void* pBytes );
|
| +
|
| +/*
|
| + * Module access functions below.
|
| + * NOTE: Rm doesn't gaurantee access to all the modules as it only maps a few
|
| + * modules.
|
| + * This is not meant to be a primary mechanism to access the module registers.
|
| + * Clients should map their register address and access the registers.
|
| + */
|
| +
|
| +/**
|
| + * NV_REGR: register read from hardware.
|
| + *
|
| + * @param rm The resource manager istance
|
| + * @param aperture The register aperture
|
| + * @param instance The module instance
|
| + * @param offset The offset inside the aperture
|
| + *
|
| + * Note that the aperture comes from the RM's private module id enumeration,
|
| + * which is a superset of the public enumeration from nvrm_module.h.
|
| + */
|
| +
|
| +/**
|
| + * NV_REGW: register write to hardware.
|
| + *
|
| + * @param rm The resource manager istance
|
| + * @param aperture The register aperture
|
| + * @param instance The module instance
|
| + * @param offset The offset inside the aperture
|
| + * @param data The data to write
|
| + *
|
| + * see the note regarding apertures for NV_REGR.
|
| + */
|
| +#define NV_REGR(rm, aperture, instance, offset) \
|
| + NvRegr((rm),(NvRmModuleID)NVRM_MODULE_ID((aperture),(instance)),(offset))
|
| +
|
| +#define NV_REGW(rm, aperture, instance, offset, data) \
|
| + NvRegw((rm),(NvRmModuleID)NVRM_MODULE_ID((aperture),(instance)),(offset),(data))
|
| +
|
| +
|
| + NvU32 NvRegr(
|
| + NvRmDeviceHandle hDeviceHandle,
|
| + NvRmModuleID aperture,
|
| + NvU32 offset );
|
| +
|
| + void NvRegw(
|
| + NvRmDeviceHandle hDeviceHandle,
|
| + NvRmModuleID aperture,
|
| + NvU32 offset,
|
| + NvU32 data );
|
| +
|
| +/**
|
| + * NV_REGR_MULT: read multiple registers from hardware
|
| + *
|
| + * @param rm The resource manager istance
|
| + * @param aperture The register aperture
|
| + * @param instance The module instance
|
| + * @param num The number of registers
|
| + * @param offsets The register offsets
|
| + * @param values The register values
|
| + */
|
| +
|
| +/**
|
| + * NV_REGW_MULT: write multiple registers from hardware
|
| + *
|
| + * @param rm The resource manager istance
|
| + * @param aperture The register aperture
|
| + * @param instance The module instance
|
| + * @param num The number of registers
|
| + * @param offsets The register offsets
|
| + * @param values The register values
|
| + */
|
| +
|
| +/**
|
| + * NV_REGW_BLOCK: write a block of registers to hardware
|
| + *
|
| + * @param rm The resource manager istance
|
| + * @param aperture The register aperture
|
| + * @param instance The module instance
|
| + * @param num The number of registers
|
| + * @param offset The beginning register offset
|
| + * @param values The register values
|
| + */
|
| +
|
| +/**
|
| + * NV_REGR_BLOCK: read a block of registers from hardware
|
| + *
|
| + * @param rm The resource manager istance
|
| + * @param aperture The register aperture
|
| + * @param instance The module instance
|
| + * @param num The number of registers
|
| + * @param offset The beginning register offset
|
| + * @param values The register values
|
| + */
|
| +
|
| +#define NV_REGR_MULT(rm, aperture, instance, num, offsets, values) \
|
| + NvRegrm((rm),(NvRmModuleID)NVRM_MODULE_ID((aperture),(instance)),(num),(offsets),(values))
|
| +
|
| +#define NV_REGW_MULT(rm, aperture, instance, num, offsets, values) \
|
| + NvRegwm((rm),(NvRmModuleID)NVRM_MODULE_ID((aperture),(instance)),(num),(offsets),(values))
|
| +
|
| +#define NV_REGW_BLOCK(rm, aperture, instance, num, offset, values) \
|
| + NvRegwb((rm),(NvRmModuleID)NVRM_MODULE_ID((aperture),(instance)),(num),(offset),(values))
|
| +
|
| +#define NV_REGR_BLOCK(rm, aperture, instance, num, offset, values) \
|
| + NvRegrb((rm),(NvRmModuleID)NVRM_MODULE_ID((aperture),(instance)),(num),(offset),(values))
|
| +
|
| + void NvRegrm(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvRmModuleID aperture,
|
| + NvU32 num,
|
| + const NvU32 * offsets,
|
| + NvU32 * values );
|
| +
|
| + void NvRegwm(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvRmModuleID aperture,
|
| + NvU32 num,
|
| + const NvU32 * offsets,
|
| + const NvU32 * values );
|
| +
|
| + void NvRegwb(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvRmModuleID aperture,
|
| + NvU32 num,
|
| + NvU32 offset,
|
| + const NvU32 * values );
|
| +
|
| + void NvRegrb(
|
| + NvRmDeviceHandle hRmDeviceHandle,
|
| + NvRmModuleID aperture,
|
| + NvU32 num,
|
| + NvU32 offset,
|
| + NvU32 * values );
|
| +
|
| +#define NV_REGR08(rm, aperture, instance, offset) \
|
| + NvRegr08((rm),(NvRmModuleID)NVRM_MODULE_ID((aperture),(instance)),(offset))
|
| +
|
| +#define NV_REGW08(rm, aperture, instance, offset, data) \
|
| + NvRegw08((rm),(NvRmModuleID)NVRM_MODULE_ID((aperture),(instance)),(offset),(data))
|
| +
|
| + NvU8 NvRegr08(
|
| + NvRmDeviceHandle hDeviceHandle,
|
| + NvRmModuleID aperture,
|
| + NvU32 offset );
|
| +
|
| + void NvRegw08(
|
| + NvRmDeviceHandle rm,
|
| + NvRmModuleID aperture,
|
| + NvU32 offset,
|
| + NvU8 data );
|
| +
|
| +/** @} */
|
| +
|
| +#if defined(__cplusplus)
|
| +}
|
| +#endif
|
| +
|
| +#endif
|
|
|