1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 3e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Copyright (C) 2001-2012 Broadcom Corporation 4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * you may not use this file except in compliance with the License. 7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * You may obtain a copy of the License at: 8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * See the License for the specific language governing permissions and 15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * limitations under the License. 16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Definitions for UPIO driver 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef UPIO_H 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_H 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Enumeration of UPIO features */ 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Not all features enumerated here are supported by the hardware. */ 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Use UPIO_Feature() to determine support of a particular feature. */ 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* LEDs */ 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_LED1, 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_LED2, 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_LED3, 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_LED4, 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_LED5, 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_LED6, 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_LED7, 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_LED8, 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Switches */ 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH1, 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH2, 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH3, 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH4, 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH5, 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH6, 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH7, 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH8, 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH9, 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH10, 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH11, 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH12, 55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH13, 56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH14, 57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH15, 58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_SWITCH16, 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Jumpers */ 61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_JUMPER1, 62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_JUMPER2, 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_JUMPER3, 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_JUMPER4, 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_JUMPER5, 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_JUMPER6, 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_JUMPER7, 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_JUMPER8, 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Push buttons */ 71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_BUTTON1, 72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_BUTTON2, 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_BUTTON3, 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_BUTTON4, 75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_BUTTON5, 76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_BUTTON6, 77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_BUTTON7, 78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_BUTTON8, 79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* General purpose */ 81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL1, 82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL2, 83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL3, 84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL4, 85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL5, 86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL6, 87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL7, 88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL8, 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL9, 90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL10, 91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL11, 92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL12, 93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL13, 94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL14, 95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL15, 96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL16, 97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL17, 98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL18, 99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL19, 100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL20, 101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL21, 102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL22, 103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL23, 104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL24, 105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL25, 106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL26, 107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL27, 108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL28, 109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL29, 110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL30, 111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL31, 112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_GENERAL32, 113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_IN_HIGH, /* Support for input with interrupt on high signal level. */ 115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_IN_LOW, /* Support for input with interrupt on low signal level. */ 116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_IN_RISE, /* Support for input with interrupt on rising edge. */ 117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_FEAT_IN_FALL /* Support for input with interrupt on falling. */ 118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUPIO_FEATURE; 121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Enumeration of UPIO configurations */ 124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_OUT, 127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_IN, 128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_IN_EDGE, 129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_IN_LEVEL, 130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_NONE 131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUPIO_CONFIG; 133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Enumeration of UPIO types */ 136e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_LED, /* LED */ 139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_SWITCH, /* Switch */ 140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_JUMPER, /* Jumper */ 141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_BUTTON, /* Push-button switch */ 142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_GENERAL, /* General purpose I/O */ 143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_NUMBER_OF_TYPES 145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUPIO_TYPE; 147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Enumeration of UPIO states */ 150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_OFF, 153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_ON, 154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_TOGGLE 155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUPIO_STATE; 157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectenum 160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_SW_BANK2, 162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_SW_BANK3 163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUPIO_SW_BANK; 165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Jumper masks */ 167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_JUMPER1 0x00000001 168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_JUMPER2 0x00000002 169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_JUMPER3 0x00000004 170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_JUMPER4 0x00000008 171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_JUMPER5 0x00000010 172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_JUMPER6 0x00000020 173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_JUMPER7 0x00000040 174e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_JUMPER8 0x00000080 175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* General purpose i/o masks */ 177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL1 0x00000001 178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL2 0x00000002 179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL3 0x00000004 180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL4 0x00000008 181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL5 0x00000010 182e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL6 0x00000020 183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL7 0x00000040 184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL8 0x00000080 185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL9 0x00000100 186e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL10 0x00000200 187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL11 0x00000400 188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL12 0x00000800 189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL13 0x00001000 190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL14 0x00002000 191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL15 0x00004000 192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL16 0x00008000 193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL17 0x00010000 194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL18 0x00020000 195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL19 0x00040000 196e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL20 0x00080000 197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL21 0x00100000 198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL22 0x00200000 199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL23 0x00400000 200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL24 0x00800000 201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL25 0x01000000 202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL26 0x02000000 203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL27 0x04000000 204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL28 0x08000000 205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL29 0x10000000 206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL30 0x20000000 207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL31 0x40000000 208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_GENERAL32 0x80000000 209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT32 tUPIO; 211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* LED masks */ 213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED1 0x00000001 214e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED2 0x00000002 215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED3 0x00000004 216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED4 0x00000008 217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED5 0x00000010 218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED6 0x00000020 219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED7 0x00000040 220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED8 0x00000080 221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_LED_ALL (UPIO_LED1 | UPIO_LED2 | UPIO_LED3 | UPIO_LED4 | \ 223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UPIO_LED5 | UPIO_LED6 | UPIO_LED7 | UPIO_LED8) 224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Switch masks */ 227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH1 0x00000001 228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH2 0x00000002 229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH3 0x00000004 230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH4 0x00000008 231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH5 0x00000010 232e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH6 0x00000020 233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH7 0x00000040 234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH8 0x00000080 235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH9 0x00000100 236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH10 0x00000200 237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH11 0x00000400 238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH12 0x00000800 239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH13 0x00001000 240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH14 0x00002000 241e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH15 0x00004000 242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_SWITCH16 0x00008000 243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Push button masks */ 245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_BUTTON1 0x00000001 246e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_BUTTON2 0x00000002 247e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_BUTTON3 0x00000004 248e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_BUTTON4 0x00000008 249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_BUTTON5 0x00000010 250e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_BUTTON6 0x00000020 251e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_BUTTON7 0x00000040 252e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UPIO_BUTTON8 0x00000080 253e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 254e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (tUPIO_CBACK)(tUPIO_TYPE type, tUPIO pio, tUPIO_STATE state); 255e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 256e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern "C" { 258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 260e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* API functions for UPIO driver */ 261e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 263e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 264e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UPIO_Init 265e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 266e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description 267e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Initialize the GPIO service. 268e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** This function is typically called once upon system startup. 269e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 270e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns nothing 271e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 272e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 273e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectUDRV_API void UPIO_Init(void *p_cfg); 274e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 275e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 276e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 277e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 278e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UPIO_Set 279e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 280e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description 281e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** This function sets one or more GPIO devices to the given state. 282e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Multiple GPIOs of the same type can be masked together to set more 283e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** than one GPIO. This function can only be used on types UPIO_LED and 284e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** UPIO_GENERAL. 285e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input Parameters: 287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** type The type of device. 288e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** pio Indicates the particular GPIOs. 289e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** state The desired state. 290e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 291e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameter: 292e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** None. 293e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 294e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns: 295e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** None. 296e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 297e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 298e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectUDRV_API void UPIO_Set(tUPIO_TYPE type, tUPIO pio, tUPIO_STATE state); 299e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 300e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 301e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 302e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 303e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UPIO_Read 304e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 305e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description 306e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Read the state of a GPIO. This function can be used for any type of 307e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** device. Parameter pio can only indicate a single GPIO; multiple GPIOs 308e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** cannot be masked together. 309e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 310e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input Parameters: 311e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Type: The type of device. 312e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** pio: Indicates the particular GUPIO. 313e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 314e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameter: 315e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** None. 316e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 317e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns: 318e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** State of GPIO (UPIO_ON or UPIO_OFF). 319e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 320e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 321e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectUDRV_API tUPIO_STATE UPIO_Read(tUPIO_TYPE type, tUPIO pio); 322e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 323e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 324e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 325e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 326e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UPIO_Config 327e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 328e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description - Configure GPIOs of type UPIO_GENERAL as inputs or outputs 329e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** - Configure GPIOs to be polled or interrupt driven 330e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 331e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Currently only support polled GPIOs. 332e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 333e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input Parameters: 334e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** type The type of device. 335e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** pio Indicates the particular GPIOs. 336e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** config 337e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** cback 338e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 339e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameter: 340e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** None. 341e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 342e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns: 343e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** None. 344e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 345e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 346e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectUDRV_API void UPIO_Config(tUPIO_TYPE type, tUPIO pio, tUPIO_CONFIG config, tUPIO_CBACK *cback); 347e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 348e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 349e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 350e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 351e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UPIO_Feature 352e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 353e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description 354e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Checks whether a feature of the pio API is supported 355e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 356e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input Parameter: 357e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** feature The feature to check 358e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 359e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameter: 360e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** None. 361e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 362e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns: 363e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** TRUE if feature is supported, FALSE if it is not. 364e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 365e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*****************************************************************************/ 366e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectUDRV_API BOOLEAN UPIO_Feature(tUPIO_FEATURE feature); 367e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 368e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 369e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 370e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 371e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 372e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* ifdef UPIO_H */ 373