* [PATCH v2 03/10] dt-bindings: sound: Add new reset compatible for sun4i-i2s [not found] <20170117201016.A5fiHT0P@smtp2p.mail.yandex.net> @ 2017-01-17 21:20 ` Thomas Petazzoni 0 siblings, 0 replies; 4+ messages in thread From: Thomas Petazzoni @ 2017-01-17 21:20 UTC (permalink / raw) To: linux-arm-kernel Hello, On Wed, 18 Jan 2017 01:10:00 +0800, Icenowy Zheng wrote: > > Add a new compatible for sun4i-i2s driver to handle some > > SoCs that have a reset line that must be asserted/deasserted. > > > > This new compatible, "allwinner,sun6i-a31-i2s", requires two > > properties: > > - resets: phandle to the reset line > > - reset-names: the name of the reset line ("rst"). > > Except these differences, the compatible is identical to previous one > > which will not handle a reset line. > > But I think the IP block is identical, right? > > Should a new compatible be added only for reset-line? Having a different compatible in this case allows to make some stricter error checking: the driver can make sure that if the compatible string is sun6i-a31-i2s there *IS* a reset line specified in the DT. Without a separate compatible value, such a check is not possible, and the reset line is just optional. This can lead to people being confused if they forget to specify the reset line. Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 00/10] Add sun8i A33 audio driver @ 2017-01-17 14:02 Mylène Josserand 2017-01-17 14:02 ` [PATCH v2 03/10] dt-bindings: sound: Add new reset compatible for sun4i-i2s Mylène Josserand 0 siblings, 1 reply; 4+ messages in thread From: Mylène Josserand @ 2017-01-17 14:02 UTC (permalink / raw) To: linux-arm-kernel Hello everyone, This a V2 of my Allwinner A33 (sun8i) audio codec driver. Tested on linux-next-20170105 tag with one remaining patch from Chen-Yu's series: http://lkml.iu.edu/hypermail/linux/kernel/1611.3/01256.html Patch to apply before this serie: https://patchwork.kernel.org/patch/9423999/ Changes since V1: - Remove the analog codec driver as a better version has been committed by Chen-Yu Tsai and is already merged. - Remove the audio-card as simple-card can be used - The DMA maxburst is set to 8 in the sun4i-i2s instead of adding the maxburst of 4 in Sun6i dma engine. - Create a new compatible for sun4i-i2s to handle the reset line. - Fix various problems in sun8i-codec driver according to V1's reviews - Add the pm_runtime hooks in sun8i-codec driver to prepare/ unprepare clocks. - Update the DTS according to Chen-Yu's analog codec driver. - Rename sun8i-codec's clocks to "bus" and "mod" - The first "delay" issue from V1 is fixed by using a delay when enabling the headphone amplifier to let the amplifier being up. Patch 1 increases the DMA maxburst value of sun4i-i2s to 8. See Chen-Yu's commit log for more details: https://patchwork.kernel.org/patch/9411805/ Patch 2 adds the CLK_SET_RATE_PARENT flag to ccu sun8i-a33 clocks. Patches 3 and 4 add a new compatible "allwinner,sun6i-a31-i2s" to handle the reset line for sun4i-i2s driver. It uses a quirk to use a version with or without reset lines. Patch 5 adds the sun8i codec driver which represents the digital part of the A33 codec. It supports only playback features. Path 6 fixes the previous issue of a "first time delay" in V1 (see cover letter). Do not hesitate if you have comments on this patch. Patches 7 adds the dt-bindings documentation for new audio driver added in this serie (sun8i-codec). Patch 8 adds the cpu DAI, codec and audio nodes to sun8i-a33 device tree. Patches 9 and 10 enable the audio on Parrot and Sinlinx's boards. The DAI for this A33 codec is the same than for A20: "sun4i-i2s". Currently, all the drivers handle only the playback feature. The other ones (such as capture) and all other interfaces except headphone are not supported. I will send a patch to handle the capture with microphones in next few weeks. Examples of amixer commands: amixer set 'Headphone' 75% amixer set 'Headphone' on amixer set 'DAC' on amixer set 'Right DAC Mixer RSlot 0' on amixer set 'Left DAC Mixer LSlot 0' on It was tested on Parrot and Sinlinx boards. Let me know if you have any comments on this serie. Thank you in advance, Best regards, Myl?ne Josserand (10): ASoC: sun4i-i2s: Increase DMA max burst to 8 clk: ccu-sun8i-a33: Add CLK_SET_RATE_PARENT to ac-dig dt-bindings: sound: Add new reset compatible for sun4i-i2s ASoC: sun4i-i2s: Add quirks to handle new compatible for reset ASoC: Add sun8i digital audio codec ASoC: sun8i-codec-analog: Add amplifier event to fix first delay dt-bindings: sound: Add sun8i audio documentation ARM: dts: sun8i: Add audio codec, dai and card for A33 ARM: dts: sun8i: parrot: Enable audio nodes ARM: dts: sun8i: sinlinx: Enable audio nodes .../devicetree/bindings/sound/sun4i-i2s.txt | 23 + .../devicetree/bindings/sound/sun8i-codec.txt | 76 +++ arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts | 8 + arch/arm/boot/dts/sun8i-a33.dtsi | 47 ++ arch/arm/boot/dts/sun8i-r16-parrot.dts | 8 + drivers/clk/sunxi-ng/ccu-sun8i-a33.c | 2 +- sound/soc/sunxi/Kconfig | 11 + sound/soc/sunxi/Makefile | 1 + sound/soc/sunxi/sun4i-i2s.c | 61 ++- sound/soc/sunxi/sun8i-codec-analog.c | 30 +- sound/soc/sunxi/sun8i-codec.c | 531 +++++++++++++++++++++ 11 files changed, 791 insertions(+), 7 deletions(-) create mode 100644 Documentation/devicetree/bindings/sound/sun8i-codec.txt create mode 100644 sound/soc/sunxi/sun8i-codec.c -- 2.11.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 03/10] dt-bindings: sound: Add new reset compatible for sun4i-i2s 2017-01-17 14:02 [PATCH v2 00/10] Add sun8i A33 audio driver Mylène Josserand @ 2017-01-17 14:02 ` Mylène Josserand 2017-01-17 16:46 ` Maxime Ripard 0 siblings, 1 reply; 4+ messages in thread From: Mylène Josserand @ 2017-01-17 14:02 UTC (permalink / raw) To: linux-arm-kernel Add a new compatible for sun4i-i2s driver to handle some SoCs that have a reset line that must be asserted/deasserted. This new compatible, "allwinner,sun6i-a31-i2s", requires two properties: - resets: phandle to the reset line - reset-names: the name of the reset line ("rst"). Except these differences, the compatible is identical to previous one which will not handle a reset line. Signed-off-by: Myl?ne Josserand <mylene.josserand@free-electrons.com> --- .../devicetree/bindings/sound/sun4i-i2s.txt | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/sun4i-i2s.txt b/Documentation/devicetree/bindings/sound/sun4i-i2s.txt index 7a2c0945fd22..f673206e309b 100644 --- a/Documentation/devicetree/bindings/sound/sun4i-i2s.txt +++ b/Documentation/devicetree/bindings/sound/sun4i-i2s.txt @@ -7,6 +7,7 @@ Required properties: - compatible: should be one of the following: - "allwinner,sun4i-a10-i2s" + - "allwinner,sun6i-a31-i2s" for controller with reset lines - reg: physical base address of the controller and length of memory mapped region. - interrupts: should contain the I2S interrupt. @@ -19,7 +20,13 @@ Required properties: - "mod" : module clock for the I2S controller - #sound-dai-cells : Must be equal to 0 +Required properties for the following compatibles: + - "allwinner,sun6i-a31-i2s" +- resets: phandle to the reset line for this codec +- reset-names: Contains the reset signal name "rst" + Example: +For "allwinner,sun4i-a10-i2s": i2s0: i2s at 01c22400 { #sound-dai-cells = <0>; @@ -32,3 +39,19 @@ i2s0: i2s at 01c22400 { <&dma SUN4I_DMA_NORMAL 3>; dma-names = "rx", "tx"; }; + +For "allwinner,sun6i-a31-i2s": + +dai: dai at 01c22c00 { + #sound-dai-cells = <0>; + compatible = "allwinner,sun6i-a31-i2s"; + reg = <0x01c22c00 0x200>; + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; + clock-names = "apb", "mod"; + resets = <&ccu RST_BUS_CODEC>; + reset-names = "rst"; + dmas = <&dma 15>, /* AUDIO_CODEC port */ + <&dma 15>; /* AUDIO_CODEC port */ + dma-names = "rx", "tx"; +}; -- 2.11.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 03/10] dt-bindings: sound: Add new reset compatible for sun4i-i2s 2017-01-17 14:02 ` [PATCH v2 03/10] dt-bindings: sound: Add new reset compatible for sun4i-i2s Mylène Josserand @ 2017-01-17 16:46 ` Maxime Ripard 2017-01-18 8:23 ` Mylene Josserand 0 siblings, 1 reply; 4+ messages in thread From: Maxime Ripard @ 2017-01-17 16:46 UTC (permalink / raw) To: linux-arm-kernel On Tue, Jan 17, 2017 at 03:02:23PM +0100, Myl?ne Josserand wrote: > Add a new compatible for sun4i-i2s driver to handle some > SoCs that have a reset line that must be asserted/deasserted. > > This new compatible, "allwinner,sun6i-a31-i2s", requires two > properties: > - resets: phandle to the reset line > - reset-names: the name of the reset line ("rst"). > Except these differences, the compatible is identical to previous one > which will not handle a reset line. > > Signed-off-by: Myl?ne Josserand <mylene.josserand@free-electrons.com> > --- > .../devicetree/bindings/sound/sun4i-i2s.txt | 23 ++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/Documentation/devicetree/bindings/sound/sun4i-i2s.txt b/Documentation/devicetree/bindings/sound/sun4i-i2s.txt > index 7a2c0945fd22..f673206e309b 100644 > --- a/Documentation/devicetree/bindings/sound/sun4i-i2s.txt > +++ b/Documentation/devicetree/bindings/sound/sun4i-i2s.txt > @@ -7,6 +7,7 @@ Required properties: > > - compatible: should be one of the following: > - "allwinner,sun4i-a10-i2s" > + - "allwinner,sun6i-a31-i2s" for controller with reset lines That's not only for controllers with reset lines, but for the controllers found in the A31 (and later). I'd simply drop the last part of that line. > - reg: physical base address of the controller and length of memory mapped > region. > - interrupts: should contain the I2S interrupt. > @@ -19,7 +20,13 @@ Required properties: > - "mod" : module clock for the I2S controller > - #sound-dai-cells : Must be equal to 0 > > +Required properties for the following compatibles: > + - "allwinner,sun6i-a31-i2s" > +- resets: phandle to the reset line for this codec > +- reset-names: Contains the reset signal name "rst" You don't need reset-names if there's a single reset line. > + > Example: > +For "allwinner,sun4i-a10-i2s": > > i2s0: i2s at 01c22400 { > #sound-dai-cells = <0>; > @@ -32,3 +39,19 @@ i2s0: i2s at 01c22400 { > <&dma SUN4I_DMA_NORMAL 3>; > dma-names = "rx", "tx"; > }; > + > +For "allwinner,sun6i-a31-i2s": > + > +dai: dai at 01c22c00 { > + #sound-dai-cells = <0>; > + compatible = "allwinner,sun6i-a31-i2s"; > + reg = <0x01c22c00 0x200>; > + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; > + clock-names = "apb", "mod"; > + resets = <&ccu RST_BUS_CODEC>; > + reset-names = "rst"; > + dmas = <&dma 15>, /* AUDIO_CODEC port */ > + <&dma 15>; /* AUDIO_CODEC port */ > + dma-names = "rx", "tx"; > +}; And we already have an example, so there's no need to add a new one either. Thanks! Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 801 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170117/798afa34/attachment.sig> ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 03/10] dt-bindings: sound: Add new reset compatible for sun4i-i2s 2017-01-17 16:46 ` Maxime Ripard @ 2017-01-18 8:23 ` Mylene Josserand 0 siblings, 0 replies; 4+ messages in thread From: Mylene Josserand @ 2017-01-18 8:23 UTC (permalink / raw) To: linux-arm-kernel Hi, On 17/01/2017 17:46, Maxime Ripard wrote: > On Tue, Jan 17, 2017 at 03:02:23PM +0100, Myl?ne Josserand wrote: >> Add a new compatible for sun4i-i2s driver to handle some >> SoCs that have a reset line that must be asserted/deasserted. >> >> This new compatible, "allwinner,sun6i-a31-i2s", requires two >> properties: >> - resets: phandle to the reset line >> - reset-names: the name of the reset line ("rst"). >> Except these differences, the compatible is identical to previous one >> which will not handle a reset line. >> >> Signed-off-by: Myl?ne Josserand <mylene.josserand@free-electrons.com> >> --- >> .../devicetree/bindings/sound/sun4i-i2s.txt | 23 ++++++++++++++++++++++ >> 1 file changed, 23 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/sound/sun4i-i2s.txt b/Documentation/devicetree/bindings/sound/sun4i-i2s.txt >> index 7a2c0945fd22..f673206e309b 100644 >> --- a/Documentation/devicetree/bindings/sound/sun4i-i2s.txt >> +++ b/Documentation/devicetree/bindings/sound/sun4i-i2s.txt >> @@ -7,6 +7,7 @@ Required properties: >> >> - compatible: should be one of the following: >> - "allwinner,sun4i-a10-i2s" >> + - "allwinner,sun6i-a31-i2s" for controller with reset lines > > That's not only for controllers with reset lines, but for the > controllers found in the A31 (and later). I'd simply drop the last > part of that line. ACK > >> - reg: physical base address of the controller and length of memory mapped >> region. >> - interrupts: should contain the I2S interrupt. >> @@ -19,7 +20,13 @@ Required properties: >> - "mod" : module clock for the I2S controller >> - #sound-dai-cells : Must be equal to 0 >> >> +Required properties for the following compatibles: >> + - "allwinner,sun6i-a31-i2s" >> +- resets: phandle to the reset line for this codec >> +- reset-names: Contains the reset signal name "rst" > > You don't need reset-names if there's a single reset line. > ACK >> + >> Example: >> +For "allwinner,sun4i-a10-i2s": >> >> i2s0: i2s at 01c22400 { >> #sound-dai-cells = <0>; >> @@ -32,3 +39,19 @@ i2s0: i2s at 01c22400 { >> <&dma SUN4I_DMA_NORMAL 3>; >> dma-names = "rx", "tx"; >> }; >> + >> +For "allwinner,sun6i-a31-i2s": >> + >> +dai: dai at 01c22c00 { >> + #sound-dai-cells = <0>; >> + compatible = "allwinner,sun6i-a31-i2s"; >> + reg = <0x01c22c00 0x200>; >> + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; >> + clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; >> + clock-names = "apb", "mod"; >> + resets = <&ccu RST_BUS_CODEC>; >> + reset-names = "rst"; >> + dmas = <&dma 15>, /* AUDIO_CODEC port */ >> + <&dma 15>; /* AUDIO_CODEC port */ >> + dma-names = "rx", "tx"; >> +}; > > And we already have an example, so there's no need to add a new one > either. I will remove it on a V3. Thank you the review! -- Myl?ne Josserand, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-01-18 8:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20170117201016.A5fiHT0P@smtp2p.mail.yandex.net>
2017-01-17 21:20 ` [PATCH v2 03/10] dt-bindings: sound: Add new reset compatible for sun4i-i2s Thomas Petazzoni
2017-01-17 14:02 [PATCH v2 00/10] Add sun8i A33 audio driver Mylène Josserand
2017-01-17 14:02 ` [PATCH v2 03/10] dt-bindings: sound: Add new reset compatible for sun4i-i2s Mylène Josserand
2017-01-17 16:46 ` Maxime Ripard
2017-01-18 8:23 ` Mylene Josserand
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).