From: Rob Herring <robh@kernel.org>
To: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Cc: nicolas.ferre@atmel.com, broonie@kernel.org, lgirdwood@gmail.com,
alsa-devel@alsa-project.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v3 1/2] ASoC: atmel-i2s: add DT bindings for I2S controller
Date: Sat, 16 Jul 2016 17:43:31 -0500 [thread overview]
Message-ID: <20160716224331.GA19101@rob-hp-laptop> (raw)
In-Reply-To: <901eec0b7edfa488ff735e7057fbc25ea8dc59f7.1468405019.git.cyrille.pitchen@atmel.com>
On Wed, Jul 13, 2016 at 12:25:38PM +0200, Cyrille Pitchen wrote:
> This patch adds DT bindings for the new Atmel I2S controller embedded
> inside sama5d2x SoCs.
>
> Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
> ---
> .../devicetree/bindings/sound/atmel-i2s.txt | 87 ++++++++++++++++++++++
> 1 file changed, 87 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/atmel-i2s.txt
>
> diff --git a/Documentation/devicetree/bindings/sound/atmel-i2s.txt b/Documentation/devicetree/bindings/sound/atmel-i2s.txt
> new file mode 100644
> index 000000000000..25dcb32314bf
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/atmel-i2s.txt
> @@ -0,0 +1,87 @@
> +* Atmel I2S controller
> +
> +Required properties:
> +- compatible: Should be "atmel,sama5d2-i2s".
> +- reg: Should be the physical base address of the controller and the
> + length of memory mapped region.
> +- interrupts: Should contain the interrupt for the controller.
> +- dmas: Should be a list of pairs of DMA controller phandle and flags.
How many?
> +- dma-names: Should be a list of DMA channel name among "rx", "tx" or
> + "rx-tx".
When is rx-tx used? Seems like there may need to be more than 1
compatible string if there is variation here.
> +- clocks: Should be a list of phandles of clocks used by the controller
> + (1).
This should be a specific number for each compatible string.
> +- clock-names: Should be a list matching the clocks phandles list:
> + - "pclk" (peripheral clock) Required.
> + - "gclk" (generated clock) Optional (1).
> + - "aclk" (Audio PLL clock) Optional (1).
> +
> +Optional properties:
> +- pinctrl-0: Should specify pin control groups used for this controller.
> +- princtrl-names: Should contain only one value - "default".
> +
> +
> +(1) : Only the peripheral clock is required. The generated clock and the Audio
> + PLL clock are optional and should only be set together.
> +
> +Example:
> +
> + i2s@f8050000 {
> + compatible = "atmel,sama5d2-i2s";
> + reg = <0xf8050000 0x300>;
> + interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>;
> + dmas = <&dma0
> + (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
> + AT91_XDMAC_DT_PERID(31))>,
> + <&dma0
> + (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
> + AT91_XDMAC_DT_PERID(32))>;
> + dma-names = "tx", "rx";
> + clocks = <&i2s0_clk>, <&i2s0_gclk>, <&audio_pll_pmc>;
> + clock-names = "pclk", "gclk", "aclk";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2s0_default>;
> + };
> +
> +
> +sama5d2 SoCs only:
That's the only SoC documented here...
> +
> +When the I2S controller is configured as a master, it generates the master,
> +bitrate and frame clocks from a PMC input clock. This PMC input clock can be
> +either the I2S peripheral clock or the I2S generated clock.
> +The generated clock can reach higher frequencies and is more suited for audio
> +applications hence should be preferred to the peripheral clock.
> +The I2SCLKSEL register of the Special Function Register (SFR) is used to select
> +the relevant PMC input clock: bit0 selects the input clock for I2S controller 0
> +whereas bit1 selects the input clock for I2S controller 1.
This seems like all internal details of the block.
> +Aliases are used in the device-tree to retrieve the index of each I2S controller
> +so the right bit can be updated in the I2SCLKSEL register.
I'd prefer aliases not be used for this.
> +
> +Finally, the SFR itself is handled by the generic syscon driver.
> +Its "compatible" DT property must contain the "atmel,sama5d2-sfr" string so the
> +I2S controller driver (and likely other drivers) can find the SFR node when
> +needed.
Typically we would have a phandle to the syscon with a cell to give the
bit position.
If this is all just for clock control, then it seems like you need a
proper clock driver for this clock control bit.
Rob
next prev parent reply other threads:[~2016-07-16 22:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-13 10:25 [PATCH v3 0/2] ASoC: add driver for Atmel I2S controller Cyrille Pitchen
2016-07-13 10:25 ` [PATCH v3 1/2] ASoC: atmel-i2s: add DT bindings for " Cyrille Pitchen
2016-07-16 22:43 ` Rob Herring [this message]
2016-07-13 10:25 ` [PATCH v3 2/2] ASoC: atmel-i2s: add driver for the new Atmel " Cyrille Pitchen
2016-07-14 16:20 ` Mark Brown
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=20160716224331.GA19101@rob-hp-laptop \
--to=robh@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=cyrille.pitchen@atmel.com \
--cc=devicetree@vger.kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolas.ferre@atmel.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