TI Shared Transport Description and Support
From OMAPpedia
Pavan savoy (Talk | contribs) (→Shared Transport support for WiLink Chipsets) |
Pavan savoy (Talk | contribs) m (→Shared Transport drivers on kernel.org) |
||
| (14 intermediate revisions not shown) | |||
| Line 2: | Line 2: | ||
TI's Shared Transport driver currently support WL127x and WL128x WiLink Chipsets. | TI's Shared Transport driver currently support WL127x and WL128x WiLink Chipsets. | ||
| - | The drivers are located at <p | + | It has been designed to support future chipsets, provided the protocol drivers adhere. |
| - | as modules by default under 'menuconfig --> device drivers --> misc devices' | + | The drivers are located at <p><font size=4 face=terminal>drivers/misc/ti-st/</font></p> directory, and are available to be built |
| + | as modules by default under 'menuconfig --> device drivers --> misc devices'. | ||
| + | <br> | ||
| + | The config option '''CONFIG_TI_ST''' drives whether the driver is built as module or built into the kernel. | ||
'''On WL127x, support exists for''' | '''On WL127x, support exists for''' | ||
| Line 18: | Line 21: | ||
support different chipsets. | support different chipsets. | ||
</i> | </i> | ||
| + | |||
| + | == Shared Transport Driver: Generic Driver for Connectivity == | ||
| + | A ''Shared Transport driver'' is a line discipline driver. It acts as a generic transport driver for Bluetooth, FM and GPS connectivity (for WL128x). | ||
| + | |||
| + | Each of those protocol drivers have a register and a unregister mechanisms with the shared transport driver. Upon registration the shared transport driver can do a concurrent write. The shared transport driver then would queue up the data and send it over the UART. When the shared transport driver receives any data it interprets the data and forwards it to the receiver protocol driver via callbacks. | ||
| + | |||
| + | Shared transport driver is a platform device driver. Hence, for any platform which has a WL127x/WL128x device and you want to make use of this device, and the accompanying driver, you may do so by including an entry in the architecture specific board file. | ||
| + | |||
| + | Illustration: | ||
| + | |||
| + | <pre> | ||
| + | /* wl128x BT, FM, GPS connectivity chip */ | ||
| + | struct ti_st_plat_data wilink_pdata = { | ||
| + | .nshutdown_gpio = 55, | ||
| + | .dev_name = "/dev/ttyO1", | ||
| + | .flow_cntrl = 1, | ||
| + | .baud_rate = 3000000, | ||
| + | }; | ||
| + | static struct platform_device wl128x_device = { | ||
| + | .name = "kim", | ||
| + | .id = -1, | ||
| + | .dev.platform_data = &wilink_pdata, | ||
| + | }; | ||
| + | </pre> | ||
| + | |||
| + | Also, in one of the architecture specific ''init functions'' add: | ||
| + | <pre> | ||
| + | platform_device_register(&wl128x_device); | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | == User-Space/Application Code == | ||
| + | http://git.omapzoom.org/?p=platform/hardware/ti/wpan.git;a=summary | ||
| + | |||
| + | * UIM - This is the Shared Transport Daemon required to work with TI ST | ||
| + | * kfmapp - V4L2 test application to exercise V4L2 FM driver. | ||
== WL128x on OMAP4/Android platform == | == WL128x on OMAP4/Android platform == | ||
| - | http://git.omapzoom.org/?p=kernel/omap.git;a=shortlog;h=refs/heads/p-android-omap-2.6. | + | http://git.omapzoom.org/?p=kernel/omap.git;a=shortlog;h=refs/heads/p-android-omap-2.6.35 |
* Bluetooth can be exercised via the Android UI | * Bluetooth can be exercised via the Android UI | ||
| Line 39: | Line 78: | ||
== Shared Transport drivers on kernel.org == | == Shared Transport drivers on kernel.org == | ||
| - | + | As of kernel 3.0, | |
| - | As of | + | * Shared Transport Line discipline driver. (to be used along with user-space daemon UIM) |
| - | * Shared Transport Line discipline driver | + | * Bluetooth driver for BlueZ. (to be used along with BlueZ stack) |
| - | * Bluetooth driver for BlueZ | + | * WL128x FM V4L2 driver for FM Rx and FM Tx. (to be used along with standard V4L2 app or KFMapp test utility) |
| - | are available at <font size=4>drivers/ | + | are available on the mainline kernel at <font size=4 face=terminal>drivers/misc/ti-st/, drivers/bluetooth/, drivers/media/radio/wl128x/</font> directory. |
| + | |||
| + | |||
| + | [http://www.omappedia.org/wiki/OMAP_WiLink_Connectivity_Home Back to Connectivity Home Page] | ||
Latest revision as of 22:05, 8 September 2011
Contents |
[edit]
TI's Shared Transport driver currently support WL127x and WL128x WiLink Chipsets. It has been designed to support future chipsets, provided the protocol drivers adhere.
The drivers are located atdrivers/misc/ti-st/
directory, and are available to be builtas modules by default under 'menuconfig --> device drivers --> misc devices'.
The config option CONFIG_TI_ST drives whether the driver is built as module or built into the kernel.
On WL127x, support exists for
- Bluetooth
- FM
On WL128x, support exists for
- Bluetooth
- FM
- GPS
Note: No significant changes exist in either the architecture or code to support different chipsets.
[edit]
A Shared Transport driver is a line discipline driver. It acts as a generic transport driver for Bluetooth, FM and GPS connectivity (for WL128x).
Each of those protocol drivers have a register and a unregister mechanisms with the shared transport driver. Upon registration the shared transport driver can do a concurrent write. The shared transport driver then would queue up the data and send it over the UART. When the shared transport driver receives any data it interprets the data and forwards it to the receiver protocol driver via callbacks.
Shared transport driver is a platform device driver. Hence, for any platform which has a WL127x/WL128x device and you want to make use of this device, and the accompanying driver, you may do so by including an entry in the architecture specific board file.
Illustration:
/* wl128x BT, FM, GPS connectivity chip */
struct ti_st_plat_data wilink_pdata = {
.nshutdown_gpio = 55,
.dev_name = "/dev/ttyO1",
.flow_cntrl = 1,
.baud_rate = 3000000,
};
static struct platform_device wl128x_device = {
.name = "kim",
.id = -1,
.dev.platform_data = &wilink_pdata,
};
Also, in one of the architecture specific init functions add:
platform_device_register(&wl128x_device);
[edit] User-Space/Application Code
http://git.omapzoom.org/?p=platform/hardware/ti/wpan.git;a=summary
- UIM - This is the Shared Transport Daemon required to work with TI ST
- kfmapp - V4L2 test application to exercise V4L2 FM driver.
[edit] WL128x on OMAP4/Android platform
http://git.omapzoom.org/?p=kernel/omap.git;a=shortlog;h=refs/heads/p-android-omap-2.6.35
- Bluetooth can be exercised via the Android UI
- FM can be exercised via the CLI available from TI releases
- GPS can be exercised via Android UI
[edit] WL128x on OMAP4 platform (Non-Android)
http://dev.omapzoom.org/?p=raja/L24x-btfm.git;a=summary
- Bluetooth can be exercised via the Poky/Ubuntu UI
- FM can be exercised via the CLI available from TI releases
[edit] WL127x on OMAP3/Android platform
http://git.omapzoom.org/?p=kernel/omap.git;a=shortlog;h=refs/heads/p-android-omap-2.6.29
- Bluetooth can be exercised via the Android UI
- FM can be exercised via the CLI available from TI releases
[edit]
As of kernel 3.0,
- Shared Transport Line discipline driver. (to be used along with user-space daemon UIM)
- Bluetooth driver for BlueZ. (to be used along with BlueZ stack)
- WL128x FM V4L2 driver for FM Rx and FM Tx. (to be used along with standard V4L2 app or KFMapp test utility)
are available on the mainline kernel at drivers/misc/ti-st/, drivers/bluetooth/, drivers/media/radio/wl128x/ directory.