diff options
author | Gary King <gking@nvidia.com> | 2010-05-14 10:36:33 -0700 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-05-14 20:04:06 -0700 |
commit | 106de33bf7f410bade659e110a5a7b187b46b8b2 (patch) | |
tree | 4d8231dc38fb3c05b6ccb911ff1e3b840d1d444b /arch/arm/mach-tegra/odm_kit/query/whistler/include | |
parent | e0426ba3077eae7e326c56487f34719f9638ddb5 (diff) |
[ARM/tegra] add NvRm, ODM services, ODM kit for harmony & whistler
add power rail support to GPIO driver
Change-Id: I45d4c1110a635047d68fb14f3e72a28f99acbe1b
Diffstat (limited to 'arch/arm/mach-tegra/odm_kit/query/whistler/include')
-rw-r--r-- | arch/arm/mach-tegra/odm_kit/query/whistler/include/nvodm_imager_guids.h | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/odm_kit/query/whistler/include/nvodm_imager_guids.h b/arch/arm/mach-tegra/odm_kit/query/whistler/include/nvodm_imager_guids.h new file mode 100644 index 000000000000..869aedf1eb67 --- /dev/null +++ b/arch/arm/mach-tegra/odm_kit/query/whistler/include/nvodm_imager_guids.h @@ -0,0 +1,191 @@ +/* + * 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 NVODM_IMAGER_GUIDS_H +#define NVODM_IMAGER_GUIDS_H + +#include "nvodm_query_discovery.h" + +// E912-A02 and Concorde2 Sensors +#define OV5630_GUID NV_ODM_GUID('s','_','O','V','5','6','3','0') + +// E911 Sensors +#define MI5130_GUID NV_ODM_GUID('s','_','M','I','5','1','3','0') +#define SEMCOVGA_GUID NV_ODM_GUID('S','E','M','C','O','V','G','A') + +// E911 Focusers +// focuser for MI5130 +#define DW9710_GUID NV_ODM_GUID('f','_','D','W','9','7','1','0') + +/// focuser for OV5630 +#define AD5820_GUID NV_ODM_GUID('f','_','A','D','5','8','2','0') + +// E911 Flash +#define LTC3216_GUID NV_ODM_GUID('l','_','L','T','3','2','1','6') + +// io addresses common to all imagers (clock) +#define COMMONIMAGER_GUID NV_ODM_GUID('s', '_', 'c', 'o', 'm', 'm', 'o', 'n') + +// Pin Use Codes: +// VI/CSI Parallel and Serial Pins and GPIO Pins + +// More than one device may be retrieved thru the query +#define NVODM_CAMERA_DEVICE_IS_DEFAULT (1) + +// The imager devices can connect to the parallel bus or the serial bus +// Parallel connections use pins VD0 thru VD9. +// Serial connections use the mipi pins (ex: CSI_D1AN/CSI_D1AP) +#define NVODM_CAMERA_DATA_PIN_SHIFT (1) +#define NVODM_CAMERA_DATA_PIN_MASK 0x0F +#define NVODM_CAMERA_PARALLEL_VD0_TO_VD9 (1 << NVODM_CAMERA_DATA_PIN_SHIFT) +#define NVODM_CAMERA_PARALLEL_VD0_TO_VD7 (2 << NVODM_CAMERA_DATA_PIN_SHIFT) +#define NVODM_CAMERA_SERIAL_CSI_D1A (4 << NVODM_CAMERA_DATA_PIN_SHIFT) +#define NVODM_CAMERA_SERIAL_CSI_D2A (5 << NVODM_CAMERA_DATA_PIN_SHIFT) +#define NVODM_CAMERA_SERIAL_CSI_D1A_D2A (6 << NVODM_CAMERA_DATA_PIN_SHIFT) +#define NVODM_CAMERA_SERIAL_CSI_D1B (7 << NVODM_CAMERA_DATA_PIN_SHIFT) + +// Switching the encoding from the VideoInput module address to use with +// each GPIO module address. +// NVODM_IMAGER_GPIO will tell the nvodm imager how to use each gpio +// A gpio can be used for powerdown (lo, hi) or !powerdown (hi, lo) +// used for reset (hi, lo, hi) or for !reset (lo, hi, lo) +// Or, for mclk or pwm (unimplemented yet) +// We have moved the flash to its own, so it is not needed here +#define NVODM_IMAGER_GPIO_PIN_SHIFT (24) +#define NVODM_IMAGER_UNUSED (0x0) +#define NVODM_IMAGER_RESET (0x1 << NVODM_IMAGER_GPIO_PIN_SHIFT) +#define NVODM_IMAGER_RESET_AL (0x2 << NVODM_IMAGER_GPIO_PIN_SHIFT) +#define NVODM_IMAGER_POWERDOWN (0x3 << NVODM_IMAGER_GPIO_PIN_SHIFT) +#define NVODM_IMAGER_POWERDOWN_AL (0x4 << NVODM_IMAGER_GPIO_PIN_SHIFT) +// only on VGP0 +#define NVODM_IMAGER_MCLK (0x8 << NVODM_IMAGER_GPIO_PIN_SHIFT) +// only on VGP6 +#define NVODM_IMAGER_PWM (0x9 << NVODM_IMAGER_GPIO_PIN_SHIFT) +// If flash code wants the gpio's labelled +// use for any purpose, or not at all +#define NVODM_IMAGER_FLASH0 (0x5 << NVODM_IMAGER_GPIO_PIN_SHIFT) +#define NVODM_IMAGER_FLASH1 (0x6 << NVODM_IMAGER_GPIO_PIN_SHIFT) +#define NVODM_IMAGER_FLASH2 (0x7 << NVODM_IMAGER_GPIO_PIN_SHIFT) +// Shutter control +#define NVOSM_IMAGER_SHUTTER (0xA << NVODM_IMAGER_GPIO_PIN_SHIFT) +// + +#define NVODM_IMAGER_MASK (0xF << NVODM_IMAGER_GPIO_PIN_SHIFT) +#define NVODM_IMAGER_CLEAR(_s) ((_s) & ~(NVODM_IMAGER_MASK)) +#define NVODM_IMAGER_IS_SET(_s) (((_s) & (NVODM_IMAGER_MASK)) != 0) +#define NVODM_IMAGER_FIELD(_s) ((_s) >> NVODM_IMAGER_GPIO_PIN_SHIFT) + +// The imager devices can connect to the vi gpio (VGP) pins +// for various reasons: flash, powerdown, reset, pwm, mclk. +// Only certain pins can be used for certain activities. +// These flags should be OR'd together to form the proper 'address' +// in the NvOdmIoAddress for VideoInput. +// VGP1 & VGP2 are used for i2c +// _AL means 'active low', otherwise active high is assumed + +#define NVODM_CAMERA_GPIO_PIN_SHIFT (8) +#define NVODM_CAMERA_GPIO_PIN_MASK (0x7) +#define NVODM_CAMERA_GPIO_PIN_WIDTH 3 +#define NVODM_CAMERA_GPIO_PIN_COUNT 7 + +#define NVODM_CAMERA_UNUSED (0x0) +#define NVODM_CAMERA_RESET(_s) (0x1 << (_s+NVODM_CAMERA_GPIO_PIN_SHIFT)) +#define NVODM_CAMERA_RESET_AL(_s) (0x2 << (_s+NVODM_CAMERA_GPIO_PIN_SHIFT)) +#define NVODM_CAMERA_POWERDOWN(_s) (0x3 << (_s+NVODM_CAMERA_GPIO_PIN_SHIFT)) +#define NVODM_CAMERA_POWERDOWN_AL(_s) (0x4 << (_s+NVODM_CAMERA_GPIO_PIN_SHIFT)) +#define NVODM_CAMERA_FLASH_LOW(_s) (0x5 << (_s+NVODM_CAMERA_GPIO_PIN_SHIFT)) +#define NVODM_CAMERA_FLASH_HIGH(_s) (0x6 << (_s+NVODM_CAMERA_GPIO_PIN_SHIFT)) +// only on VGP0 +#define NVODM_CAMERA_MCLK(_s) (0x7 << (_s+NVODM_CAMERA_GPIO_PIN_SHIFT)) +// only on VGP6 +#define NVODM_CAMERA_PWM(_s) (0x7 << (_s+NVODM_CAMERA_GPIO_PIN_SHIFT)) + +#define NVODM_VGP0_SHIFT 0 +#define NVODM_VD10_SHIFT (1*NVODM_CAMERA_GPIO_PIN_WIDTH) +#define NVODM_VD11_SHIFT (2*NVODM_CAMERA_GPIO_PIN_WIDTH) +#define NVODM_VGP3_SHIFT (3*NVODM_CAMERA_GPIO_PIN_WIDTH) +#define NVODM_VGP4_SHIFT (4*NVODM_CAMERA_GPIO_PIN_WIDTH) +#define NVODM_VGP5_SHIFT (5*NVODM_CAMERA_GPIO_PIN_WIDTH) +#define NVODM_VGP6_SHIFT (6*NVODM_CAMERA_GPIO_PIN_WIDTH) + +// VGP0 +#define NVODM_CAMERA_VGP0_RESET NVODM_CAMERA_RESET(NVODM_VGP0_SHIFT) +#define NVODM_CAMERA_VGP0_RESET_AL NVODM_CAMERA_RESET_AL(NVODM_VGP0_SHIFT) +#define NVODM_CAMERA_VGP0_POWERDOWN NVODM_CAMERA_POWERDOWN(NVODM_VGP0_SHIFT) +#define NVODM_CAMERA_VGP0_POWERDOWN_AL NVODM_CAMERA_POWERDOWN_AL(NVODM_VGP0_SHIFT) +#define NVODM_CAMERA_VGP0_FLASH_LOW NVODM_CAMERA_FLASH_LOW(NVODM_VGP0_SHIFT) +#define NVODM_CAMERA_VGP0_FLASH_HIGH NVODM_CAMERA_FLASH_HIGH(NVODM_VGP0_SHIFT) +#define NVODM_CAMERA_VGP0_MCLK NVODM_CAMERA_MCLK(NVODM_VGP0_SHIFT) +// VD10 +#define NVODM_CAMERA_VD10_RESET NVODM_CAMERA_RESET(NVODM_VD10_SHIFT) +#define NVODM_CAMERA_VD10_RESET_AL NVODM_CAMERA_RESET_AL(NVODM_VD10_SHIFT) +#define NVODM_CAMERA_VD10_POWERDOWN NVODM_CAMERA_POWERDOWN(NVODM_VD10_SHIFT) +#define NVODM_CAMERA_VD10_POWERDOWN_AL NVODM_CAMERA_POWERDOWN_AL(NVODM_VD10_SHIFT) +#define NVODM_CAMERA_VD10_FLASH_LOW NVODM_CAMERA_FLASH_LOW(NVODM_VD10_SHIFT) +#define NVODM_CAMERA_VD10_FLASH_HIGH NVODM_CAMERA_FLASH_HIGH(NVODM_VD10_SHIFT) +// VD11 +#define NVODM_CAMERA_VD11_RESET NVODM_CAMERA_RESET(NVODM_VD11_SHIFT) +#define NVODM_CAMERA_VD11_RESET_AL NVODM_CAMERA_RESET_AL(NVODM_VD11_SHIFT) +#define NVODM_CAMERA_VD11_POWERDOWN NVODM_CAMERA_POWERDOWN(NVODM_VD11_SHIFT) +#define NVODM_CAMERA_VD11_POWERDOWN_AL NVODM_CAMERA_POWERDOWN_AL(NVODM_VD11_SHIFT) +#define NVODM_CAMERA_VD11_FLASH_LOW NVODM_CAMERA_FLASH_LOW(NVODM_VD11_SHIFT) +#define NVODM_CAMERA_VD11_FLASH_HIGH NVODM_CAMERA_FLASH_HIGH(NVODM_VD11_SHIFT) +// VGP3 +#define NVODM_CAMERA_VGP3_RESET NVODM_CAMERA_RESET(NVODM_VGP3_SHIFT) +#define NVODM_CAMERA_VGP3_RESET_AL NVODM_CAMERA_RESET_AL(NVODM_VGP3_SHIFT) +#define NVODM_CAMERA_VGP3_POWERDOWN NVODM_CAMERA_POWERDOWN(NVODM_VGP3_SHIFT) +#define NVODM_CAMERA_VGP3_POWERDOWN_AL NVODM_CAMERA_POWERDOWN_AL(NVODM_VGP3_SHIFT) +#define NVODM_CAMERA_VGP3_FLASH_LOW NVODM_CAMERA_FLASH_LOW(NVODM_VGP3_SHIFT) +#define NVODM_CAMERA_VGP3_FLASH_HIGH NVODM_CAMERA_FLASH_HIGH(NVODM_VGP3_SHIFT) +// VGP4 +#define NVODM_CAMERA_VGP4_RESET NVODM_CAMERA_RESET(NVODM_VGP4_SHIFT) +#define NVODM_CAMERA_VGP4_RESET_AL NVODM_CAMERA_RESET_AL(NVODM_VGP4_SHIFT) +#define NVODM_CAMERA_VGP4_POWERDOWN NVODM_CAMERA_POWERDOWN(NVODM_VGP4_SHIFT) +#define NVODM_CAMERA_VGP4_POWERDOWN_AL NVODM_CAMERA_POWERDOWN_AL(NVODM_VGP4_SHIFT) +#define NVODM_CAMERA_VGP4_FLASH_LOW NVODM_CAMERA_FLASH_LOW(NVODM_VGP4_SHIFT) +#define NVODM_CAMERA_VGP4_FLASH_HIGH NVODM_CAMERA_FLASH_HIGH(NVODM_VGP4_SHIFT) +// VGP5 +#define NVODM_CAMERA_VGP5_RESET NVODM_CAMERA_RESET(NVODM_VGP5_SHIFT) +#define NVODM_CAMERA_VGP5_RESET_AL NVODM_CAMERA_RESET_AL(NVODM_VGP5_SHIFT) +#define NVODM_CAMERA_VGP5_POWERDOWN NVODM_CAMERA_POWERDOWN(NVODM_VGP5_SHIFT) +#define NVODM_CAMERA_VGP5_POWERDOWN_AL NVODM_CAMERA_POWERDOWN_AL(NVODM_VGP5_SHIFT) +#define NVODM_CAMERA_VGP5_FLASH_LOW NVODM_CAMERA_FLASH_LOW(NVODM_VGP5_SHIFT) +#define NVODM_CAMERA_VGP5_FLASH_HIGH NVODM_CAMERA_FLASH_HIGH(NVODM_VGP5_SHIFT) +// VGP6 +#define NVODM_CAMERA_VGP6_RESET NVODM_CAMERA_RESET(NVODM_VGP6_SHIFT) +#define NVODM_CAMERA_VGP6_RESET_AL NVODM_CAMERA_RESET_AL(NVODM_VGP6_SHIFT) +#define NVODM_CAMERA_VGP6_POWERDOWN NVODM_CAMERA_POWERDOWN(NVODM_VGP6_SHIFT) +#define NVODM_CAMERA_VGP6_POWERDOWN_AL NVODM_CAMERA_POWERDOWN_AL(NVODM_VGP6_SHIFT) +#define NVODM_CAMERA_VGP6_FLASH_LOW NVODM_CAMERA_FLASH_LOW(NVODM_VGP6_SHIFT) +#define NVODM_CAMERA_VGP6_FLASH_HIGH NVODM_CAMERA_FLASH_HIGH(NVODM_VGP6_SHIFT) +#define NVODM_CAMERA_VGP6_PWM NVODM_CAMERA_PWM(NVODM_VGP6_SHIFT) + +#endif |