| Index: arch/arm/mach-tegra/nv/include/nvodm_query.h
|
| diff --git a/arch/arm/mach-tegra/nv/include/nvodm_query.h b/arch/arm/mach-tegra/nv/include/nvodm_query.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a7656cfc7cae19f99041f73a8e9a1d3a4888791c
|
| --- /dev/null
|
| +++ b/arch/arm/mach-tegra/nv/include/nvodm_query.h
|
| @@ -0,0 +1,1382 @@
|
| +/*
|
| + * 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 Tegra ODM Kit:
|
| + * ODM Query API</b>
|
| + *
|
| + * @b Description: Defines a set of query functions for ODMs that may be
|
| + * accessed at boot-time, runtime, or anywhere in between.
|
| + */
|
| +
|
| +#ifndef INCLUDED_NVODM_QUERY_H
|
| +#define INCLUDED_NVODM_QUERY_H
|
| +
|
| +/**
|
| + * @defgroup groupODMQueryAPI ODM Query API
|
| + * @ingroup nvodm_query
|
| + * @{
|
| + */
|
| +
|
| +#include "nvcommon.h"
|
| +#include "nvodm_modules.h"
|
| +
|
| +#if defined(__cplusplus)
|
| +extern "C"
|
| +{
|
| +#endif
|
| +
|
| +/**
|
| + * Defines the memory types for which configuration data may be retrieved.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies SDRAM memory; target memory for runtime image and heap.
|
| + NvOdmMemoryType_Sdram,
|
| +
|
| + /// Specifies NAND ROM; storage (may include the bootloader).
|
| + NvOdmMemoryType_Nand,
|
| +
|
| + /// Specifies NOR ROM; storage (may include the bootloader).
|
| + NvOdmMemoryType_Nor,
|
| +
|
| + /// Specifies EEPROM; storage (may include the bootloader).
|
| + NvOdmMemoryType_I2CEeprom,
|
| +
|
| + /// Specifies HSMMC NAND; storage (may include the bootloader).
|
| + NvOdmMemoryType_Hsmmc,
|
| +
|
| + /// Memory mapped I/O device.
|
| + NvOdmMemoryType_Mio,
|
| +
|
| + /// Specifies DPRAM memory
|
| + NvOdmMemoryType_Dpram,
|
| +
|
| + NvOdmMemoryType_Num,
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmMemoryType_Force32 = 0x7FFFFFFF
|
| +} NvOdmMemoryType;
|
| +
|
| +/**
|
| + * Defines the devices that can serve as the debug console.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies that the debug console is undefined.
|
| + NvOdmDebugConsole_Undefined,
|
| +
|
| + /// Specifies that no debug console is to be used.
|
| + NvOdmDebugConsole_None,
|
| +
|
| + /// Specifies that the ARM Debug Communication Channel
|
| + /// (Dcc) port is the debug console
|
| + NvOdmDebugConsole_Dcc,
|
| +
|
| + /// Specifies that UART-A is the debug console.
|
| + NvOdmDebugConsole_UartA,
|
| +
|
| + /// Specifies that UART-B is the debug console.
|
| + NvOdmDebugConsole_UartB,
|
| +
|
| + /// Specifies that UART-C is the debug console.
|
| + NvOdmDebugConsole_UartC,
|
| +
|
| + /// Specifies that UART-D is the debug console (not available on AP15/AP16).
|
| + NvOdmDebugConsole_UartD,
|
| +
|
| + /// Specifies that UART-E is the debug console (not available on AP15/AP16).
|
| + NvOdmDebugConsole_UartE,
|
| +
|
| + NvOdmDebugConsole_Num,
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmDebugConsole_Force32 = 0x7FFFFFFF
|
| +} NvOdmDebugConsole;
|
| +
|
| +
|
| +/**
|
| + * Defines the devices that can serve as the download transport.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies that the download transport is undefined.
|
| + NvOdmDownloadTransport_Undefined = 0,
|
| +
|
| + /// Specifies that no download transport device is to be used.
|
| + NvOdmDownloadTransport_None,
|
| +
|
| + /// Specifies that an ODM-specific external Ethernet adapter
|
| + /// is the download transport device.
|
| + NvOdmDownloadTransport_MioEthernet,
|
| +
|
| + /// Deprecated name -- retained for backward compatibility.
|
| + NvOdmDownloadTransport_Ethernet = NvOdmDownloadTransport_MioEthernet,
|
| +
|
| + /// Specifies that USB is the download transport device.
|
| + NvOdmDownloadTransport_Usb,
|
| +
|
| + /// Specifies that SPI (Ethernet) is the download transport device.
|
| + NvOdmDownloadTransport_SpiEthernet,
|
| +
|
| + /// Deprecated name -- retained for backward compatibility.
|
| + NvOdmDownloadTransport_Spi = NvOdmDownloadTransport_SpiEthernet,
|
| +
|
| + /// Specifies that UART-A is the download transport device.
|
| + NvOdmDownloadTransport_UartA,
|
| +
|
| + /// Specifies that UART-B is the download transport device.
|
| + NvOdmDownloadTransport_UartB,
|
| +
|
| + /// Specifies that UART-C is the download transport device.
|
| + NvOdmDownloadTransport_UartC,
|
| +
|
| + /// Specifies that UART-D is the download transport device (not available on AP15/AP16).
|
| + NvOdmDownloadTransport_UartD,
|
| +
|
| + /// Specifies that UART-E is the download transport device (not available on AP15/AP16).
|
| + NvOdmDownloadTransport_UartE,
|
| +
|
| + NvOdmDownloadTransport_Num,
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmDownloadTransport_Force32 = 0x7FFFFFFF
|
| +} NvOdmDownloadTransport;
|
| +
|
| +/**
|
| + * Contains information and settings for the display (such as the default
|
| + * backlight intensity level).
|
| + */
|
| +typedef struct
|
| +{
|
| + /// Default backlight intensity (scaled from 0 to 255).
|
| + NvU8 BacklightIntensity;
|
| +} NvOdmQueryDisplayInfo;
|
| +
|
| +/**
|
| + * Defines the SPI signal mode for SPI communications to the device.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies the invalid signal mode.
|
| + NvOdmQuerySpiSignalMode_Invalid = 0x0,
|
| +
|
| + /// Specifies mode 0 (CPOL=0, CPHA=0) of SPI controller.
|
| + NvOdmQuerySpiSignalMode_0,
|
| +
|
| + /// Specifies mode 1 (CPOL=0, CPHA=1) of SPI controller.
|
| + NvOdmQuerySpiSignalMode_1,
|
| +
|
| + /// Specifies mode 2 (CPOL=1, CPHA=0) of SPI controller.
|
| + NvOdmQuerySpiSignalMode_2,
|
| +
|
| + /// Specifies mode 3 (CPOL=1, CPHA=1) of SPI controller.
|
| + NvOdmQuerySpiSignalMode_3,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmQuerySpiSignalMode_Force32 = 0x7FFFFFFF
|
| +} NvOdmQuerySpiSignalMode;
|
| +
|
| +/**
|
| + * Holds the SPI device information.
|
| + */
|
| +typedef struct
|
| +{
|
| + /// Holds the signal mode for the SPI interfacing.
|
| + NvOdmQuerySpiSignalMode SignalMode;
|
| +
|
| + /// If this is NV_TRUE, then this device's chip select is an active-low signal
|
| + /// (the device is selected by driving its chip select line low). If this
|
| + /// is NV_FALSE, then this device's chip select is an active-high signal.
|
| + NvBool ChipSelectActiveLow;
|
| +
|
| + /// If this is NV_TRUE, then this device is an SPI slave.
|
| + NvBool IsSlave;
|
| +} NvOdmQuerySpiDeviceInfo;
|
| +
|
| +/**
|
| + * Defines the SPI signal state in idle state, i.e., when no transaction is going on.
|
| + */
|
| +typedef struct
|
| +{
|
| + /// Specifies the signal idle state, whether it is normal or tristate.
|
| + NvBool IsTristate;
|
| +
|
| + /// Specifies the signal mode for idle state.
|
| + NvOdmQuerySpiSignalMode SignalMode;
|
| +
|
| + /// Specifies the idle state data out level.
|
| + NvBool IsIdleDataOutHigh;
|
| +
|
| +} NvOdmQuerySpiIdleSignalState;
|
| +
|
| +/**
|
| + * Defines the SDIO slot usage.
|
| + */
|
| +typedef enum
|
| +{
|
| + /** Unused interface. */
|
| + NvOdmQuerySdioSlotUsage_unused = 0x0,
|
| +
|
| + /** Specifies a Wireless LAN device. */
|
| + NvOdmQuerySdioSlotUsage_wlan = 0x1,
|
| +
|
| + /** Specifies the boot slot (contains the operating system code,
|
| + * typically populated by an eMMC). */
|
| + NvOdmQuerySdioSlotUsage_Boot = 0x2,
|
| +
|
| + /** Specifies the media slot, used for user data like audio/video/images. */
|
| + NvOdmQuerySdioSlotUsage_Media = 0x4,
|
| +
|
| + /** Ignore -- Forces compilers to make 32-bit enums. */
|
| + NvOdmQuerySdioSlotUsage_Force32 = 0x7FFFFFFF,
|
| +
|
| +} NvOdmQuerySdioSlotUsage;
|
| +
|
| +/**
|
| + * Holds the SDIO interface properties.
|
| + */
|
| +typedef struct
|
| +{
|
| + /// Holds a flag indicating whether or not the eMMC card connected to the
|
| + /// SDIO interface is pluggable on the board.
|
| + ///
|
| + /// @note If a GPIO is already assigned by NvOdmGpioPinGroup::NvOdmGpioPinGroup_Sdio,
|
| + /// then this value is ignored.
|
| + ///
|
| + /// If this is NV_TRUE, the eMMC card is pluggable on the board.
|
| + /// If this is NV_FALSE, the eMMC card is fixed permanently (or soldered) on the board.
|
| + /// For more information, see NvDdkSdioIsCardInserted().
|
| + NvBool IsCardRemovable;
|
| +
|
| + /// Holds SDIO card HW settling time after reset, i.e., before reading the OCR.
|
| + NvU32 SDIOCardSettlingDelayMSec;
|
| +
|
| + /// Indicates to the driver whether the card must be re-enumerated after returning
|
| + /// from suspend or deep sleep modes, because of power loss to the card during those
|
| + /// modes. NV_TRUE means that the card is powered even though the device enters
|
| + /// suspend or deep sleep mode, and there is no need to re-enumerate the card after
|
| + /// returning from suspend/deep sleep.
|
| + NvBool AlwaysON;
|
| +
|
| + /// Indicates the tap delay to adjust the track delay on the PCB/Boards from SOC to connector.
|
| + NvU32 TapDelay;
|
| +
|
| + /// Defines what the slot is used for.
|
| + NvOdmQuerySdioSlotUsage usage;
|
| +
|
| +} NvOdmQuerySdioInterfaceProperty;
|
| +
|
| +/**
|
| + * Defines the bus width used by the HSMMC controller on the platform.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies the invalid bus width.
|
| + NvOdmQueryHsmmcBusWidth_Invalid = 0x0,
|
| +
|
| + /// Specifies 4-bit wide bus.
|
| + NvOdmQueryHsmmcBusWidth_FourBitWide,
|
| +
|
| + /// Specifies 8-bit wide bus.
|
| + NvOdmQueryHsmmcBusWidth_EightBitWide,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmQueryHsmmcBusWidth_Force32 = 0x7FFFFFFF
|
| +} NvOdmQueryHsmmcBusWidth;
|
| +
|
| +/**
|
| + * Holds the HSMMC interface properties.
|
| + */
|
| +typedef struct
|
| +{
|
| + /// Holds a flag to indicate whether or not the eMMC card connected to
|
| + /// the HSMMC interface is pluggable on the board. Set this to NV_TRUE
|
| + /// if the eMMC card is pluggable on the board. If the eMMC card is fixed
|
| + /// permanently (or soldered) on the board, then set this variable to NV_FALSE.
|
| + ///
|
| + /// @note If a GPIO is already assigned by NvOdmGpioPinGroup::NvOdmGpioPinGroup_Hsmmc,
|
| + /// then this value is ignored.
|
| + /// For more information, see NvDdkHsmmcIsCardInserted().
|
| + NvBool IsCardRemovable;
|
| +
|
| + /// Holds the bus width supported by the platform for the HSMMC controller.
|
| + NvOdmQueryHsmmcBusWidth Buswidth;
|
| +} NvOdmQueryHsmmcInterfaceProperty;
|
| +
|
| +/**
|
| +* Defines the OWR device details.
|
| +*/
|
| +typedef struct
|
| +{
|
| + /** Flag to indicate if the "Byte transfer mode" is supported for the given
|
| + * OWR device. If not supported for a given device, the driver uses
|
| + * "Bit transfer mode" for reading/writing data to the device.
|
| + */
|
| + NvBool IsByteModeSupported;
|
| +
|
| + /** Read data setup, Tsu = N owr clks, Range = tsu < 1. */
|
| + NvU32 Tsu;
|
| + /** Release 1-wire time, Trelease = N owr clks, Range = 0 <= trelease < 45. */
|
| + NvU32 TRelease;
|
| + /** Read data valid time, Trdv = N+1 owr clks, Range = Exactly 15. */
|
| + NvU32 TRdv;
|
| + /** Write zero time low, Tlow0 = N+1 owr clks, Range = 60 <= tlow0 < tslot < 120. */
|
| + NvU32 TLow0;
|
| + /** Write one time low, or TLOWR both are same Tlow1 = N+1 owr clks,
|
| + * Range = 1 <= tlow1 < 15 TlowR = N+1 owr clks, Range = 1 <= tlowR < 15.
|
| + */
|
| + NvU32 TLow1;
|
| + /** Active time slot for write or read data, Tslot = N+1 owr clks,
|
| + * Range = 60 <= tslot < 120.
|
| + */
|
| + NvU32 TSlot;
|
| +
|
| +
|
| + /** ::PRESENCE_DETECT_LOW Tpdl = N owr clks, Range = 60 <= tpdl < 240. */
|
| + NvU32 Tpdl;
|
| + /** ::PRESENCE_DETECT_HIGH Tpdh = N+1 owr clks, Range = 15 <= tpdh < 60. */
|
| + NvU32 Tpdh;
|
| + /** ::RESET_TIME_LOW Trstl = N+1 owr clks, Range = 480 <= trstl < infinity. */
|
| + NvU32 TRstl;
|
| + /** ::RESET_TIME_HIGH, Trsth = N+1 owr clks, Range = 480 <= trsth < infinity. */
|
| + NvU32 TRsth;
|
| +
|
| + /** Program pulse width, Tpp = N owr clks Range = 480 to 5000. */
|
| + NvU32 Tpp;
|
| + /** Program voltage fall time, Tfp = N owr clks Range = 0.5 to 5. */
|
| + NvU32 Tfp;
|
| + /** Program voltage rise time, Trp = N owr clks Range = 0.5 to 5. */
|
| + NvU32 Trp;
|
| + /** Delay to verify, Tdv = N owr clks, Range = > 5. */
|
| + NvU32 Tdv;
|
| + /** Delay to program, Tpd = N+1 owr clks, Range = > 5. */
|
| + NvU32 Tpd;
|
| +
|
| + /** Should be less than or equal to (tlow1 - 6) clks, 6 clks are used for Deglitch,
|
| + * if Deglitch bypassed it is 3 clks.
|
| + */
|
| + NvU32 ReadDataSampleClk;
|
| + /** Should be less than or equal to (tpdl - 6) clks, 6 clks are used for dglitch,
|
| + * if Deglitch bypassed it is 3 clks.
|
| + */
|
| + NvU32 PresenceSampleClk;
|
| +
|
| + /** OWR device memory address size. */
|
| + NvU32 AddressSize;
|
| + /** OWR device Memory size. */
|
| + NvU32 MemorySize;
|
| +} NvOdmQueryOwrDeviceInfo;
|
| +
|
| +/**
|
| + * Defines the functional mode for the I2S channel.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies the I2S controller will generate the clock.
|
| + NvOdmQueryI2sMode_Master = 1,
|
| +
|
| + /// Specifies the I2S controller will not generate the clock;
|
| + /// the audio codec will generate the clock.
|
| + NvOdmQueryI2sMode_Slave,
|
| +
|
| + /// Specifies the I2S communication is internal to audio codec.
|
| + NvOdmQueryI2sMode_Internal,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmQueryI2sMode_Force32 = 0x7FFFFFFF
|
| +} NvOdmQueryI2sMode;
|
| +
|
| +/**
|
| + * Defines the left and right channel data selection control for the audio.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies the left channel when left/right line control signal is low.
|
| + NvOdmQueryI2sLRLineControl_LeftOnLow = 1,
|
| +
|
| + /// Specifies the right channel when left/right line control signal is low.
|
| + NvOdmQueryI2sLRLineControl_RightOnLow,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmQueryI2sLRLineControl_Force32 = 0x7FFFFFFF
|
| +} NvOdmQueryI2sLRLineControl;
|
| +
|
| +/**
|
| + * Defines the possible I2S data communication formats with the audio codec.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies the I2S format for data communication.
|
| + NvOdmQueryI2sDataCommFormat_I2S = 0x1,
|
| +
|
| + /// Specifies right-justified format for data communication.
|
| + NvOdmQueryI2sDataCommFormat_RightJustified,
|
| +
|
| + /// Specifies left-justified format for data communication.
|
| + NvOdmQueryI2sDataCommFormat_LeftJustified,
|
| +
|
| + /// Specifies DSP format for data communication.
|
| + NvOdmQueryI2sDataCommFormat_Dsp,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmQueryI2sDataCommFormat_Force32 = 0x7FFFFFFF
|
| +} NvOdmQueryI2sDataCommFormat;
|
| +
|
| +
|
| +/**
|
| + * Combines the one-time configuration property for the I2S interface with
|
| + * audio codec.
|
| + */
|
| +typedef struct
|
| +{
|
| + /// Holds the I2S controller functional mode.
|
| + NvOdmQueryI2sMode Mode;
|
| +
|
| + /// Holds the left and right channel control.
|
| + NvOdmQueryI2sLRLineControl I2sLRLineControl;
|
| +
|
| + /// Holds the information about the I2S data communication format.
|
| + NvOdmQueryI2sDataCommFormat I2sDataCommunicationFormat;
|
| +
|
| + /// Specifies the codec needs a fixed MCLK when I2s acts as Master
|
| + NvBool IsFixedMCLK;
|
| +
|
| + /// Specifies the Fixed MCLK Frequency in Khz.
|
| + /// Supports only three fixed frequencies: 11289, 12288, and 12000.
|
| + NvU32 FixedMCLKFrequency;
|
| +
|
| +} NvOdmQueryI2sInterfaceProperty;
|
| +
|
| +/**
|
| + * Defines the left and right channel data selection control.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies the left channel when left/right line control signal is low.
|
| + NvOdmQuerySpdifDataCaptureControl_FromLeft = 1,
|
| +
|
| + /// Specifies the right channel when left/right line control signal is low.
|
| + NvOdmQuerySpdifDataCaptureControl_FromRight,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmQuerySpdifDataCaptureControl_Force32 = 0x7FFFFFFF
|
| +} NvOdmQuerySpdifDataCaptureControl;
|
| +
|
| +/**
|
| + * Combines the one time configuration property for the SPDIF interface.
|
| + */
|
| +typedef struct NvOdmQuerySpdifInterfacePropertyRec
|
| +{
|
| + /// Holds the left and right channel control.
|
| + NvOdmQuerySpdifDataCaptureControl SpdifDataCaptureControl;
|
| +} NvOdmQuerySpdifInterfaceProperty;
|
| +
|
| +/**
|
| + * Combines the one-time configuration property for the AC97 interface.
|
| + */
|
| +typedef struct
|
| +{
|
| + /// Identifies whether secondary codec is available.
|
| + NvBool IsSecondoaryCodecAvailable;
|
| +
|
| + /// Identifies whether left/right surround sound is enabled.
|
| + NvBool IsLRSurroundSoundEnable;
|
| +
|
| + /// Identifies whether LFE is enabled.
|
| + NvBool IsLFEEnable;
|
| +
|
| + /// Identifies whether center speaker is enabled.
|
| + NvBool IsCenterSpeakerEnable;
|
| +
|
| + /// Identifies whether left right PCM is enabled.
|
| + NvBool IsLRPcmEnable;
|
| +} NvOdmQueryAc97InterfaceProperty;
|
| +
|
| +/**
|
| + * Combines the one-time configuration property for the audio codec interfaced
|
| + * by I2S.
|
| + */
|
| +typedef struct
|
| +{
|
| + /// Holds whether the audio codec is in master mode or in slave mode.
|
| + NvBool IsCodecMasterMode;
|
| +
|
| + /// Holds the dap port index used to connect to the codec.
|
| + NvU32 DapPortIndex;
|
| +
|
| + /// Holds the device address if it is an I2C interface, else the chip
|
| + /// select ID if it is an SPI interface.
|
| + NvU32 DeviceAddress;
|
| +
|
| + /// Tells whether it is the USB mode or normal mode of interfacing for the
|
| + /// audio codec.
|
| + NvU32 IsUsbMode;
|
| +
|
| + /// Holds the left and right channel control.
|
| + NvOdmQueryI2sLRLineControl I2sCodecLRLineControl;
|
| +
|
| + /// Holds the information about the I2S data communication format.
|
| + NvOdmQueryI2sDataCommFormat I2sCodecDataCommFormat;
|
| +} NvOdmQueryI2sACodecInterfaceProp;
|
| +
|
| +/**
|
| + * Defines the oscillator source.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies the cyrstal oscillator as the clock source.
|
| + NvOdmQueryOscillator_Xtal = 1,
|
| +
|
| + /// Specifies an external clock source (bypass mode).
|
| + NvOdmQueryOscillator_External,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmQueryOscillator_Force32 = 0x7FFFFFFF
|
| +} NvOdmQueryOscillator;
|
| +
|
| +/**
|
| + * Defines the wakeup polarity.
|
| + */
|
| +typedef enum
|
| +{
|
| + NvOdmWakeupPadPolarity_Low = 0,
|
| + NvOdmWakeupPadPolarity_High,
|
| + NvOdmWakeupPadPolarity_AnyEdge,
|
| + NvOdmWakeupPadPolarity_Force32 = 0x7FFFFFFF
|
| +} NvOdmWakeupPadPolarity;
|
| +
|
| +/** Defines the wakeup pad attributes. */
|
| +typedef struct
|
| +{
|
| + /// Specifies to enable this pad as wakeup or not.
|
| + NvBool enable;
|
| +
|
| + /// Specifies the wake up pad number. Valid values for AP15 are 0 to 15.
|
| + NvU32 WakeupPadNumber;
|
| +
|
| + /// Specifies wake up polarity.
|
| + NvOdmWakeupPadPolarity Polarity;
|
| +
|
| +} NvOdmWakeupPadInfo;
|
| +
|
| +/**
|
| + * Defines the index for possible connection based on the use case.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// Specifies the default music path.
|
| + NvOdmDapConnectionIndex_Music_Path = 0,
|
| +
|
| + /// Specifies the voice call without Bluetooth.
|
| + NvOdmDapConnectionIndex_VoiceCall_NoBlueTooth = 1,
|
| +
|
| + /// Specifies the HD radio.
|
| + NvOdmDapConnectionIndex_HD_Radio,
|
| +
|
| + /// Specifies the voice call with Bluetooth.
|
| + NvOdmDapConnectionIndex_VoiceCall_WithBlueTooth,
|
| +
|
| + /// Specifies the Bluetooth to codec.
|
| + NvOdmDapConnectionIndex_BlueTooth_Codec,
|
| +
|
| + /// Specifies DAC1-to-DAP2 bypass, used for h/w verification.
|
| + NvOdmDapConnectionIndex_DAC1_DAP2,
|
| +
|
| + /// Specifies DAC1-to-DAP3 bypass, used for h/w verification.
|
| + NvOdmDapConnectionIndex_DAC1_DAP3,
|
| +
|
| + /// Specifies DAC1-to-DAP4 bypass, used for h/w verification.
|
| + NvOdmDapConnectionIndex_DAC1_DAP4,
|
| +
|
| + /// Specifies DAC2-to-DAP2 bypass, used for hardware verification.
|
| + NvOdmDapConnectionIndex_DAC2_DAP2,
|
| +
|
| + /// Specifies DAC2-to-DAP3 bypass, used for hardware verification.
|
| + NvOdmDapConnectionIndex_DAC2_DAP3,
|
| +
|
| + /// Specifies DAC2-to-DAP4 bypass, used for hardware verification.
|
| + NvOdmDapConnectionIndex_DAC2_DAP4,
|
| +
|
| + /// Specifies a custom type connection.
|
| + NvOdmDapConnectionIndex_Custom,
|
| +
|
| + /// Specifies unknown.
|
| + NvOdmDapConnectionIndex_Unknown,
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmDapConnectionIndex_Force32 = 0x7FFFFFFF
|
| +
|
| +}NvOdmDapConnectionIndex;
|
| +
|
| +/**
|
| + * Defines the DAP port source and destination enumerations.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// NONE DAP port - no connection.
|
| + NvOdmDapPort_None = 0,
|
| +
|
| + /// Specifies DAP port 1.
|
| + NvOdmDapPort_Dap1,
|
| +
|
| + /// Specifies DAP port 2.
|
| + NvOdmDapPort_Dap2,
|
| +
|
| + /// Specifies DAP port 3.
|
| + NvOdmDapPort_Dap3,
|
| +
|
| + /// Specifies DAP port 4.
|
| + NvOdmDapPort_Dap4,
|
| +
|
| + /// Specifies DAP port 5.
|
| + NvOdmDapPort_Dap5,
|
| +
|
| + /// Specifies I2S DAP port 1.
|
| + NvOdmDapPort_I2s1,
|
| +
|
| + /// Specifies I2S DAP port 2.
|
| + NvOdmDapPort_I2s2,
|
| +
|
| + /// Specifies AC97 DAP port.
|
| + NvOdmDapPort_Ac97,
|
| +
|
| + /// Specifies baseband DAP port.
|
| + NvOdmDapPort_BaseBand,
|
| +
|
| + /// Specifies Bluetooth DAP port.
|
| + NvOdmDapPort_BlueTooth,
|
| +
|
| + /// Specifies media type DAP port.
|
| + NvOdmDapPort_MediaType,
|
| +
|
| + /// Specifies voice type DAP port.
|
| + NvOdmDapPort_VoiceType,
|
| +
|
| + /// Specifies high fidelity codec DAP port.
|
| + NvOdmDapPort_HifiCodecType,
|
| +
|
| + /// Specifies voice codec DAP port.
|
| + NvOdmDapPort_VoiceCodecType,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmDapPort_Force32 = 0x7FFFFFFF
|
| +} NvOdmDapPort;
|
| +
|
| +#define NvOdmDapPort_Max NvOdmDapPort_Dap5+1
|
| +/**
|
| + * Combines the one-time configuration property for DAP device wired to the DAP port.
|
| + * Currently define only for best suited values. If the device can support more ranges,
|
| + * you have to consider it accordingly.
|
| + */
|
| +typedef struct NvOdmDapDevicePropertyRec
|
| +{
|
| + /// Specifies the number of channels, such as 2 for stereo.
|
| + NvU32 NumberOfChannels;
|
| +
|
| + /// Specifies the number of bits per sample, such as 8 or 16 bits.
|
| + NvU32 NumberOfBitsPerSample;
|
| +
|
| + /// Specifies the sampling rate in Hz, such as 8000 for 8 kHz, 44100
|
| + /// for 44.1 kHz.
|
| + NvU32 SamplingRateInHz;
|
| +
|
| + /// Holds the information DAP port data communication format.
|
| + NvOdmQueryI2sDataCommFormat DapPortCommunicationFormat;
|
| +
|
| +}NvOdmDapDeviceProperty;
|
| +
|
| +/**
|
| +* Defines the connection line and connection table.
|
| +*/
|
| +typedef struct NvOdmQueryDapPortConnectionLinesRec
|
| +{
|
| + /// Specifies the source for the connection line.
|
| + NvOdmDapPort Source;
|
| +
|
| + /// Specifies the destination for the connection line.
|
| + NvOdmDapPort Destination;
|
| +
|
| + /// Specifies the source to act as master or slave.
|
| + NvBool IsSourceMaster;
|
| +
|
| +}NvOdmQueryDapPortConnectionLines;
|
| +
|
| +/**
|
| +* Increases the maximum connection line based on use case connection needed.
|
| +*/
|
| +#define NVODM_MAX_CONNECTIONLINES 8
|
| +
|
| +/**
|
| +* Defines the DAP port connection.
|
| +*/
|
| +typedef struct NvOdmQueryDapPortConnectionRec
|
| +{
|
| + /// Specifie the connection use case from the enum provided.
|
| + NvU32 UseIndex;
|
| +
|
| + /// Specifies the number of connection line for the table.
|
| + NvU32 NumofEntires;
|
| +
|
| + /// Specifies the connection lines for the table.
|
| + NvOdmQueryDapPortConnectionLines DapPortConnectionLines[NVODM_MAX_CONNECTIONLINES];
|
| +
|
| +}NvOdmQueryDapPortConnection;
|
| +/**
|
| + * Combines the one-time configuration property for DAP port setting.
|
| + */
|
| +typedef struct NvOdmQueryDapPortPropertyRec
|
| +{
|
| + /// Specifies the source for the DAP port.
|
| + NvOdmDapPort DapSource;
|
| +
|
| + /// Specifies the destination for the DAP port.
|
| + NvOdmDapPort DapDestination;
|
| +
|
| + /// Specified the property of device wired to DAP port.
|
| + NvOdmDapDeviceProperty DapDeviceProperty;
|
| +
|
| +} NvOdmQueryDapPortProperty;
|
| +
|
| +/**
|
| + * Defines ODM interrupt polarity.
|
| + */
|
| +typedef enum
|
| +{
|
| + NvOdmInterruptPolarity_Low = 1,
|
| + NvOdmInterruptPolarity_High,
|
| + NvOdmInterruptPolarity_Force32 = 0x7FFFFFFF
|
| +} NvOdmInterruptPolarity;
|
| +
|
| +/**
|
| + * Defines core power request polarity, as required by a PMU.
|
| + */
|
| +typedef enum
|
| +{
|
| + NvOdmCorePowerReqPolarity_Low,
|
| + NvOdmCorePowerReqPolarity_High,
|
| + NvOdmCorePowerReqPolarity_Force32 = 0x7FFFFFFF
|
| +}NvOdmCorePowerReqPolarity;
|
| +
|
| +/**
|
| + * Defines system clock request polarity, as required by the clock source.
|
| + */
|
| +typedef enum
|
| +{
|
| + NvOdmSysClockReqPolarity_Low,
|
| + NvOdmSysClockReqPolarity_High,
|
| + NvOdmSysClockReqPolarity_Force32 = 0x7FFFFFFF
|
| +}NvOdmSysClockReqPolarity;
|
| +
|
| +
|
| +/**
|
| + * Combines PMU configuration properties.
|
| + */
|
| +typedef struct NvOdmPmuPropertyRec
|
| +{
|
| + /// Specifies if PMU interrupt is connected to SoC.
|
| + NvBool IrqConnected;
|
| +
|
| + /// Specifies the time required for power to be stable (in 32 kHz counts).
|
| + NvU32 PowerGoodCount;
|
| +
|
| + /// Specifies the PMU interrupt polarity.
|
| + NvOdmInterruptPolarity IrqPolarity;
|
| +
|
| + /// Specifies the core power request signal polarity.
|
| + NvOdmCorePowerReqPolarity CorePowerReqPolarity;
|
| +
|
| + /// Specifies the system clock request signal polarity.
|
| + NvOdmSysClockReqPolarity SysClockReqPolarity;
|
| +
|
| + /// Specifies whether or not only one power request input on PMU is available.
|
| + /// Relevant for SoCs with separate CPU and core power request outputs:
|
| + /// - NV_TRUE specifies PMU has single power request input, in this case SoC
|
| + /// CPU and core power requests must be combined by external logic with
|
| + /// proper pull-up/pull-down.
|
| + /// - NV_FALSE specifies PMU has at least two power request inputs, in this
|
| + /// case SoC CPU and core power requests are connected separately to
|
| + /// the respective PMU inputs.
|
| + NvBool CombinedPowerReq;
|
| +
|
| + /// Specifies the time required for CPU power to be stable (in US).
|
| + /// Relevant for SoC with separate CPU and core power request outputs.
|
| + NvU32 CpuPowerGoodUs;
|
| +
|
| + /// Specifies whether or not CPU voltage will switch back to OTP (default)
|
| + /// value after CPU request on-off-on transition (typically this transition
|
| + /// happens on entry/exit to/from low power states). Relevant for SoCs with
|
| + /// separate CPU and core power request outputs:
|
| + /// - NV_TRUE specifies PMU will switch CPU voltage to default level after
|
| + /// CPU request on-off-on transition. This PMU mode is not compatible with
|
| + /// DVFS core voltage scaling, which will be disabled in this case.
|
| + /// - NV_FALSE specifies PMU will restore CPU voltage after CPU request
|
| + /// on-off-on transition to the level it has just before the transition
|
| + /// happens. In this case DVFS core voltage scaling can be enabled.
|
| + NvBool VCpuOTPOnWakeup;
|
| +
|
| + /// Specifies PMU Core and CPU voltage regulation accuracy in percent
|
| + NvU32 AccuracyPercent;
|
| +
|
| +} NvOdmPmuProperty;
|
| +
|
| +/**
|
| + * Defines SOC power states.
|
| + */
|
| +typedef enum
|
| +{
|
| + /// State where power to non-always-on (non-AO) partitions are
|
| + /// removed, and double-data rate (DDR) SDRAM is in self-refresh
|
| + /// mode. Wake up by any enabled \a external event/interrupt.
|
| + NvOdmSocPowerState_DeepSleep,
|
| +
|
| + /// State where the CPU is halted by the flow controller and power
|
| + /// is gated, plus DDR is in self-refresh. Wake up by any enabled interrupt.
|
| + NvOdmSocPowerState_Suspend,
|
| +
|
| + /// Specifies to disable the SOC power state.
|
| + NvOdmSocPowerState_Active,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmSocPowerState_Force32 = 0x7FFFFFFFUL
|
| +
|
| +} NvOdmSocPowerState;
|
| +
|
| +/**
|
| + * SOC power state information.
|
| + */
|
| +typedef struct NvOdmSocPowerStateInfoRec
|
| +{
|
| + // Specifies the lowest supported power state.
|
| + NvOdmSocPowerState LowestPowerState;
|
| +
|
| + // Specifies the idle time (in Msecs) threshold to enter the power state.
|
| + NvU32 IdleThreshold;
|
| +
|
| +} NvOdmSocPowerStateInfo;
|
| +
|
| +/** External interface type for USB controllers */
|
| +typedef enum
|
| +{
|
| + /// Specifies the USB controller is connected to a standard UTMI interface
|
| + /// (only valid for ::NvOdmIoModule_Usb).
|
| + NvOdmUsbInterfaceType_Utmi = 1,
|
| +
|
| + /// Specifies the USB controller is connected to a phy-less ULPI interface
|
| + /// (only valid for ::NvOdmIoModule_Ulpi).
|
| + NvOdmUsbInterfaceType_UlpiNullPhy,
|
| +
|
| + /// Specifies the USB controller is connected to a ULPI interface that has an
|
| + /// external phy (only valid for \c NvOdmIoModule_Ulpi).
|
| + NvOdmUsbInterfaceType_UlpiExternalPhy,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmUsbInterfaceType_Force32 = 0x7FFFFFFFUL
|
| +
|
| +} NvOdmUsbInterfaceType;
|
| +
|
| +
|
| +/** Defines the USB line states. */
|
| +typedef enum
|
| +{
|
| + /// Specifies USB host based charging type.
|
| + NvOdmUsbChargerType_UsbHost = 0,
|
| +
|
| + /// Specifies charger type 0, USB compliant charger, when D+ and D- are at low voltage.
|
| + NvOdmUsbChargerType_SE0 = 1,
|
| +
|
| + /// Specifies charger type 1, when D+ is high and D- is low.
|
| + NvOdmUsbChargerType_SJ = 2,
|
| +
|
| + /// Specifies charger type 2, when D+ is low and D- is high.
|
| + NvOdmUsbChargerType_SK = 4,
|
| +
|
| + /// Specifies charger type 3, when D+ and D- are at high voltage.
|
| + NvOdmUsbChargerType_SE1 = 8,
|
| +
|
| + /// Specifies charger type 4, D+ and D- are undefined.
|
| + /// @note If dummy charger is selected, then charger type will be always
|
| + /// dummy and other type chargers are detected but treated as dummy.
|
| + NvOdmUsbChargerType_Dummy = 0x10,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmUsbChargerType_Force32 = 0x7FFFFFFF,
|
| +} NvOdmUsbChargerType;
|
| +
|
| +/** Defines the USB mode for the instance. */
|
| +typedef enum
|
| +{
|
| + /// Specifies the instance is not present or cannot be used for USB.
|
| + NvOdmUsbModeType_None = 0,
|
| +
|
| + /// Specifies the instance as USB host.
|
| + NvOdmUsbModeType_Host = 1,
|
| +
|
| + /// Specifies the instance as USB Device.
|
| + NvOdmUsbModeType_Device = 2,
|
| +
|
| + /// Specifies the instance as USB OTG.
|
| + NvOdmUsbModeType_OTG= 4,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmUsbModeType_Force32 = 0x7FFFFFFF,
|
| +} NvOdmUsbModeType;
|
| +
|
| +/** Defines the USB ID pin detection type. */
|
| +typedef enum
|
| +{
|
| + /// Specifies there is no ID pin detection mechanism.
|
| + NvOdmUsbIdPinType_None = 0,
|
| +
|
| + /// Specifies ID pin detection is done with GPIO.
|
| + NvOdmUsbIdPinType_Gpio= 1,
|
| +
|
| + /// Specifies ID pin detection is done with cable ID.
|
| + NvOdmUsbIdPinType_CableId= 2,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmUsbIdPinType_Force32 = 0x7FFFFFFF,
|
| +} NvOdmUsbIdPinType;
|
| +
|
| +/** Defines the USB connectors multiplex type. */
|
| +typedef enum
|
| +{
|
| + /// Specifies there is no connectors mux mechanism
|
| + NvOdmUsbConnectorsMuxType_None = 0,
|
| +
|
| + /// Specifies microAB/TypeA mux is available.
|
| + NvOdmUsbConnectorsMuxType_MicroAB_TypeA= 1,
|
| +
|
| + /// Ignore -- Forces compilers to make 32-bit enums.
|
| + NvOdmUsbConnectorsMuxType_Force32 = 0x7FFFFFFF,
|
| +} NvOdmUsbConnectorsMuxType;
|
| +
|
| +/**
|
| + * Defines the USB trimmer control values. Keep all values zero unless the
|
| + * default trimmer values programmed in DDK do not work on the customer board.
|
| + */
|
| +typedef struct NvOdmUsbTrimmerCtrlRec
|
| +{
|
| + /// Programmable delay on the Shadow ULPI Clock (0 ~ 31)
|
| + NvU8 UlpiShadowClkDelay;
|
| +
|
| + /// Programmable delay on the ULPI Clock out (0 ~ 31)
|
| + NvU8 UlpiClockOutDelay;
|
| +
|
| + /// ULPI Data Trimmer Value (0 ~ 7)
|
| + NvU8 UlpiDataTrimmerSel;
|
| +
|
| + /// ULPI STP/DIR/NXT Trimmer Value (0 ~ 7)
|
| + NvU8 UlpiStpDirNxtTrimmerSel;
|
| +} NvOdmUsbTrimmerCtrl;
|
| +
|
| +/** Defines USB interface properties. */
|
| +typedef struct NvOdmUsbPropertyRec
|
| +{
|
| + /// Specifies the USB controller's external interface type.
|
| + /// @see NvOdmUsbInterfaceType
|
| + NvOdmUsbInterfaceType UsbInterfaceType;
|
| +
|
| + /// Specifies the charger types supported on this interface.
|
| + /// If dummy charger is selected then other type chargers are detected as dummy.
|
| + /// @see NvOdmUsbChargerType
|
| + NvU32 SupportedChargers;
|
| +
|
| + /// Specifies the time required to wait before checking for the line status.
|
| + /// @see NvOdmUsbChargerType
|
| + NvU32 ChargerDetectTimeMs;
|
| +
|
| + /// Specifies internal PHY to use as source for VBUS detection in the low power mode.
|
| + /// Set to NV_TRUE to use internal PHY for VBUS detection.
|
| + /// Set to NV_FALSE to use PMU interrupt for VBUS detection.
|
| + NvBool UseInternalPhyWakeup;
|
| +
|
| + /// Specifies the USB mode for the instance.
|
| + /// @see NvOdmUsbModeType
|
| + NvU32 UsbMode;
|
| +
|
| + /// Specifies the USB ID pin detection type.
|
| + /// @see NvOdmUsbIdPinType
|
| + NvU32 IdPinDetectionType;
|
| +
|
| + /// Specifies the USB connectors multiplex type.
|
| + /// @see NvOdmUsbConnectorsMuxType
|
| + NvOdmUsbConnectorsMuxType ConMuxType;
|
| +
|
| + /// Specifies Usb rail to power off or not in the deep sleep mode.
|
| + /// Set to NV_TRUE to specify usb rail power off in the deep sleep
|
| + /// Set to NV_FALSE to specify usb rail can not be power off in the deep sleep
|
| + NvBool UsbRailPoweOffInDeepSleep;
|
| +
|
| + /// Specifies the USB trimmer values. The default value will be used if all values are zeros.
|
| + /// @see NvOdmUsbTrimmerCtrl
|
| + NvOdmUsbTrimmerCtrl TrimmerCtrl;
|
| +} NvOdmUsbProperty;
|
| +
|
| +/** Defines wakeup sources. */
|
| +typedef enum
|
| +{
|
| + NvOdmGpioWakeupSource_Invalid = 0,
|
| + NvOdmGpioWakeupSource_RIL,
|
| + NvOdmGpioWakeupSource_UART,
|
| + NvOdmGpioWakeupSource_BluetoothIrq,
|
| + NvOdmGpioWakeupSource_HDMIDetection,
|
| + NvOdmGpioWakeupSource_USB,
|
| + NvOdmGpioWakeupSource_Lid,
|
| + NvOdmGpioWakeupSource_AudioIrq,
|
| + NvOdmGpioWakeupSource_ACCIrq,
|
| + NvOdmGpioWakeupSource_HSMMCCardDetect,
|
| + NvOdmGpioWakeupSource_SdioDat1,
|
| + NvOdmGpioWakeupSource_SdioCardDetect,
|
| + NvOdmGpioWakeupSource_KBC,
|
| + NvOdmGpioWakeupSource_PWR,
|
| + NvOdmGpioWakeupSource_BasebandModem,
|
| + NvOdmGpioWakeupSource_DVI,
|
| + NvOdmGpioWakeupSource_GpsOnOff,
|
| + NvOdmGpioWakeupSource_GpsInterrupt,
|
| + NvOdmGpioWakeupSource_Accelerometer,
|
| + NvOdmGpioWakeupSource_HeadsetDetect,
|
| + NvOdmGpioWakeupSource_PenInterrupt,
|
| + NvOdmGpioWakeupSource_WlanInterrupt,
|
| + NvOdmGpioWakeupSource_UsbVbus,
|
| + NvOdmGpioWakeupSource_Force32 = 0x7FFFFFFF,
|
| +} NvOdmGpioWakeupSource;
|
| +
|
| +/**
|
| + * Gets the total memory size for the specified memory type.
|
| + *
|
| + * @note The implementation of this function must not make reference to
|
| + * any global or static variables of any kind whatsoever.
|
| + *
|
| + * @param MemType Specifies the memory type.
|
| + *
|
| + * @return The memory size (in bytes), or 0 if no memory of that type exists.
|
| + */
|
| +NvU32 NvOdmQueryMemSize(NvOdmMemoryType MemType);
|
| +
|
| +/**
|
| + * Gets the memory occupied by the secure region. Must be 1 MB aligned.
|
| + *
|
| + * @returns The memory occupied (in bytes).
|
| + */
|
| +NvU32 NvOdmQuerySecureRegionSize(void);
|
| +
|
| +/**
|
| + * Gets the size of the carveout region.
|
| + *
|
| + * The carveout memory region is contiguous physical memory used by some
|
| + * software modules instead of allocating memory from the OS heap. This memory
|
| + * is separate from the operating system's heap.
|
| + *
|
| + * The carveout memory region is useful because the OS heap often becomes
|
| + * fragmented after boot time, making it difficult to obtain physically
|
| + * contiguous memory.
|
| + */
|
| +NvU32 NvOdmQueryCarveoutSize(void);
|
| +
|
| +/**
|
| + * Gets the port to use as the debug console.
|
| + *
|
| + * @return The debug console ID.
|
| + */
|
| +NvOdmDebugConsole NvOdmQueryDebugConsole(void);
|
| +
|
| +/**
|
| + * Gets the device to use as the download transport.
|
| + *
|
| + * @return The download transport device ID.
|
| + */
|
| +NvOdmDownloadTransport NvOdmQueryDownloadTransport(void);
|
| +
|
| +/**
|
| + * Gets the null-terminated device name prefix string (i.e., that
|
| + * part of a device name that is common to all devices of this type).
|
| + *
|
| + * @return The device name prefix string.
|
| + */
|
| +const NvU8* NvOdmQueryDeviceNamePrefix(void);
|
| +
|
| +/**
|
| + * Gets the configuration info for the display.
|
| + *
|
| + * @param Instance The instance number of the display controller.
|
| + * @return A pointer to the structure containing the display information.
|
| + */
|
| +const NvOdmQueryDisplayInfo *
|
| +NvOdmQueryGetDisplayInfo(
|
| + NvU32 Instance);
|
| +
|
| +/**
|
| + * Gets the interfacing properties of the device connected to a given chip
|
| + * select on a given SPI controller.
|
| + *
|
| + * @param OdmIoModule The ODM I/O module name, such as SPI, S-LINK, or S-Flash.
|
| + * @param ControllerId The SPI instance ID.
|
| + * @param ChipSelect The chip select ID from the connected device.
|
| + *
|
| + * @return A pointer to a structure describing the device's properties.
|
| + */
|
| +const NvOdmQuerySpiDeviceInfo *
|
| +NvOdmQuerySpiGetDeviceInfo(
|
| + NvOdmIoModule OdmIoModule,
|
| + NvU32 ControllerId,
|
| + NvU32 ChipSelect);
|
| +
|
| +
|
| +/**
|
| + * Gets the default signal level of the SPI interfacing lines.
|
| + * This indicates whether signal lines are in the tristate or not, and if not,
|
| + * then indicates what is the normal state of the SCLK and data out line.
|
| + * This state is set once the transaction is completed.
|
| + * During the transaction, the chip-specific setting is done.
|
| + *
|
| + * @param OdmIoModule The ODM I/O module name, such as SPI, S-LINK, or S-Flash.
|
| + * @param ControllerId The SPI instance ID.
|
| + *
|
| + * @return A pointer to a structure describing the idle signal state.
|
| + */
|
| +const NvOdmQuerySpiIdleSignalState *
|
| +NvOdmQuerySpiGetIdleSignalState(
|
| + NvOdmIoModule OdmIoModule,
|
| + NvU32 ControllerId);
|
| +
|
| +/**
|
| + * Gets the S/PDIF interfacing property parameters with the audio codec that
|
| + * are set for the data transfer.
|
| + *
|
| + * @param SpdifInstanceId The S/PDIF controller instance ID.
|
| + *
|
| + * @return A pointer to a structure describing the I2S interface properties.
|
| + */
|
| +const NvOdmQuerySpdifInterfaceProperty *
|
| +NvOdmQuerySpdifGetInterfaceProperty(
|
| + NvU32 SpdifInstanceId);
|
| +
|
| + /**
|
| + * Gets the I2S interfacing property parameter, which is set for
|
| + * the data transfer.
|
| + *
|
| + * @param I2sInstanceId The I2S controller instance ID.
|
| + *
|
| + * @return A pointer to a structure describing the I2S interface properties.
|
| + *
|
| + */
|
| +const NvOdmQueryI2sInterfaceProperty *
|
| +NvOdmQueryI2sGetInterfaceProperty(
|
| + NvU32 I2sInstanceId);
|
| +
|
| +/**
|
| + * Gets the AC97 interfacing property with AC97 codec parameters that are set
|
| + * for the data transfer.
|
| + *
|
| + * @param Ac97InstanceId The instance ID for the AC97 cotroller.
|
| + *
|
| + * @return A pointer to a structure describing the AC97 interface properties.
|
| + *
|
| + */
|
| +const NvOdmQueryAc97InterfaceProperty *
|
| +NvOdmQueryAc97GetInterfaceProperty(
|
| + NvU32 Ac97InstanceId);
|
| +
|
| +/**
|
| + * Gets the DAP port property.
|
| + *
|
| + * This shows how the DAP connection is made along with
|
| + * the format and mode it supports.
|
| + *
|
| + * @param DapPortId The DAP port.
|
| + *
|
| + * @return A pointer to a structure holding the DAP port connection properties.
|
| + */
|
| +const NvOdmQueryDapPortProperty *
|
| +NvOdmQueryDapPortGetProperty(
|
| + NvU32 DapPortId);
|
| +
|
| +/**
|
| + * Gets the DAP port connection table.
|
| + *
|
| + * This shows how the connections are made along with
|
| + * the use case.
|
| + *
|
| + * @param ConnectionIndex The index to ConnectionTable based on the use case.
|
| + *
|
| + * @return A pointer to a structure holding the connection lines.
|
| + */
|
| +const NvOdmQueryDapPortConnection*
|
| +NvOdmQueryDapPortGetConnectionTable(
|
| + NvU32 ConnectionIndex);
|
| +
|
| +/**
|
| + * Gets the I2S audio codec interfacing property.
|
| + *
|
| + * @param AudioCodecId The instance ID or the audio codec cotroller.
|
| + *
|
| + * @return A pointer to a structure describing the audio codec interface
|
| + * properties.
|
| + */
|
| +const NvOdmQueryI2sACodecInterfaceProp *
|
| +NvOdmQueryGetI2sACodecInterfaceProperty(
|
| + NvU32 AudioCodecId);
|
| +
|
| +/**
|
| + * Gets the oscillator source.
|
| + *
|
| + * @see NvOdmQueryOscillator
|
| + *
|
| + * @return The oscillator source.
|
| + */
|
| +NvOdmQueryOscillator NvOdmQueryGetOscillatorSource(void);
|
| +
|
| +/**
|
| + * Gets the oscillator drive strength setting.
|
| + *
|
| + * @return The oscillator drive strength setting.
|
| + */
|
| +NvU32 NvOdmQueryGetOscillatorDriveStrength(void);
|
| +
|
| +/**
|
| + * Gets the null-terminated device manufacturer string.
|
| + *
|
| + * @return A pointer to the device manufacturer string.
|
| + */
|
| +const NvU8* NvOdmQueryManufacturer(void);
|
| +
|
| +/**
|
| + * Gets the null-terminated device model string.
|
| + *
|
| + * @return A pointer to the device model string.
|
| + */
|
| +const NvU8* NvOdmQueryModel(void);
|
| +
|
| +/**
|
| + * Gets the null-terminated device platform string.
|
| + *
|
| + * @return A pointer to the device platform string.
|
| + */
|
| +const NvU8* NvOdmQueryPlatform(void);
|
| +
|
| +/**
|
| + * Gets the null-terminated device project name string.
|
| + *
|
| + * @return A pointer to the device project name string.
|
| + */
|
| +const NvU8* NvOdmQueryProjectName(void);
|
| +
|
| +/**
|
| + * Gets the wake pads configuration table.
|
| + *
|
| + * @param entries A pointer to a variable that this function sets to the
|
| + * number of entries in the configuration table.
|
| + *
|
| + * @return A pointer to the configuration table.
|
| + */
|
| +const NvOdmWakeupPadInfo *NvOdmQueryGetWakeupPadTable(NvU32 *entries);
|
| +
|
| +/**
|
| + * Gets the external PMU property.
|
| + *
|
| + * @param pPmuProperty A pointer to the returned PMU property structure.
|
| + *
|
| + * @return NV_TRUE if successful, or NV_FALSE otherwise.
|
| + */
|
| +NvBool NvOdmQueryGetPmuProperty(NvOdmPmuProperty* pPmuProperty);
|
| +
|
| +/**
|
| + * Gets the lowest SOC power state info supported by the ODM.
|
| + *
|
| + * @return A pointer to the NvOdmSocPowerStateInfo structure
|
| + */
|
| +const NvOdmSocPowerStateInfo* NvOdmQueryLowestSocPowerState(void);
|
| +
|
| +/**
|
| + * Returns the type of the USB interface based on module ID and
|
| + * instance. The \a Module and \a Instance parameter are identical to the
|
| + * \a IoModule parameter and array index, respectively, used in the
|
| + * NvOdmQueryPinMux() and NvOdmQueryClockLimits() APIs.
|
| + *
|
| + * @return The properties structure for the USB interface.
|
| + */
|
| +const NvOdmUsbProperty*
|
| +NvOdmQueryGetUsbProperty(NvOdmIoModule Module, NvU32 Instance);
|
| +
|
| +/**
|
| + * Gets the interface properties of the SDIO controller.
|
| + *
|
| + * @param Instance The instance number of the SDIO controller.
|
| + * @return A pointer to the structure containing the SDIO interface property.
|
| + */
|
| +
|
| +const NvOdmQuerySdioInterfaceProperty*
|
| +NvOdmQueryGetSdioInterfaceProperty(
|
| + NvU32 Instance);
|
| +
|
| +/**
|
| + * Gets the interface properties of the HSMMC controller.
|
| + *
|
| + * @param Instance The instance number of the HSMMC controller.
|
| + * @return A pointer to the structure containing the HSMMC interface property.
|
| + */
|
| +
|
| +const NvOdmQueryHsmmcInterfaceProperty*
|
| +NvOdmQueryGetHsmmcInterfaceProperty(
|
| + NvU32 Instance);
|
| +
|
| +/**
|
| + * Gets the ODM-specific sector size for block devices.
|
| + *
|
| + * @param OdmIoModule The ODM I/O module type.
|
| + * @return An integer indicating the sector size if non-zero, or
|
| + * zero if the sector size equals the actual device-reported sector size.
|
| + */
|
| +NvU32
|
| +NvOdmQueryGetBlockDeviceSectorSize(NvOdmIoModule OdmIoModule);
|
| +
|
| +/**
|
| + * Gets the OWR device information.
|
| + *
|
| + * @param Instance The instance number of the OWR controller.
|
| + * @return A pointer to the structure containing the OWR device info.
|
| + */
|
| +const NvOdmQueryOwrDeviceInfo* NvOdmQueryGetOwrDeviceInfo(NvU32 Instance);
|
| +
|
| +/**
|
| + * Gets the list of supported wakeup sources.
|
| + *
|
| + * @param pCount The number of wakeup sources.
|
| + * @return A pointer to the array containing the wakeup sources.
|
| + */
|
| +const NvOdmGpioWakeupSource *NvOdmQueryGetWakeupSources(NvU32 *pCount);
|
| +
|
| +#if defined(__cplusplus)
|
| +}
|
| +#endif
|
| +
|
| +/** @} */
|
| +
|
| +#endif // INCLUDED_NVODM_QUERY_H
|
|
|