All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Mack <daniel@zonque.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
	linux-i2c@vger.kernel.org, alsa-devel@alsa-project.org,
	devicetree@vger.kernel.org, linux-clk@vger.kernel.org
Cc: lars@metafoo.de, sboyd@kernel.org, mturquette@baylibre.com,
	robh+dt@kernel.org, broonie@kernel.org, pascal.huerst@gmail.com,
	lee.jones@linaro.org
Subject: Re: [alsa-devel] [PATCH 10/10] ASoC: Add codec component for AD242x nodes
Date: Wed, 18 Dec 2019 10:49:38 +0100	[thread overview]
Message-ID: <35e7e6e7-7c70-785c-bdf3-79089134699e@zonque.org> (raw)
In-Reply-To: <0565e5cd-9a6e-db65-0632-0bc1aa1d79db@linux.intel.com>

Hi,

On 12/17/19 8:28 PM, Pierre-Louis Bossart wrote:
> On 12/9/19 12:35 PM, Daniel Mack wrote:

>> +    if (!ad242x_node_is_master(priv->node) &&
>> +       ((format & SND_SOC_DAIFMT_MASTER_MASK) !=
>> SND_SOC_DAIFMT_CBM_CFM)) {
>> +        dev_err(component->dev, "slave node must be clock master\n");
>> +        return -EINVAL;
>> +    }
> 
> It was my understanding that the master node provides the clock to the
> bus, so not sure how it could be a clock slave, and conversely how a
> slave node could provide a clock to the bus?

The slave nodes receive the A2B clock from the master node and then
produce digital audio output that is sent to other components such as
codecs. Hence, in ASoC terms, they are the clock master.

Likewise, as the master node is receiving its clock from other
components, it has to be a clock slave in the audio network.

Does that make sense?

>> +    switch (params_format(params)) {
>> +    case SNDRV_PCM_FORMAT_S16_LE:
>> +        if (priv->node->tdm_slot_size != 16)
>> +            return -EINVAL;
>> +        break;
>> +    case SNDRV_PCM_FORMAT_S32_LE:
>> +        if (priv->node->tdm_slot_size != 32)
>> +            return -EINVAL;
>> +        break;
>> +    default:
>> +        return -EINVAL;
>> +    }
> 
> how does this work for PDM data?
> 
> is the PDM data packed into a regular TDM slot?

Yes. But I admit this needs some more testing. We're still working on
the hardware that uses this. I'll revisit this.

And I'll also add a lot more comments all over the place, as also
requested by Lee.


Thanks,
Daniel

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Mack <daniel@zonque.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
	linux-i2c@vger.kernel.org, alsa-devel@alsa-project.org,
	devicetree@vger.kernel.org, linux-clk@vger.kernel.org
Cc: lars@metafoo.de, sboyd@kernel.org, mturquette@baylibre.com,
	robh+dt@kernel.org, broonie@kernel.org, pascal.huerst@gmail.com,
	lee.jones@linaro.org
Subject: Re: [alsa-devel] [PATCH 10/10] ASoC: Add codec component for AD242x nodes
Date: Wed, 18 Dec 2019 10:49:38 +0100	[thread overview]
Message-ID: <35e7e6e7-7c70-785c-bdf3-79089134699e@zonque.org> (raw)
In-Reply-To: <0565e5cd-9a6e-db65-0632-0bc1aa1d79db@linux.intel.com>

Hi,

On 12/17/19 8:28 PM, Pierre-Louis Bossart wrote:
> On 12/9/19 12:35 PM, Daniel Mack wrote:

>> +    if (!ad242x_node_is_master(priv->node) &&
>> +       ((format & SND_SOC_DAIFMT_MASTER_MASK) !=
>> SND_SOC_DAIFMT_CBM_CFM)) {
>> +        dev_err(component->dev, "slave node must be clock master\n");
>> +        return -EINVAL;
>> +    }
> 
> It was my understanding that the master node provides the clock to the
> bus, so not sure how it could be a clock slave, and conversely how a
> slave node could provide a clock to the bus?

The slave nodes receive the A2B clock from the master node and then
produce digital audio output that is sent to other components such as
codecs. Hence, in ASoC terms, they are the clock master.

Likewise, as the master node is receiving its clock from other
components, it has to be a clock slave in the audio network.

Does that make sense?

>> +    switch (params_format(params)) {
>> +    case SNDRV_PCM_FORMAT_S16_LE:
>> +        if (priv->node->tdm_slot_size != 16)
>> +            return -EINVAL;
>> +        break;
>> +    case SNDRV_PCM_FORMAT_S32_LE:
>> +        if (priv->node->tdm_slot_size != 32)
>> +            return -EINVAL;
>> +        break;
>> +    default:
>> +        return -EINVAL;
>> +    }
> 
> how does this work for PDM data?
> 
> is the PDM data packed into a regular TDM slot?

Yes. But I admit this needs some more testing. We're still working on
the hardware that uses this. I'll revisit this.

And I'll also add a lot more comments all over the place, as also
requested by Lee.


Thanks,
Daniel
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2019-12-18  9:49 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-09 18:35 [PATCH 00/10] mfd: Add support for Analog Devices A2B transceiver Daniel Mack
2019-12-09 18:35 ` [alsa-devel] " Daniel Mack
2019-12-09 18:35 ` Daniel Mack
2019-12-09 18:35 ` [PATCH 01/10] dt-bindings: mfd: Add documentation for ad242x Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-19 19:29   ` Rob Herring
2019-12-19 19:29     ` [alsa-devel] " Rob Herring
2019-12-09 18:35 ` [PATCH 02/10] dt-bindings: i2c: Add documentation for ad242x i2c controllers Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2020-01-08  3:45   ` Rob Herring
2020-01-08  3:45     ` [alsa-devel] " Rob Herring
2019-12-09 18:35 ` [PATCH 03/10] dt-bindings: gpio: Add documentation for ad242x GPIO controllers Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-09 18:35 ` [PATCH 03/10] dt-bindings: gpio: Add documentation for AD242x " Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-09 18:35 ` [PATCH 04/10] dt-bindings: clock: Add documentation for AD242x clock providers Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-24  7:32   ` Stephen Boyd
2019-12-24  7:32     ` [alsa-devel] " Stephen Boyd
2019-12-24  7:32     ` Stephen Boyd
2019-12-09 18:35 ` [PATCH 05/10] dt-bindings: sound: Add documentation for AD242x codecs Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-09 18:35 ` [PATCH 06/10] mfd: Add core driver for AD242x A2B transceivers Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-17 13:39   ` Lee Jones
2019-12-17 13:39     ` [alsa-devel] " Lee Jones
2019-12-17 13:46     ` Lee Jones
2019-12-17 13:46       ` [alsa-devel] " Lee Jones
2019-12-17 19:36       ` Daniel Mack
2019-12-17 19:36         ` [alsa-devel] " Daniel Mack
2019-12-17 19:24     ` Daniel Mack
2019-12-17 19:24       ` [alsa-devel] " Daniel Mack
2019-12-18 11:20       ` Luca Ceresoli
2019-12-18 11:20         ` [alsa-devel] " Luca Ceresoli
2019-12-17 19:16   ` Pierre-Louis Bossart
2019-12-17 19:16     ` Pierre-Louis Bossart
2019-12-18  9:40     ` Daniel Mack
2019-12-18  9:40       ` Daniel Mack
2019-12-09 18:35 ` [PATCH 07/10] i2c: Add driver for AD242x bus controller Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-12 16:11   ` Luca Ceresoli
2019-12-12 16:11     ` [alsa-devel] " Luca Ceresoli
2019-12-12 16:33     ` Wolfram Sang
2019-12-12 16:33       ` [alsa-devel] " Wolfram Sang
2019-12-15 20:27       ` Daniel Mack
2019-12-15 20:27         ` [alsa-devel] " Daniel Mack
2019-12-17  8:35         ` Luca Ceresoli
2019-12-17  8:35           ` [alsa-devel] " Luca Ceresoli
2019-12-17 18:17           ` Daniel Mack
2019-12-17 18:17             ` [alsa-devel] " Daniel Mack
2019-12-09 18:35 ` [PATCH 08/10] gpio: Add driver for AD242x GPIO controllers Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-09 18:35 ` [PATCH 09/10] clk: Add support for AD242x clock output providers Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-24  7:46   ` Stephen Boyd
2019-12-24  7:46     ` [alsa-devel] " Stephen Boyd
2019-12-24  7:46     ` Stephen Boyd
2019-12-09 18:35 ` [PATCH 10/10] ASoC: Add codec component for AD242x nodes Daniel Mack
2019-12-09 18:35   ` [alsa-devel] " Daniel Mack
2019-12-09 18:35   ` Daniel Mack
2019-12-16 14:23   ` Mark Brown
2019-12-16 14:23     ` [alsa-devel] " Mark Brown
2019-12-17 19:28   ` Pierre-Louis Bossart
2019-12-17 19:28     ` Pierre-Louis Bossart
2019-12-18  9:49     ` Daniel Mack [this message]
2019-12-18  9:49       ` Daniel Mack
2019-12-18 15:32       ` Pierre-Louis Bossart
2019-12-18 15:32         ` Pierre-Louis Bossart
2019-12-20  8:24         ` Daniel Mack
2019-12-20 15:18           ` Pierre-Louis Bossart
2019-12-17 19:29 ` [alsa-devel] [PATCH 00/10] mfd: Add support for Analog Devices A2B transceiver Pierre-Louis Bossart
2019-12-17 19:29   ` Pierre-Louis Bossart
2019-12-18  9:53   ` Daniel Mack
2019-12-18  9:53     ` Daniel Mack

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=35e7e6e7-7c70-785c-bdf3-79089134699e@zonque.org \
    --to=daniel@zonque.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lars@metafoo.de \
    --cc=lee.jones@linaro.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=pascal.huerst@gmail.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.