10b966c5eSopenharmony_ci/******************************************************************************
20b966c5eSopenharmony_ci *
30b966c5eSopenharmony_ci *  Copyright (C) 2009-2012 Broadcom Corporation
40b966c5eSopenharmony_ci *
50b966c5eSopenharmony_ci *  Licensed under the Apache License, Version 2.0 (the "License");
60b966c5eSopenharmony_ci *  you may not use this file except in compliance with the License.
70b966c5eSopenharmony_ci *  You may obtain a copy of the License at:
80b966c5eSopenharmony_ci *
90b966c5eSopenharmony_ci *  http://www.apache.org/licenses/LICENSE-2.0
100b966c5eSopenharmony_ci *
110b966c5eSopenharmony_ci *  Unless required by applicable law or agreed to in writing, software
120b966c5eSopenharmony_ci *  distributed under the License is distributed on an "AS IS" BASIS,
130b966c5eSopenharmony_ci *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
140b966c5eSopenharmony_ci *  See the License for the specific language governing permissions and
150b966c5eSopenharmony_ci *  limitations under the License.
160b966c5eSopenharmony_ci *
170b966c5eSopenharmony_ci ******************************************************************************/
180b966c5eSopenharmony_ci
190b966c5eSopenharmony_ci/******************************************************************************
200b966c5eSopenharmony_ci *
210b966c5eSopenharmony_ci *  Filename:      upio.h
220b966c5eSopenharmony_ci *
230b966c5eSopenharmony_ci *  Description:   Contains definitions used for I/O controls
240b966c5eSopenharmony_ci *
250b966c5eSopenharmony_ci ******************************************************************************/
260b966c5eSopenharmony_ci
270b966c5eSopenharmony_ci#ifndef UPIO_H
280b966c5eSopenharmony_ci#define UPIO_H
290b966c5eSopenharmony_ci
300b966c5eSopenharmony_ci#include <stdint.h>
310b966c5eSopenharmony_ci/******************************************************************************
320b966c5eSopenharmony_ci**  Constants & Macros
330b966c5eSopenharmony_ci******************************************************************************/
340b966c5eSopenharmony_ci
350b966c5eSopenharmony_ci#define UPIO_BT_POWER_OFF 0
360b966c5eSopenharmony_ci#define UPIO_BT_POWER_ON  1
370b966c5eSopenharmony_ci
380b966c5eSopenharmony_ci/* UPIO signals */
390b966c5eSopenharmony_cienum {
400b966c5eSopenharmony_ci    UPIO_BT_WAKE = 0,
410b966c5eSopenharmony_ci    UPIO_HOST_WAKE,
420b966c5eSopenharmony_ci    UPIO_LPM_MODE,
430b966c5eSopenharmony_ci    UPIO_MAX_COUNT
440b966c5eSopenharmony_ci};
450b966c5eSopenharmony_ci
460b966c5eSopenharmony_ci/* UPIO assertion/deassertion */
470b966c5eSopenharmony_cienum {
480b966c5eSopenharmony_ci    UPIO_UNKNOWN = 0,
490b966c5eSopenharmony_ci    UPIO_DEASSERT,
500b966c5eSopenharmony_ci    UPIO_ASSERT
510b966c5eSopenharmony_ci};
520b966c5eSopenharmony_ci
530b966c5eSopenharmony_ci/******************************************************************************
540b966c5eSopenharmony_ci**  Extern variables and functions
550b966c5eSopenharmony_ci******************************************************************************/
560b966c5eSopenharmony_ci
570b966c5eSopenharmony_ci/******************************************************************************
580b966c5eSopenharmony_ci**  Functions
590b966c5eSopenharmony_ci******************************************************************************/
600b966c5eSopenharmony_ci
610b966c5eSopenharmony_ci/*******************************************************************************
620b966c5eSopenharmony_ci**
630b966c5eSopenharmony_ci** Function        upio_init
640b966c5eSopenharmony_ci**
650b966c5eSopenharmony_ci** Description     Initialization
660b966c5eSopenharmony_ci**
670b966c5eSopenharmony_ci** Returns         None
680b966c5eSopenharmony_ci**
690b966c5eSopenharmony_ci*******************************************************************************/
700b966c5eSopenharmony_civoid upio_init(void);
710b966c5eSopenharmony_ci
720b966c5eSopenharmony_ci/*******************************************************************************
730b966c5eSopenharmony_ci**
740b966c5eSopenharmony_ci** Function        upio_cleanup
750b966c5eSopenharmony_ci**
760b966c5eSopenharmony_ci** Description     Clean up
770b966c5eSopenharmony_ci**
780b966c5eSopenharmony_ci** Returns         None
790b966c5eSopenharmony_ci**
800b966c5eSopenharmony_ci*******************************************************************************/
810b966c5eSopenharmony_civoid upio_cleanup(void);
820b966c5eSopenharmony_ci
830b966c5eSopenharmony_ci/*******************************************************************************
840b966c5eSopenharmony_ci**
850b966c5eSopenharmony_ci** Function        upio_set_bluetooth_power
860b966c5eSopenharmony_ci**
870b966c5eSopenharmony_ci** Description     Interact with low layer driver to set Bluetooth power
880b966c5eSopenharmony_ci**                 on/off.
890b966c5eSopenharmony_ci**
900b966c5eSopenharmony_ci** Returns         0  : SUCCESS or Not-Applicable
910b966c5eSopenharmony_ci**                 <0 : ERROR
920b966c5eSopenharmony_ci**
930b966c5eSopenharmony_ci*******************************************************************************/
940b966c5eSopenharmony_ciint upio_set_bluetooth_power(int on);
950b966c5eSopenharmony_ci
960b966c5eSopenharmony_ci/*******************************************************************************
970b966c5eSopenharmony_ci**
980b966c5eSopenharmony_ci** Function        upio_set
990b966c5eSopenharmony_ci**
1000b966c5eSopenharmony_ci** Description     Set i/o based on polarity
1010b966c5eSopenharmony_ci**
1020b966c5eSopenharmony_ci** Returns         None
1030b966c5eSopenharmony_ci**
1040b966c5eSopenharmony_ci*******************************************************************************/
1050b966c5eSopenharmony_civoid upio_set(uint8_t pio, uint8_t action, uint8_t polarity);
1060b966c5eSopenharmony_ci
1070b966c5eSopenharmony_ci#endif /* UPIO_H */
1080b966c5eSopenharmony_ci
109