summaryrefslogtreecommitdiffstats
path: root/libbt/src/upio.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbt/src/upio.c')
-rw-r--r--libbt/src/upio.c298
1 files changed, 0 insertions, 298 deletions
diff --git a/libbt/src/upio.c b/libbt/src/upio.c
deleted file mode 100644
index d32f334..0000000
--- a/libbt/src/upio.c
+++ /dev/null
@@ -1,298 +0,0 @@
-/******************************************************************************
- *
- * Copyright (C) 2009-2012 Broadcom Corporation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * Filename: upio.c
- *
- * Description: Contains I/O functions, like
- * rfkill control
- * BT_WAKE/HOST_WAKE control
- *
- ******************************************************************************/
-
-#define LOG_TAG "bt_upio"
-
-#include <utils/Log.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <cutils/properties.h>
-#include "bt_vendor_brcm.h"
-#include "upio.h"
-#include "userial_vendor.h"
-
-/******************************************************************************
-** Constants & Macros
-******************************************************************************/
-
-#ifndef UPIO_DBG
-#define UPIO_DBG FALSE
-#endif
-
-#if (UPIO_DBG == TRUE)
-#define UPIODBG(param, ...) {ALOGD(param, ## __VA_ARGS__);}
-#else
-#define UPIODBG(param, ...) {}
-#endif
-
-/******************************************************************************
-** Local type definitions
-******************************************************************************/
-
-/******************************************************************************
-** Static variables
-******************************************************************************/
-
-static uint8_t upio_state[UPIO_MAX_COUNT];
-static int rfkill_id = -1;
-static int bt_emul_enable = 0;
-static char *rfkill_state_path = NULL;
-
-/******************************************************************************
-** Static functions
-******************************************************************************/
-
-/* for friendly debugging outpout string */
-static char *lpm_state[] = {
- "UNKNOWN",
- "de-asserted",
- "asserted"
-};
-
-/*****************************************************************************
-** Bluetooth On/Off Static Functions
-*****************************************************************************/
-static int is_emulator_context(void)
-{
- char value[PROPERTY_VALUE_MAX];
-
- property_get("ro.kernel.qemu", value, "0");
- UPIODBG("is_emulator_context : %s", value);
- if (strcmp(value, "1") == 0) {
- return 1;
- }
- return 0;
-}
-
-static int is_rfkill_disabled(void)
-{
- char value[PROPERTY_VALUE_MAX];
-
- property_get("ro.rfkilldisabled", value, "0");
- UPIODBG("is_rfkill_disabled ? [%s]", value);
-
- if (strcmp(value, "1") == 0) {
- return UPIO_BT_POWER_ON;
- }
-
- return UPIO_BT_POWER_OFF;
-}
-
-static int init_rfkill()
-{
- char path[64];
- char buf[16];
- int fd, sz, id;
-
- if (is_rfkill_disabled())
- return -1;
-
- for (id = 0; ; id++)
- {
- snprintf(path, sizeof(path), "/sys/class/rfkill/rfkill%d/type", id);
- fd = open(path, O_RDONLY);
- if (fd < 0)
- {
- ALOGE("init_rfkill : open(%s) failed: %s (%d)\n", \
- path, strerror(errno), errno);
- return -1;
- }
-
- sz = read(fd, &buf, sizeof(buf));
- close(fd);
-
- if (sz >= 9 && memcmp(buf, "bluetooth", 9) == 0)
- {
- rfkill_id = id;
- break;
- }
- }
-
- asprintf(&rfkill_state_path, "/sys/class/rfkill/rfkill%d/state", rfkill_id);
- return 0;
-}
-
-/*****************************************************************************
-** LPM Static Functions
-*****************************************************************************/
-
-/*****************************************************************************
-** UPIO Interface Functions
-*****************************************************************************/
-
-/*******************************************************************************
-**
-** Function upio_init
-**
-** Description Initialization
-**
-** Returns None
-**
-*******************************************************************************/
-void upio_init(void)
-{
- memset(upio_state, UPIO_UNKNOWN, UPIO_MAX_COUNT);
-}
-
-/*******************************************************************************
-**
-** Function upio_cleanup
-**
-** Description Clean up
-**
-** Returns None
-**
-*******************************************************************************/
-void upio_cleanup(void)
-{
-}
-
-/*******************************************************************************
-**
-** Function upio_set_bluetooth_power
-**
-** Description Interact with low layer driver to set Bluetooth power
-** on/off.
-**
-** Returns 0 : SUCCESS or Not-Applicable
-** <0 : ERROR
-**
-*******************************************************************************/
-int upio_set_bluetooth_power(int on)
-{
- int sz;
- int fd = -1;
- int ret = -1;
- char buffer = '0';
-
- switch(on)
- {
- case UPIO_BT_POWER_OFF:
- buffer = '0';
- break;
-
- case UPIO_BT_POWER_ON:
- buffer = '1';
- break;
- }
-
- if (is_emulator_context())
- {
- /* if new value is same as current, return -1 */
- if (bt_emul_enable == on)
- return ret;
-
- UPIODBG("set_bluetooth_power [emul] %d", on);
-
- bt_emul_enable = on;
- return 0;
- }
-
- /* check if we have rfkill interface */
- if (is_rfkill_disabled())
- return 0;
-
- if (rfkill_id == -1)
- {
- if (init_rfkill())
- return ret;
- }
-
- fd = open(rfkill_state_path, O_WRONLY);
-
- if (fd < 0)
- {
- ALOGE("set_bluetooth_power : open(%s) for write failed: %s (%d)",
- rfkill_state_path, strerror(errno), errno);
- return ret;
- }
-
- sz = write(fd, &buffer, 1);
-
- if (sz < 0) {
- ALOGE("set_bluetooth_power : write(%s) failed: %s (%d)",
- rfkill_state_path, strerror(errno),errno);
- }
- else
- ret = 0;
-
- if (fd >= 0)
- close(fd);
-
- return ret;
-}
-
-
-/*******************************************************************************
-**
-** Function upio_set
-**
-** Description Set i/o based on polarity
-**
-** Returns None
-**
-*******************************************************************************/
-void upio_set(uint8_t pio, uint8_t action, uint8_t polarity)
-{
- int rc;
-
- switch (pio)
- {
- case UPIO_BT_WAKE:
-
- if (upio_state[UPIO_BT_WAKE] == action)
- {
- UPIODBG("BT_WAKE is %s already", lpm_state[action]);
- return;
- }
-
- upio_state[UPIO_BT_WAKE] = action;
-
- /****************************************
- * !!! TODO !!!
- *
- * === Custom Porting Required ===
- *
- * Platform dependent user-to-kernel
- * interface is required to set output
- * state of physical BT_WAKE pin.
- ****************************************/
-#if (BT_WAKE_VIA_USERIAL_IOCTL == TRUE)
- userial_vendor_ioctl( ( (action==UPIO_ASSERT) ? \
- USERIAL_OP_ASSERT_BT_WAKE : USERIAL_OP_DEASSERT_BT_WAKE),\
- NULL);
-#endif
- break;
-
- case UPIO_HOST_WAKE:
- UPIODBG("upio_set: UPIO_HOST_WAKE");
- break;
- }
-}
-
-