N900 FM radio receiver

(Software)
(Kernel)
Line 13: Line 13:
===Kernel===
===Kernel===
The FM receiver is implemented as a video4linux radio device by the [http://mxr.maemo.org/fremantle/source/kernel/drivers/media/radio/radio-bcm2048.c bcm2048] module.  
The FM receiver is implemented as a video4linux radio device by the [http://mxr.maemo.org/fremantle/source/kernel/drivers/media/radio/radio-bcm2048.c bcm2048] module.  
-
This controls the receiver over the [[N900 Hardware I2C]] bus.
+
This controls the receiver over the [[N900 Hardware Bus I2C]].
It appears as device /dev/radio1.
It appears as device /dev/radio1.

Revision as of 00:54, 3 August 2010

The N900 FM receiver allows the reception of broadcast FM radio signals using the headset/headphones as an antenna.

Contents

Hardware

The FM radio is part of the Bluetooth chip. It receives FM radio signals using the headset or earphones plugged into the 3.5 mm socket as an antenna (actually arbitrary headset/headphones, or any other cable, for this purpose).

The audio output of the FM radio is connected to the audio codec chip. This can be routed directly to the headphones - but possibly not the speaker due to concerns about speaker damage due to the speakers not being able to handle bass.

The existing software that uses the radio passes the audio through the CPU, implementing a software filter for speaker protection when the speakers are enabled.

Software

Kernel

The FM receiver is implemented as a video4linux radio device by the bcm2048 module. This controls the receiver over the N900 Hardware Bus I2C.

It appears as device /dev/radio1.

The module is only loaded when the radio is used.

User

The only (?) userspace application that uses the FM receiver is FMRadio.