Hi, On Fri, Oct 21, 2016 at 4:36 PM, Jean-Francois Moine <moinejf@xxxxxxx> wrote: > This patch adds I2S support to sun8i SoCs as the A83T and H3. > > Signed-off-by: Jean-Francois Moine <moinejf@xxxxxxx> > --- > Note: This driver is closed to the sun4i-i2s except that: > - it handles the H3 If it's close to sun4i-i2s, you should probably rework that one to support the newer SoCs. > - it creates the sound card (with sun4i-i2s, the sound card is created > by the CODECs) I think this is wrong. I2S is only the DAI. You typically have a separate platform driver for the whole card, or just use simple-card. > --- > .../devicetree/bindings/sound/sun4i-i2s.txt | 38 +- > sound/soc/sunxi/Kconfig | 8 + > sound/soc/sunxi/Makefile | 3 + > sound/soc/sunxi/sun8i-i2s.c | 700 +++++++++++++++++++++ > 4 files changed, 744 insertions(+), 5 deletions(-) > create mode 100644 sound/soc/sunxi/sun8i-i2s.c > > diff --git a/Documentation/devicetree/bindings/sound/sun4i-i2s.txt b/Documentation/devicetree/bindings/sound/sun4i-i2s.txt > index 7b526ec..2fb0a7a 100644 > --- a/Documentation/devicetree/bindings/sound/sun4i-i2s.txt > +++ b/Documentation/devicetree/bindings/sound/sun4i-i2s.txt > @@ -1,4 +1,4 @@ > -* Allwinner A10 I2S controller > +* Allwinner A10/A38T/H3 I2S controller > > The I2S bus (Inter-IC sound bus) is a serial link for digital > audio data transfer between devices in the system. > @@ -6,20 +6,30 @@ audio data transfer between devices in the system. > Required properties: > > - compatible: should be one of the followings > - - "allwinner,sun4i-a10-i2s" > + - "allwinner,sun4i-a10-i2s" > + "allwinner,sun8i-a83t-i2s" > + "allwinner,sun8i-h3-i2s" > - reg: physical base address of the controller and length of memory mapped > region. > -- interrupts: should contain the I2S interrupt. > - dmas: DMA specifiers for tx and rx dma. See the DMA client binding, > Documentation/devicetree/bindings/dma/dma.txt > -- dma-names: should include "tx" and "rx". > +- dma-names: must include "tx" and/or "rx". > - clocks: a list of phandle + clock-specifer pairs, one for each entry in clock-names. > - clock-names: should contain followings: > - "apb" : clock for the I2S bus interface > - "mod" : module clock for the I2S controller > - #sound-dai-cells : Must be equal to 0 > > -Example: > +Optional properties: > + > +- interrupts: I2S interrupt > +- resets: phandle to the reset of the device > + > +Required nodes: > + > + - port: link to the associated CODEC (DAC, HDMI...) Note here you are changing an existing binding, adding a required node. If it were truely different, you probably should've started a new binding. Regards ChenYu > + > +Example 1: > > i2s0: i2s@01c22400 { > #sound-dai-cells = <0>; > @@ -32,3 +42,21 @@ i2s0: i2s@01c22400 { > <&dma SUN4I_DMA_NORMAL 3>; > dma-names = "rx", "tx"; > }; > + > +Example 2: > + > +i2s2: i2s@1c22800 { > + compatible = "allwinner,sun8i-a83t-i2s"; > + reg = <0x01c22800 0x60>; > + clocks = <&ccu CLK_BUS_I2S2>, <&ccu CLK_I2S2>; > + clock-names = "apb", "mod"; > + resets = <&ccu RST_I2S2>; > + dmas = <&dma 27>; > + dma-names = "tx"; > + status = "disabled"; > + port { > + i2s2_hdmi: endpoint { > + remote-endpoint = <&hdmi_i2s2>; > + }; > + }; > +}; -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html