From: Lori Hikichi <lori.hikichi@broadcom.com>
To: Mark Brown <broonie@kernel.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>, Ray Jui <rjui@broadcom.com>,
Scott Branden <sbranden@broadcom.com>,
Jon Mason <jonmason@broadcom.com>,
bcm-kernel-feedback-list@broadcom.com,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
alsa-devel@alsa-project.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/9] ASoC: cygnus: Update bindings for audio clock changes
Date: Wed, 16 Aug 2017 12:39:42 -0700 [thread overview]
Message-ID: <8c2fc92d-5ea8-8163-a588-0a4cba55e0f8@broadcom.com> (raw)
In-Reply-To: <20170816105954.ve434zeeqinweo5a@sirena.org.uk>
On 8/16/2017 3:59 AM, Mark Brown wrote:
> On Tue, Aug 15, 2017 at 12:29:44PM -0700, Lori Hikichi wrote:
>
>> I have put the mux assignment in DT because the assignment is a
>> static property and did not need run time programmability from the
>> machine driver.
> Why is this a static property, what prevents something wanting to change
> things at runtime? You might be running with simpler setups now but
> perhaps you'll run into a more complex use case later?
The short answer is I have analyzed the possible use cases for Cygnus'
audio block, and nothing should need to change the assignments at
runtime. The longer explanation follows.
The clocking configuration is this. There is one pll with its output run
through 3 post dividers. The audio ports can select one of these
outputs. There are only 5 possible consumers of these 3 clocks.
The 3 i2s/tdm ports, 1 spdif port, and an exceptional case of another
"non-audio" IP block. For the i2s/tdm ports this clock is the MCLK.
By far the most common usage case for Cygnus is a configuration which
uses only the three i2s/tdm ports. In this case each port is assigned
a clock. Each clock has the same capabilities so there would never be
a reason change the static mapping.
Now for the case when the "non-audio block" uses one of these clocks.
In this situation we will only need one i2s port because this
configuration of the chip is not audio intensive. When the system
is designed we know if this non-audio block will be in use, it is not
a runtime configurable thing. Again, a static mapping is fine.
The only situation which could get more complex is with SPDIF.
First off, the SPDIF port is not actively used in any current
configuration and I do not think there are any plans for it to be used.
But, we are talking about possible future configurations. The only
limitation the current static scheme would introduce is if SPDIF is
active along with all 3 i2s ports. Additionally, all 3 of the i2s ports
would need to be in master mode (slave mode would free up a clock for
SPDIF). In this case, two of the clock consumers would need to share a
clock. In this situation I envisioned that both consumers would agree on
a fixed rate and work within those limitation. For example, the ports
would choose 24.576 MHz as their mclk and be limited to the the frame
rates that could be derived from that clock.
At the time it did not seem necessary to make addition driver changes to
support a use case that will very likely never arise. As it turns out,
we are working on a new version of this audio block. The clocking
configuration for this new version is more complex and I am already in
the process of creating clock bindings for all this this. I am hopeful
that the driver for this new version will be applicable to Cygnus.
Lori.
next prev parent reply other threads:[~2017-08-16 19:39 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-14 22:06 [PATCH 0/9] ASoC: cygnus: Various improvements and fixes Lori Hikichi
2017-08-14 22:06 ` [PATCH 1/9] ASoC: cygnus: Add support for 384kHz frame rates Lori Hikichi
2017-08-15 17:15 ` Applied "ASoC: cygnus: Add support for 384kHz frame rates" to the asoc tree Mark Brown
2017-08-14 22:06 ` [PATCH 2/9] ASoC: cygnus: Update bindings for audio clock changes Lori Hikichi
2017-08-15 17:14 ` Mark Brown
2017-08-15 19:29 ` Lori Hikichi
2017-08-16 10:59 ` Mark Brown
2017-08-16 19:39 ` Lori Hikichi [this message]
2017-08-22 16:07 ` Mark Brown
2017-09-07 1:45 ` Lori Hikichi
2017-09-25 16:28 ` Mark Brown
2017-08-14 22:06 ` [PATCH 3/9] ASoC: cygnus: Allow each port to select its clock source Lori Hikichi
2017-08-14 22:06 ` [PATCH 4/9] ASoC: cygnus: Only enable MCLK pins when in use Lori Hikichi
2017-08-14 22:06 ` [PATCH 5/9] ASoC: cygnus: Remove support for 8 bit audio and for mono Lori Hikichi
2017-08-14 22:06 ` [PATCH 6/9] ASoc: cygnus: Fix problems with multichannel transfers Lori Hikichi
2017-08-14 22:06 ` [PATCH 7/9] ASoC: cygnus: Remove set_fmt from SPDIF dai ops Lori Hikichi
2017-08-14 22:06 ` [PATCH 8/9] ASoC: cygnus: Add EXPORT_SYMBOL for helper function Lori Hikichi
2017-10-04 11:27 ` Applied "ASoC: cygnus: Add EXPORT_SYMBOL for helper function" to the asoc tree Mark Brown
2017-08-14 22:06 ` [PATCH 9/9] ASoC: cygnus: Tidy up of structure access Lori Hikichi
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=8c2fc92d-5ea8-8163-a588-0a4cba55e0f8@broadcom.com \
--to=lori.hikichi@broadcom.com \
--cc=alsa-devel@alsa-project.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jonmason@broadcom.com \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=perex@perex.cz \
--cc=rjui@broadcom.com \
--cc=robh+dt@kernel.org \
--cc=sbranden@broadcom.com \
--cc=tiwai@suse.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox