#!/bin/bash
RSYSLOG_ID="bluetooth"
RSYSLOG_FACILITY="local0"
SCRIPT_NAME=$(basename $BASH_SOURCE)

dbg_logger()
{
    logger -p ${RSYSLOG_FACILITY}.$1 -t ${RSYSLOG_ID} ${SCRIPT_NAME}: $2
}

load_v4_driver()
{
    dbg_logger "debug" "Unloading V4 driver"
    /usr/bin/hciconfig hci0 down
    /usr/sbin/rfkill unblock bluetooth
    /usr/bin/killall hciattach
    dbg_logger "debug" "Toggling BT module"
    /bin/sleep 1
    /bin/echo 't' > /dev/gpio_dev
    /bin/sleep 1
    /bin/echo 'T' > /dev/gpio_dev
    /bin/sleep 1
    dbg_logger "debug" "Loading V4 driver"
    /usr/bin/hciattach ttymxc1 qca -t120 115200 flow
    dbg_logger "debug" "Loading driver res $?"
}

load_legacy_driver()
{
    dbg_logger "debug" "Unloading legacy driver"
    /usr/bin/hciconfig hci0 down
    /usr/sbin/rfkill unblock bluetooth
    /usr/bin/killall hciattach
    dbg_logger "debug" "Toggling BT module"
    /bin/sleep 1
    /bin/echo 't' > /dev/gpio_dev
    /bin/sleep 1
    /bin/echo 'T' > /dev/gpio_dev
    /bin/sleep 1
    dbg_logger "debug" "Loading legacy driver"
    /usr/bin/hciattach ttymxc1 texas -t120 3000000 flow
    dbg_logger "debug" "Loading driver res $?"
}

MODEL=$(cat /proc/device-tree/model | grep V4 2>/dev/null)
if [ $? -eq 0 ]; then
    load_v4_driver
else
    load_legacy_driver
fi
