#!/sbin/openrc-run

description="Run hciattach on ttySAC0 to enable bcm43xx bluetooth"

depend () {
	before rfkill
	before bluetooth
}

start () {
	ebegin "Starting hciattach-ttySAC0"
	# we need to unlock an rfkill to be able to use bluetootch
	if [[ -d /sys/bus/platform/drivers/bcm43xx_bluetooth/bluetooth ]]; then
		rfkill unblock 0
		# blocking and unblocking this rfkill requires restarting hciattach
		# unregister it, so that the UI does not attempt to toggle it
		# hciuart driver provides its own rfkill switch, so bluetooth can still be disabled
		echo bluetooth > /sys/bus/platform/drivers/bcm43xx_bluetooth/unbind
	fi
	# if hci0 is already present, this means that the service is being restarted, we can just ignore it
	if ! [[ -d /sys/class/bluetooth/hci0 ]]; then
		# on the vendor kernel we have to do a manual hciattach
		# since we unregistered the rfkill, we won't be able to restart, so this cannot be a "real" service
		hciattach /dev/ttySAC0 bcm43xx 3000000 flow nosleep "$(bootmac -gb)"
	fi
	eend $?
}