Wilink FMRadio

From OMAPpedia

Revision as of 15:13, 12 June 2012 by Hallimanju (Talk | contribs)
Jump to: navigation, search

Contents

OMAP WiLink FM Radio Home

Wilink FM Radio solutions help enable FM Radio playback and FM Transmit capabilities for different OMAP Platforms with TI Connectivity chipsets.

Note that the features and capabilities enabled on various platforms may differ with the software distributions.

Features

Current Android solution supports the following features:


Architecture

The high level architecture for both V4L2 and FM stack based FM solutions can be found below.

                FM architecture.PNG

FM Functional Components & Solutions

Three main FM functional components:


Two FM Solutions:

Solution 1: FM GUI solution with TI proprietary FM stack & FM Character device

Enables user space TI FM stack and FM application to use FM functionality provided by FM core of TI Connectivity chip. The FM character driver expose a character device "/dev/tifm", via character device sub-system, for user space TI FM stack. When char device is opened, FM driver will register with ST driver and, when char device is closed, FM driver will de-register with ST driver.

When the user-space FM stack sends the Channel 1 FM commands, this sub-module will convert the Channel 1 commands to Channel-8 commands and will forward the commands to FM ST interface sub-module. Similarly, whenever a response is received from the ST driver, the Channel 8 response is converted to Channel 4 FM response packet and is forwarded to the user-space FM stack.

This solution is used in Gingerbread flavour of Android (L27.G Anchor)

Solution 2: FM GUI Solution with FM V4L2 driver

The FM driver, via V4L2 sub-system, enables user space FM application to use FM functionality provided by FM core of TI Connectivity chip. FM driver will expose "/dev/radio0" device via V4L2 sub-system for FM application. When "/dev/radio0" device is opened, FM driver will register with ST driver and then download any FM initialization script commands via ST interface. When "/dev/radio0" device is closed, FM driver will de-register with ST driver. This driver frames FM packets as Channel 8 packets and use ST interface to send them to FM core. FM driver will handle FM Channel 8 packets (received from FM core) provided by ST driver.

Any V4L2 complaint FM application can access FM driver by performing standard V4L2 IOCTL calls on "/dev/radio". The IOCTL handlers, which are defined in this module, will be invoked from V4L2 subsystem when there is request from FM application. Later, this request will be given to FM Common sub-module in the FM V4L2 driver to be passed on to the ST driver.

This solution is used in Ice-cream Sandwich flavour of Android (L27.I Anchor and onwards).

                FM GUI with FM-V4L2-Driver System Architecture.PNG

Gits & Code Locations

SOLUTION 1:

Kernel Driver: FM Character Driver: /drivers/staging/ti-st/fmdrv_chr.c in p-android-omap-2.6.35 {not available in K3.0 kernel and onwards}

User space Init Manager (common across all Shared Transport Technology drivers Bluetooth, FM, GPS): UIMD (uim-sysfs)

User space: TI FM Radio Stack

User space: TI FM Library (interface to communicate to /dev/tifm)

User space: FM Android Framework, Android GUI Application


SOLUTION 2:

Kernel Driver: FM V4L2 Driver: /drivers/media/radio/wl128x/* in p-android-omap-3.0


User space: kfmapp (FM Command Line Application for FM V4L2 driver). Test procedure for kfmapp (kfmapp tesing)

User space: FM Framework. How to use GUI(FM GUI testing)

         L27.IS.4 onwards V4L2 based solution is supported from FM GUI(DB 250 onwards). 
         FM support from CLI (kfmapp) is not tested from DB 250 onwards but it should work.  

Testing FM V4L2 Driver: TI's V4L2 based FM driver Test Procedure

Back to Connectivity Home Page

[Category:Wilink]

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox