SAMA5D2 specific, I should add.

> On 27 Aug 2023, at 23:23, Tim Hardisty <t...@hardisty.co.uk> wrote:
> 
> The classD driver DOES register itself as /dev/audio/pcm0, and works 
> correctly as such with nx_player.
> 
> The conversions are wav (or mp3 etc) to pcm.
> 
> Don’t if we’re talking cross purposes or the classd driver works in a way it 
> shouldn’t!!!
> 
>> On 27 Aug 2023, at 23:00, Gregory Nutt <spudan...@gmail.com> wrote:
>> 
>> Also, I don't think the /dev/audio/pcm0 device you are talking about is 
>> what you think it is.  It is a character driver but not the Class D lower 
>> half.  So, yes it can be opened.
>> 
>> /Caveat:  It has been ages since I worked with the audio subsystem so I 
>> might be completely wrong./
>> 
>> /dev/audio/pcm0  is the audio subsystem interface device.  The "pcm" 
>> indicates that it used the PCM software decoder (that will convert PCM file 
>> data to WAV).  It gets set up like:
>> 
>>  boards/arm/sama5/sama5d4-ek/src/sam_wm8904.c:
>> 
>>         pcm = pcm_decode_initialize(wm8904);
>>         snprintf(devname, 12, "pcm%d",  minor);
>>         ret = audio_register(devname, pcm);
>> 
>> And a character driver is registered by the audio subsystem in audio/audio.c:
>> 
>>  int audio_register(FAR const char *name, FAR struct
>>  audio_lowerhalf_s *dev)
>>  {
>>  ...
>> 
>>     audinfo("Registering %s\n", path);
>>     return register_driver(path, &g_audioops, 0666, upper);
>>  }
>> 
>> Where g_audioops is the character driver operations structure:
>> 
>>  static const struct file_operations g_audioops =
>>  {
>>     audio_open,  /* open */
>>     audio_close, /* close */
>>     audio_read,  /* read */
>>     audio_write, /* write */
>>     NULL,        /* seek */
>>     audio_ioctl, /* ioctl */
>>  };
>> 
>> So the registered pcm0 is the standard audio buffer chain configured for PCM 
>> file to WAV conversion and terminating with a wm8904 DAC.
>> 
>> I don't believe that there is any way to get the Class D audio_ops_s as a 
>> driver under /dev.  Nothing like that is supported.
>> 

Reply via email to