Re: Nokia N900 sound driver and ECI GPIOs

From: Jarkko Nikula
Date: Mon Jan 02 2017 - 04:34:02 EST


Hi

On 01/02/2017 12:36 AM, Pavel Machek wrote:
>> Jarkko, you are listed as original author of that driver. Do you (or
>> anybody else) remember what that rx51_set_eci_switches() function is
>> doing? And what gpio 178 controls? I was even not able to find gpio 178
>> in RX-51 Schematics [6].
>>
>> And do you know something about Nokia ECI headsets supports for Nokia
>> N900. Looks like there is already some kernel code but support for ECI
>> bus or multibuttons headset is missing.
>
Multibutton ECI headset support using GPIO was planned during early in
HW design phase but wasn't implemented for the actual product. I don't
remember was it due no actual product requirement for it or GPIO based
implementation was not reliable. If I remember correctly ECI protocol
carries information by shorting mic bias to ground at some 1 kHz rate so
trying to detect those pulses by SW won't work too well without hard
real-time OS.

Even ECI is not implemented in final product the production HW still has
two switches to route mic bias to voltage detection circuit, tv-out or
codec. One of the switches is statically driven because only codec or
tv-out route is needed. See commit 31164c7cf119 ("ASoC: omap: rx51: Add
headset support")

> I'd like to get detection of headset button presses to work in recent
> kernels, but could not figure it out :-(.
>
My vague memory doesn't tell how basic button press detection was
implemented in Maemo kernel. Was it codec, same voltage detection
circuit than ECI or some another GPIO? I don't even remember did we
implement it for the MeeGo N900 developer edition :-(

--
Jarkko