Kernel 39: Audio and ADC

Gr3yh0und
Hey guys,

another problem, after bumping the kernel version from 32 friendlyARM to
39.1 with patches, no sound card (ALSA UDX134?) is registered during
bootup. I checked the kernel settings and everything located in that
direction is marked as on in the kernel config.

I also found a patch by open-nandra (i think), who has checked that once -
But the patch fails. Doing some diffs, i found out (or it looks like) that
the changes are already upstream. 

Second problem is, i want to test a light resistive transistor to create a
day/night mode for my board. I'm not really getting into using the ADC due
to the first of 4 ADC ports is linked to the poti onboard - that works.
Is there a way on how i can link the other ADCs to one of my onboard pins?

Juergen Beisert
Here the sound part for my 2.6.39.1 configuration:

[...]
CONFIG_SOUND=y
CONFIG_SOUND_OSS_CORE=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
# CONFIG_SND_DYNAMIC_MINORS is not set
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_DEBUG=y
# CONFIG_SND_DEBUG_VERBOSE is not set
# CONFIG_SND_PCM_XRUN_DEBUG is not set
# CONFIG_SND_RAWMIDI_SEQ is not set
# CONFIG_SND_OPL3_LIB_SEQ is not set
# CONFIG_SND_OPL4_LIB_SEQ is not set
# CONFIG_SND_SBAWE_SEQ is not set
# CONFIG_SND_EMU10K1_SEQ is not set
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=y
# CONFIG_SND_SOC_CACHE_LZO is not set
CONFIG_SND_SOC_SAMSUNG=y
CONFIG_SND_S3C24XX_I2S=y
# CONFIG_SND_SOC_SAMSUNG_LN2440SBC_ALC650 is not set
CONFIG_SND_SOC_SAMSUNG_S3C24XX_UDA134X=y
# CONFIG_SND_SOC_SAMSUNG_SIMTEC_TLV320AIC23 is not set
# CONFIG_SND_SOC_SAMSUNG_SIMTEC_HERMES is not set
CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
CONFIG_SND_SOC_L3=y
CONFIG_SND_SOC_UDA134X=y
# CONFIG_SOUND_PRIME is not set
[...]

With these settings my sound is working here.

AFAIR the ADC input lines are routed to CON4. Just read the schematics

Gr3yh0und
Thanks again Juergen. Dunno why, but in my kernel konfig some points of
sound and S3C were set to "m" (which i thought is manually set so no
problem?)

Anyway, sound is recognized! Thanks!

The ADC lines are AIN0-3 on CON4, as the schematics tell me. (Analog
input). But parallel to the AIN0 there is the poti soldered - so i cannot
use that one. As I read, kernel config only gives me access to one ADC at
the time, which i manually have to edit in some kernel s3c file - (0 to 1,2
or 3). But anyway, is there a way to access the ADC via sysfs? I've create
the nod in /dev/adc but have no real idea how to access it.

cheers

Juergen Beisert
Enable the hwmon feature in your config and in your platform file. Then you
will gain access to all analogue channels.
The driver includes a statemachine to work with all channels at the same
time. You can read the value from sysfs (cat
/sys/devices/platform/s3c24xx-adc/s3c-hwmon/in?_input) and the driver will
switch to the corresponding channel and delivers its value.