Permalink
Browse files

add bt support via shared transport/uim

This should work, athough it's only been lightly tested.

* Use with bts firmware from TI in /system/etc/firmware
* Uses latest gb uim-sysfs
* Also includes changes to defconfig, including ext4 support
* brings the dead to life

btwilink.c is the driver, making a guest appearance from .35.
  • Loading branch information...
1 parent c1cc853 commit 719f9745ba8e9951362e87f3b56022d2baf65803 @fat-tire fat-tire committed with May 1, 2011
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.32.9
-# Wed Feb 2 14:17:39 2011
+# Sat Apr 30 21:31:41 2011
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -331,7 +331,7 @@ CONFIG_PAGE_OFFSET=0xC0000000
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
-CONFIG_HZ=128
+CONFIG_HZ=512
# CONFIG_THUMB2_KERNEL is not set
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
@@ -365,6 +365,7 @@ CONFIG_ALIGNMENT_TRAP=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.1:/home/user/buildroot ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:tgt:eth0:off rw console=ttyS2,115200n8"
+# CONFIG_IGNORE_BOOT_ARGS is not set
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set
@@ -655,10 +656,26 @@ CONFIG_WAN_ROUTER=y
# Network testing
#
# CONFIG_NET_PKTGEN is not set
+# CONFIG_NET_DROP_MONITOR is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
-# CONFIG_BT is not set
+CONFIG_BT=y
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTUSB is not set
+# CONFIG_BT_HCIBTSDIO is not set
+# CONFIG_BT_HCIUART is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_BT_MRVL is not set
+CONFIG_BT_WILINK=y
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
@@ -673,7 +690,9 @@ CONFIG_WIRELESS_EXT_SYSFS=y
# CFG80211 needs to be enabled for MAC80211
#
# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
+CONFIG_RFKILL=y
+CONFIG_RFKILL_PM=y
+# CONFIG_RFKILL_INPUT is not set
# CONFIG_NET_9P is not set
#
@@ -729,7 +748,7 @@ CONFIG_ANDROID_PMEM=y
# CONFIG_SENSORS_AKM8973_AKMD is not set
# CONFIG_SENSORS_LIS331DLH is not set
# CONFIG_SENSORS_BMP085 is not set
-# CONFIG_WL127X_RFKILL is not set
+CONFIG_WL127X_RFKILL=y
# CONFIG_SENSORS_BH1780 is not set
# CONFIG_UID_STAT is not set
# CONFIG_APANIC is not set
@@ -754,8 +773,8 @@ CONFIG_ENCORE_MODEM_MGR=y
#
# Texas Instruments shared transport line discipline
#
-# CONFIG_TI_ST is not set
-# CONFIG_TI_ST_BT is not set
+CONFIG_TI_ST=y
+CONFIG_TI_ST_BT=y
# CONFIG_TI_ST_FM is not set
# CONFIG_TI_ST_GPS is not set
CONFIG_HAVE_IDE=y
@@ -832,8 +851,19 @@ CONFIG_WLAN=y
# CONFIG_USB_HSO is not set
# CONFIG_WAN is not set
CONFIG_PPP=y
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=y
+# CONFIG_PPP_SYNC_TTY is not set
+# CONFIG_PPP_DEFLATE is not set
+# CONFIG_PPP_BSDCOMP is not set
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_PPPOLAC is not set
+# CONFIG_PPPOPNS is not set
# CONFIG_SLIP is not set
+CONFIG_SLHC=y
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
@@ -1002,10 +1032,10 @@ CONFIG_I2C_OMAP=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-CONFIG_TWL4030_POWEROFF=y
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_PCA963X is not set
CONFIG_TWL4030_MADC=y
+CONFIG_TWL4030_POWEROFF=y
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
@@ -1408,6 +1438,7 @@ CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=y
CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
@@ -1694,7 +1725,6 @@ CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_OMAP4430_SDP_KEYPAD is not set
# CONFIG_LEDS_OMAP_DISPLAY is not set
CONFIG_LEDS_OMAP_PWM=y
-
# CONFIG_LEDS_LM3554 is not set
# CONFIG_LEDS_LM3530 is not set
@@ -1857,12 +1887,19 @@ CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
# CONFIG_EXT3_FS_XATTR is not set
-# CONFIG_EXT4_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
+CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
@@ -1925,8 +1962,6 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-# CONFIG_YAFFS_FS is not set
-# CONFIG_JFFS2_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
@@ -2038,6 +2073,7 @@ CONFIG_DEBUG_MUTEXES=y
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
@@ -2080,6 +2116,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_KMEMTRACE is not set
# CONFIG_WORKQUEUE_TRACER is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_DYNAMIC_DEBUG is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
@@ -2205,7 +2242,7 @@ CONFIG_BINARY_PRINTF=y
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
CONFIG_CRC_CCITT=y
-# CONFIG_CRC16 is not set
+CONFIG_CRC16=y
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
@@ -33,6 +33,34 @@
#include "sdram-hynix-h8mbx00u0mer-0em.h"
#endif
+#ifdef CONFIG_BT_WILINK
+#include <linux/skbuff.h>
+#include <linux/ti_wilink_st.h>
+#endif
+
+#ifdef CONFIG_TI_ST
+/* wl128x BT, FM, GPS connectivity chip */
+struct ti_st_plat_data wilink_pdata = {
+ .nshutdown_gpio = 60,
+ .dev_name = "/dev/ttyO1",
+ .flow_cntrl = 1,
+ .baud_rate = 115200 // was 3000000,
+};
+
+static struct platform_device kim_wl127x_device = {
+ .name = "kim",
+ .id = -1,
+ .dev.platform_data = &wilink_pdata,
+};
+
+#endif
+#ifdef CONFIG_BT_WILINK
+static struct platform_device btwilink_device = {
+ .name = "btwilink",
+ .id = -1,
+};
+#endif
+
void __init evt_peripherals_init(void);
#ifdef CONFIG_ANDROID_RAM_CONSOLE
@@ -100,6 +128,16 @@ static void __init omap_evt_init(void)
pr_info("CPU variant: %s Board: %s\n",
cpu_is_omap3622() ? "OMAP3622" : "OMAP3621",
has_1GHz_support() ? "1GHz" : "800MHz only");
+
+#ifdef CONFIG_TI_ST
+ printk("encore: registering wl127x device.\n");
+ platform_device_register(&kim_wl127x_device);
+#endif
+#ifdef CONFIG_BT_WILINK
+ printk("encore: registering btwilink device.\n");
+ platform_device_register(&btwilink_device);
+#endif
+
}
View
@@ -195,5 +195,16 @@ config BT_MRVL_SDIO
Say Y here to compile support for Marvell BT-over-SDIO driver
into the kernel or say M to compile it as module.
+config BT_WILINK
+ tristate "Texas Instruments WiLink7 driver"
+ depends on TI_ST
+ help
+ This enables the Bluetooth driver for Texas Instrument's BT/FM/GPS
+ combo devices. This makes use of shared transport line discipline
+ core driver to communicate with the BT core of the combo chip.
+
+ Say Y here to compile support for Texas Instrument's WiLink7 driver
+ into the kernel or say M to compile it as module.
+
endmenu
@@ -17,6 +17,7 @@ obj-$(CONFIG_BT_HCIBTSDIO) += btsdio.o
obj-$(CONFIG_BT_MRVL) += btmrvl.o
obj-$(CONFIG_BT_MRVL_SDIO) += btmrvl_sdio.o
+obj-$(CONFIG_BT_WILINK) += btwilink.o
btmrvl-y := btmrvl_main.o
btmrvl-$(CONFIG_DEBUG_FS) += btmrvl_debugfs.o
@@ -326,7 +326,7 @@ static int btsdio_probe(struct sdio_func *func,
return -ENOMEM;
}
- hdev->type = HCI_SDIO;
+ hdev->bus = HCI_SDIO;
hdev->driver_data = data;
data->hdev = hdev;
@@ -383,7 +383,7 @@ static int hci_uart_register_dev(struct hci_uart *hu)
hu->hdev = hdev;
- hdev->type = HCI_UART;
+ hdev->bus = HCI_UART;
hdev->driver_data = hu;
hdev->open = hci_uart_open;
@@ -244,7 +244,7 @@ static int vhci_open(struct inode *inode, struct file *file)
data->hdev = hdev;
- hdev->type = HCI_VIRTUAL;
+ hdev->bus = HCI_VIRTUAL;
hdev->driver_data = data;
hdev->open = vhci_open_dev;
@@ -1,10 +1,7 @@
#
# Makefile for TI's shared transport line discipline
-# and it's protocol drivers (BT, FM, GPS)
+# and its protocol drivers (BT, FM, GPS)
#
-obj-$(CONFIG_TI_ST) += st_drv.o
+obj-$(CONFIG_TI_ST) += st_drv.o
st_drv-objs := st_core.o st_kim.o st_ll.o
-obj-$(CONFIG_TI_ST_BT) += bt_drv.o
-obj-$(CONFIG_TI_ST_FM) += fm_drv.o
-fm_drv-objs := fmdrv_core.o fmdrv_v4l2.o fmdrv_st.o fmdrv_mixer.o fmdrv_chr.o
-obj-$(CONFIG_TI_ST_GPS) += gps_drv.o
+
@@ -400,7 +400,7 @@ static int hci_st_register_dev(struct hci_st *hst)
BT_DRV_DBG(" HCI device allocated. hdev= %p", hdev);
hst->hdev = hdev;
- hdev->type = HCI_UART;
+ hdev->bus = HCI_UART;
hdev->driver_data = hst;
hdev->open = hci_st_open;
hdev->close = hci_st_close;
Oops, something went wrong.

0 comments on commit 719f974

Please sign in to comment.