summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/nvrm/io/ap15/nvrm_gpio_private.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/nvrm/io/ap15/nvrm_gpio_private.c')
-rw-r--r--arch/arm/mach-tegra/nvrm/io/ap15/nvrm_gpio_private.c186
1 files changed, 0 insertions, 186 deletions
diff --git a/arch/arm/mach-tegra/nvrm/io/ap15/nvrm_gpio_private.c b/arch/arm/mach-tegra/nvrm/io/ap15/nvrm_gpio_private.c
deleted file mode 100644
index 361413dec1a1..000000000000
--- a/arch/arm/mach-tegra/nvrm/io/ap15/nvrm_gpio_private.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * 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.
- *
- */
-
-#include "nvrm_gpio_private.h"
-#include "nvassert.h"
-#include "nvos.h"
-
-static NvRmGpioCaps s_ap15_caps = {6, 4, GPIO_PINS_PER_PORT, NVRM_GPIO_CAP_FEAT_EDGE_INTR /* (SEE BUG# 366493) */};
-
-static NvRmModuleCapability s_capsArray[] = {
- /* Major, minor, eco and caps structure */
- { 2, 0, 0, &s_ap15_caps },
-};
-
-static NvBool s_GpioIoPowerInitialized = NV_FALSE;
-
-static NvRmGpioIoPowerInfo s_GpioIoPowerTable[] =
-{
- {NV_VDD_SYS_ODM_ID, 0},
- {NV_VDD_BB_ODM_ID, 0},
- {NV_VDD_VI_ODM_ID, 0},
- {NV_VDD_SDIO_ODM_ID, 0},
- {NV_VDD_LCD_ODM_ID, 0},
- {NV_VDD_UART_ODM_ID, 0}
-};
-
-NvError
-NvRmGpioGetCapabilities(
- NvRmDeviceHandle hRm,
- void **Capability )
-{
- NvError err = NvSuccess;
-
- NV_ASSERT(hRm);
-
- err = NvRmModuleGetCapabilities(hRm, NvRmPrivModuleID_Gpio, s_capsArray,
- NV_ARRAY_SIZE(s_capsArray), Capability);
- if (err)
- {
- /* Default to AP15 caps.
- FIXME: findout why the RM API is returning failure. */
- NV_ASSERT(0);
- *Capability = (void*)&s_ap15_caps;
- }
-
- ((NvRmGpioCaps *)*Capability)->Instances =
- NvRmModuleGetNumInstances(hRm, NvRmPrivModuleID_Gpio);
-
- return err;
-}
-
-static NvError NvRmGpioIoPowerDiscover(
- NvRmDeviceHandle hRm)
-{
- NvU32 i;
- const NvOdmPeripheralConnectivity* pCon = NULL;
-
- for (i = 0; i < NV_ARRAY_SIZE(s_GpioIoPowerTable); i++)
- {
- pCon = NvOdmPeripheralGetGuid(s_GpioIoPowerTable[i].PowerRailId);
- if (!pCon || !pCon->NumAddress)
- return NvError_NotSupported;
- s_GpioIoPowerTable[i].PmuRailAddress = pCon->AddressList[0].Address;
- }
- return NvSuccess;
-}
-
-NvError NvRmGpioIoPowerConfig(
- NvRmDeviceHandle hRm,
- NvU32 port,
- NvU32 pinNumber,
- NvBool Enable)
-{
- NvRmPmuVddRailCapabilities RailCaps;
- NvU32 SettlingTime;
- NvRmGpioIoPowerInfo *pGpioIoPower;
-
- if (!s_GpioIoPowerInitialized)
- {
- NvError err = NvRmGpioIoPowerDiscover(hRm);
- if (err)
- return err;
- s_GpioIoPowerInitialized = NV_TRUE;
- }
-
- if ((port == GPIO_PORT('s')) ||
- (port == GPIO_PORT('q')) ||
- (port == GPIO_PORT('r')))
- {
- /* NV_VDD_SYS_ODM_ID */
- pGpioIoPower = &s_GpioIoPowerTable[0];
- }
- else if ((port == GPIO_PORT('o')) ||
- ((port == GPIO_PORT('v')) && (pinNumber < 4)))
- {
- /* NV_VDD_BB_ODM_ID */
- pGpioIoPower = &s_GpioIoPowerTable[1];
- }
- else if ((port == GPIO_PORT('l')) ||
- ((port == GPIO_PORT('d')) && (pinNumber > 4)) ||
- ((port == GPIO_PORT('t')) && (pinNumber < 5)))
- {
- /* NV_VDD_VI_ODM_ID */
- pGpioIoPower = &s_GpioIoPowerTable[2];
- }
- else if (((port == GPIO_PORT('d')) && (pinNumber < 5)) ||
- ((port == GPIO_PORT('b')) && (pinNumber > 3)) ||
- ((port == GPIO_PORT('v')) && ((pinNumber > 3) &&
- (pinNumber < 7))) ||
- ((port == GPIO_PORT('a')) && ((pinNumber > 5) ||
- (pinNumber == 0))))
- {
- /* NV_VDD_SDIO_ODM_ID */
- pGpioIoPower = &s_GpioIoPowerTable[3];
- }
- else if ((port == GPIO_PORT('e')) ||
- (port == GPIO_PORT('f')) ||
- (port == GPIO_PORT('m')) ||
- ((port == GPIO_PORT('c')) && ((pinNumber == 1) ||
- (pinNumber == 6))) ||
- ((port == GPIO_PORT('w')) && (pinNumber < 2)) ||
- ((port == GPIO_PORT('j')) && ((pinNumber == 1) ||
- (pinNumber == 3) || (pinNumber == 4))) ||
- ((port == GPIO_PORT('v')) && (pinNumber == 7)) ||
- ((port == GPIO_PORT('n')) && (pinNumber > 3)) ||
- ((port == GPIO_PORT('b')) && ((pinNumber == 2) ||
- (pinNumber == 3))))
- {
- /* NV_VDD_LCD_ODM_ID */
- pGpioIoPower = &s_GpioIoPowerTable[4];
- }
- else
- {
- /* NV_VDD_UART_ODM_ID */
- pGpioIoPower = &s_GpioIoPowerTable[5];
- }
-
- if (Enable)
- {
- NvRmPmuGetCapabilities(hRm,
- pGpioIoPower->PmuRailAddress, &RailCaps);
- NvRmPmuSetVoltage(hRm,
- pGpioIoPower->PmuRailAddress,
- RailCaps.requestMilliVolts, &SettlingTime);
- }
- else
- {
- NvRmPmuSetVoltage(hRm,
- pGpioIoPower->PmuRailAddress,
- ODM_VOLTAGE_OFF, &SettlingTime);
- }
- if (SettlingTime)
- NvOsWaitUS(SettlingTime);
-
- return NvSuccess;
-}
-