Fix bt-dev-start script for rpi3
[platform/adaptation/bluetooth-firmware-bcm.git] / scripts / bt-dev-start-rpi3.sh
1 #!/bin/sh
2 PATH=/bin:/usr/bin:/sbin:/usr/sbin
3
4 # Script for registering Broadcom UART BT device
5 BT_UART_DEVICE=/dev/ttyAMA0
6 BT_CHIP_TYPE=bcm43xx
7 BT_MAC_FILE=/opt/etc/.bd_addr
8
9 BT_PLATFORM_DEFAULT_HCI_NAME="TIZEN-Mobile"
10 UART_SPEED=921600
11
12 HCI_CONFIG=/usr/bin/hciconfig
13 HCI_ATTACH=/usr/bin/hciattach
14
15 if [ ! -e "$BT_UART_DEVICE" ]
16 then
17         mknod $BT_UART_DEVICE c 204 64
18 fi
19
20 GEN_BDADDR(){
21         echo "BT Mac addr generates randomly."
22         MAC_PRE=$(echo "00:02:")
23         MAC_POST=$(/usr/bin/openssl rand -hex 4 | sed 's/\(..\)/\1:/g; s/.$//')
24         echo "Random : $MAC_PRE$MAC_POST"
25         BT_MAC=$MAC_PRE$MAC_POST
26 }
27
28 if [ ! -e "$BT_MAC_FILE" ]
29 then
30         # Set BT address
31         GEN_BDADDR
32         echo $BT_MAC > ${BT_MAC_FILE}
33 else
34         BT_MAC=$(cat ${BT_MAC_FILE})
35 fi
36
37 echo $BT_MAC
38
39 echo "Check for Bluetooth device status"
40 if ($HCI_CONFIG | grep hci); then
41         echo "Bluetooth device is UP"
42         $HCI_CONFIG hci0 up
43 else
44         echo "Bluetooth device is DOWN"
45         echo "Registering Bluetooth device"
46
47         # Attaching Broadcom device
48         flag=0
49         for ((i=0; i<2; i++))
50         do
51                 if ($HCI_ATTACH $BT_UART_DEVICE $BT_CHIP_TYPE $UART_SPEED noflow nosleep $BT_MAC -t 5); then
52                         sleep 0.1
53                         $HCI_CONFIG hci0 up
54                         $HCI_CONFIG hci0 name $BT_PLATFORM_DEFAULT_HCI_NAME
55                         $HCI_CONFIG hci0 sspmode 1
56                         echo "HCIATTACH success"
57                         flag=1
58                         break
59                 fi
60         done
61
62         if [ $flag -eq 0 ]
63         then
64                 echo "HCIATTACH failed"
65         fi
66 fi