Hi, Sorry about the delayed reply... On Thursday 20 November 2008 17:39:14 ext Steve Sakoman wrote: > > Agreed! This is a really good thing to do. > > Had I not been under a lot of time pressure when doing the original > version of the driver I would have taken this approach myself. > > I'm glad to see that you are tackling this. Peter, you should post > your patches for comment. Might help speed things along if we get > more folks looking and contributing. > > Steve > I'm planing to send patches as soon as possible. I have been working with the twl4030 codec for about a week now, so the thing that I have is far from what it should be at the end... I can explain in short what I have at the moment and what is missing: - Playback route controls for: - PreDriveL (Off, Voice, DACL1, DACL2, DACR2) - PreDriveR (Off, Voice, DACR1, DACR2, DACL2) - HeadsetL (Off, Voice, DACL1, DACL2) - HeadsetR (Off, Voice, DACR1, DACR2) - CarkitL (Off, Voice, DACL1, DACL2) # or PRECKT_Right - CarkitR (Off, Voice, DACR1, DACR2) # or PRECKT_Left - HandsfreeL (Voice, DACL1, DACL2, DACR2) # or IHFL or Class-DL # (depends which text I take) - HandsfreeR (Voice, DACR1, DACR2, DACL2) # or IHFR or Class-DR # (depends which text I take) Volume/Gain controls: - FGAIN in DAC2 (mute, -62 - 0 dB, in 1 dB steps) - CGAIN in DAC2 (0 - 12 dB, in 6 dB steps) - PreDrive(L and R, not separate) playback gain, or volume control (mute, -6, 0, 6 dB) - Headset(L and R, not separate) playback gain, or volume control (mute, -6, 0, 6 dB) - Carkit(L and R, not separate) playback gain, or volume control (mute, -6, 0, 6 dB) All of the above are added to the twl4030_snd_controls at this point of time. The twl4030_reg has been set to disable all outputs by default, it is up to the user to enable the needed outputs. SND_SOC_DAPM_INPUT() and SND_SOC_DAPM_OUTPUT() definitions for all physical inputs, outputs. I have not yet started with the correct dapm_route for the TWL, it is going to be quite a mess. At the moment outputs are connected to DACL/R2, for example: {"PREDRIVL", NULL, "DACL2"} So in the playback side what you can do already: You can select the routing individually for all outputs (except the Earpiece, hmm I forgot about it). The capture path is kind of untouched, it is in the to-do list, it does works with the DIGIMIC0 for me. Three sets of get/put function for dealing with TWL's specially crafted registers (Routing selections, Gain controls). What needs to be done: Lot's of things... Clean up? snd_soc_dapm_route, snd_soc_dapm_widget things (I need an A3 paper for that). Capture controls and corresponding dapm_route, dapm_widgets So this is my current status, are you still interested to see these things? What else should I add before I send the patch? -- Péter _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel