From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: Rob Herring <robh@kernel.org>
Cc: <broonie@kernel.org>, <lgirdwood@gmail.com>,
<alsa-devel@alsa-project.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 2/3] bindings: sound: Add documentation for TI j721e EVM (CPB and IVI)
Date: Wed, 20 May 2020 14:50:00 +0300 [thread overview]
Message-ID: <65631db2-5cb2-003a-0526-65d26372616b@ti.com> (raw)
In-Reply-To: <20200519222132.GA488519@bogus>
[-- Attachment #1: Type: text/plain, Size: 6535 bytes --]
Hi Rob,
On 20/05/2020 1.21, Rob Herring wrote:
> On Tue, May 12, 2020 at 04:16:32PM +0300, Peter Ujfalusi wrote:
>> The audio support on the Common Processor Board board is using
>> pcm3168a codec connected to McASP10 serializers in parallel setup.
>>
>> The Infotainment board plugs into the Common Processor Board, the support
>> of the extension board is extending the CPB audio support by adding
>> the two codecs on the expansion board.
>>
>> The audio support on the Infotainment Expansion Board consists of McASP0
>> connected to two pcm3168a codecs with dedicated set of serializers to each.
>> The SCKI for pcm3168a is sourced from j721e AUDIO_REFCLK0 pin.
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>> ---
>> .../bindings/sound/ti,j721e-cpb-audio.yaml | 93 ++++++++++++
>> .../sound/ti,j721e-cpb-ivi-audio.yaml | 142 ++++++++++++++++++
>> 2 files changed, 235 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml
>> create mode 100644 Documentation/devicetree/bindings/sound/ti,j721e-cpb-ivi-audio.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml b/Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml
>> new file mode 100644
>> index 000000000000..0355ffc2b01b
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml
>> @@ -0,0 +1,93 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/sound/ti,j721e-cpb-audio.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Texas Instruments J721e Common Processor Board Audio Support
>> +
>> +maintainers:
>> + - Peter Ujfalusi <peter.ujfalusi@ti.com>
>> +
>> +description: |
>> + The audio support on the board is using pcm3168a codec connected to McASP10
>> + serializers in parallel setup.
>> + The pcm3168a SCKI clock is sourced from j721e AUDIO_REFCLK2 pin.
>> + In order to support 48KHz and 44.1KHz family of sampling rates the parent
>> + clock for AUDIO_REFCLK2 needs to be changed between PLL4 (for 48KHz) and
>> + PLL15 (for 44.1KHz). The same PLLs are used for McASP10's AUXCLK clock via
>> + different HSDIVIDER.
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - const: ti,j721e-cpb-audio
>> +
>> + model:
>> + $ref: /schemas/types.yaml#/definitions/string
>> + description: User specified audio sound card name
>> +
>> + ti,cpb-mcasp:
>> + description: phandle to McASP10
>> + allOf:
>> + - $ref: /schemas/types.yaml#/definitions/phandle
>> +
>> + ti,cpb-codec:
>> + description: phandle to the pcm3168a codec used on the CPB
>> + allOf:
>> + - $ref: /schemas/types.yaml#/definitions/phandle
>> +
>> + clocks:
>> + items:
>> + - description: PLL4 clock
>> + - description: PLL15 clock
>> + - description: McASP10 auxclk clock
>> + - description: PLL4_HSDIV0 parent for McASP10 auxclk (for 48KHz)
>> + - description: PLL15_HSDIV0 parent for McASP10 auxclk (for 44.1KHz)
>> + - description: AUDIO_REFCLK2 clock
>> + - description: PLL4_HSDIV2 parent for AUDIO_REFCLK2 clock (for 48KHz)
>> + - description: PLL15_HSDIV2 parent for AUDIO_REFCLK2 clock (for 44.1KHz)
>
> What h/w are these connected to?
These clocks are internal to the SoC with the exception of AUDIO_REFCLK2
which is routed to SoC pin.
> You have no control interface here, so how do you have clocks?
I need to control these clocks, the sound card is the user of these clocks.
> Defining parent clocks seems wrong, too. This seems to just be a
> collection of clocks a driver happens to need. Really, you should be
> able query possible parents and select one with the right frequency
> multiple.
The issue in hand is that I need to dynamically switch between certain
parents of the cpb-mcasp (for McASP) and audio-refclk2 (for the codec)
based on sampling rate of the stream.
The McASP auxclk parent can be selected from 7 source and I must use the
two dedicated ones.
The REFCLK2 parent can be selected from 30 source.
It is also a limitation of the system that I can not query directly the
PLL4/PLL15 frequencies, I can only get the frequency on the HSDIVs, but
I can not get the divider on them.
In order to handle the constraints on clocking I need to know the source
rate so the dividers can be taken into account. The codec is picky when
it comes to clocking and there is a need to switch between
256/512/768xFS based SCKI in order to be able to support sampling rates.
At the moment I have fixed clocks in place for the pll4/15 with the
rates they are configured so the dts can switch to a real clock which I
can use in the future.
As things are it is unlikely that I will ever going to have access to
them, but I wanted to avoid in the bindings:
ti,j721e-pll4-rate = <1179648000>;
ti,j721e-pll15-rate = <1083801600>;
>> +
>> + clock-names:
>> + items:
>> + - const: pll4
>> + - const: pll15
>> + - const: cpb-mcasp
>> + - const: cpb-mcasp-48000
>> + - const: cpb-mcasp-44100
>> + - const: audio-refclk2
>> + - const: audio-refclk2-48000
>> + - const: audio-refclk2-44100
>> +
>> +required:
>> + - compatible
>> + - model
>> + - ti,cpb-mcasp
>> + - ti,cpb-codec
>> + - clocks
>> + - clock-names
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |+
>> + sound {
>> + compatible = "ti,j721e-cpb-audio";
>> + model = "j721e-cpb";
>> +
>> + status = "okay";
>
> Don't show status in examples.
Oops, it is a leftower
>
>> +
>> + ti,cpb-mcasp = <&mcasp10>;
>> + ti,cpb-codec = <&pcm3168a_1>;
>> +
>> + clocks = <&pll4>, <&pll15>,
>> + <&k3_clks 184 1>,
>> + <&k3_clks 184 2>, <&k3_clks 184 4>,
>> + <&k3_clks 157 371>,
>> + <&k3_clks 157 400>, <&k3_clks 157 401>;
>> + clock-names = "pll4", "pll15",
>> + "cpb-mcasp",
>> + "cpb-mcasp-48000", "cpb-mcasp-44100",
>> + "audio-refclk2",
>> + "audio-refclk2-48000", "audio-refclk2-44100";
>> + };
- Péter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
[-- Attachment #2: pEpkey.asc --]
[-- Type: application/pgp-keys, Size: 1783 bytes --]
next prev parent reply other threads:[~2020-05-20 11:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-12 13:16 [PATCH v2 0/3] ASoC: ti: Add support for audio on J721e EVM Peter Ujfalusi
2020-05-12 13:16 ` [PATCH v2 1/3] ASoC: ti: davinci-mcasp: Specify stream_name for playback/capture Peter Ujfalusi
2020-05-12 13:16 ` [PATCH v2 2/3] bindings: sound: Add documentation for TI j721e EVM (CPB and IVI) Peter Ujfalusi
2020-05-19 22:21 ` Rob Herring
2020-05-20 11:50 ` Peter Ujfalusi [this message]
2020-06-11 8:59 ` Peter Ujfalusi
2020-05-19 22:42 ` Rob Herring
2020-05-20 9:59 ` Peter Ujfalusi
2020-05-12 13:16 ` [PATCH v2 3/3] ASoC: ti: Add custom machine driver for " Peter Ujfalusi
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=65631db2-5cb2-003a-0526-65d26372616b@ti.com \
--to=peter.ujfalusi@ti.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®