2 PATH=/bin:/usr/bin:/sbin:/usr/sbin
4 # Script for registering Broadcom UART BT device
5 BT_UART_DEVICE=/dev/ttySAC3
7 BCM_TOOL=/usr/bin/brcm_patchram_plus
9 BT_PLATFORM_DEFAULT_HCI_NAME="TIZEN-Mobile"
14 BCM_FIRMWARE=BT_FW_BCM4358A1_001.002.005.0032.0066.hcd
16 REVISION_NUM=`grep Revision /proc/cpuinfo | awk "{print \\$3}"`
17 REVISION_HIGH=`echo $REVISION_NUM| cut -c1-2`
18 REVISION_LOW=`echo $REVISION_NUM| cut -c3-`
20 HARDWARE=`grep Hardware /proc/cpuinfo | awk "{print \\$3}"`
24 HARDWARE=`cat /proc/device-tree/model | awk "{print \\$2}"`
29 BT_UART_DEVICE=/dev/ttySAC2
30 BCM_TOOL=/usr/bin/brcm_patchram_plus
31 BCM_FIRMWARE=BCM4354_003.001.012.0353.0745_Samsung_Artik_ORC.hcd
35 BT_UART_DEVICE=/dev/ttySAC0
36 BCM_TOOL=/usr/bin/brcm_patchram_plus
37 BCM_FIRMWARE=BCM4354_003.001.012.0353.0745_Samsung_Artik_ORC.hcd
41 BT_UART_DEVICE=/dev/ttySAC1
42 BCM_TOOL=/usr/bin/brcm_patchram_plus
43 BCM_FIRMWARE=BCM4345C0_003.001.025.0111.0205.hcd
51 for x in $(cat /proc/cmdline); do
61 if [ -z "${HARDWARE##ARTIK*}" ]; then
65 if [ ! -e "$BT_UART_DEVICE" ]
67 mknod $BT_UART_DEVICE c 204 64
70 if [ ! -e /opt/etc/.bd_addr ]
76 # Trun-on Bluetooth Chip
77 /usr/sbin/rfkill unblock bluetooth
79 echo "Check for Bluetooth device status"
80 if (/usr/bin/hciconfig | grep hci); then
81 echo "Bluetooth device is UP"
82 /usr/bin/hciconfig hci0 up
84 echo "Bluetooth device is DOWN"
85 echo "Registering Bluetooth device"
86 echo "change auth of brodcom tool"
89 # In tizenW hardware first time bcmtool download may not success, hence we need to try more times
92 for (( c=1; c<=$MAXBCMTOOLTRY; c++))
94 echo "******* Bcmtool download attempt $c ********"
97 $BCM_TOOL $BT_UART_DEVICE --patchram /usr/etc/bluetooth/$BCM_FIRMWARE --no2bytes --baudrate $UART_SPEED --use_baudrate_for_download $BT_UART_DEVICE --bd_addr ${BD_ADDR} > /dev/null 2>&1 &
99 $BCM_TOOL $BT_UART_DEVICE --patchram /usr/etc/bluetooth/$BCM_FIRMWARE --no2bytes --baudrate $UART_SPEED --use_baudrate_for_download $BT_UART_DEVICE --enable_lpm > /dev/null 2>&1 &
103 #Check next timeout seconds for bcmtool success
104 for (( i=1; i<=$TIMEOUT; i++))
110 if [ $i -eq $TIMEOUT ]
112 echo "time expired happen $i"
113 kill -TERM $bcmtool_pid
115 # ${RFKILL} block bluetooth
119 if [ $bcmtool_alive -eq 0 ]
121 echo "Continue....$i"
124 echo "Break.......$i"
132 echo "Break bcmtool download loop on $c attempt"
140 if [ $c -eq $MAXBCMTOOLTRY ]
142 echo "***** No Chance to activate, count=$c ******"
143 ${RFKILL} block bluetooth
149 echo "Try for hciattach"
151 # Attaching Broadcom device
152 if (/usr/bin/hciattach $BT_UART_DEVICE -s $UART_SPEED $BT_CHIP_TYPE $UART_SPEED flow); then
154 /usr/bin/hciconfig hci0 up
155 /usr/bin/hciconfig hci0 name $BT_PLATFORM_DEFAULT_HCI_NAME
156 /usr/bin/hciconfig hci0 sspmode 1
157 echo "HCIATTACH success"
159 echo "HCIATTACH failed"
160 /usr/sbin/rfkill block bluetooth