N900 FM radio receiver

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



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.



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.

v4l2-ctl --all -d /dev/radio1
Driver Info:

Driver name  : bcm2048 Card type  : Broadcom bcm2048 FM Radio Recei Bus info  : I2C: 0x22 Driver version: 1 Capabilities  : 0x00050400 Tuner Radio

Video input : 0
Frequency: 1518400 (94.900000 MHz)
Video Standard = 0x00000000
Streaming Parameters Video Capture:

Frames per second: 25.000 (25/1) Read buffers  : 0


Name  : FM Receiver Capabilities  : 62.5 Hz stereo Frequency range  : 87.5 MHz - 108.0 MHz Signal strength/AFC  : 0%/0 Current audio mode  : stereo Available subchannels: stereo

The module is only loaded when the radio is used.


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