1Allwinner SUN8I audio codec 2------------------------------------ 3 4On Sun8i-A33 SoCs, the audio is separated in different parts: 5 - A DAI driver. It uses the "sun4i-i2s" driver which is 6 documented here: 7 Documentation/devicetree/bindings/sound/sun4i-i2s.txt 8 - An analog part of the codec which is handled as PRCM registers. 9 See Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt 10 - An digital part of the codec which is documented in this current 11 binding documentation. 12 - And finally, an audio card which links all the above components. 13 The simple-audio card will be used. 14 See Documentation/devicetree/bindings/sound/simple-card.txt 15 16This bindings documentation exposes Sun8i codec (digital part). 17 18Required properties: 19- compatible: must be "allwinner,sun8i-a33-codec" 20- reg: must contain the registers location and length 21- interrupts: must contain the codec interrupt 22- clocks: a list of phandle + clock-specifer pairs, one for each entry 23 in clock-names. 24- clock-names: should contain followings: 25 - "bus": the parent APB clock for this controller 26 - "mod": the parent module clock 27 28Here is an example to add a sound card and the codec binding on sun8i SoCs that 29are similar to A33 using simple-card: 30 31 sound { 32 compatible = "simple-audio-card"; 33 simple-audio-card,name = "sun8i-a33-audio"; 34 simple-audio-card,format = "i2s"; 35 simple-audio-card,frame-master = <&link_codec>; 36 simple-audio-card,bitclock-master = <&link_codec>; 37 simple-audio-card,mclk-fs = <512>; 38 simple-audio-card,aux-devs = <&codec_analog>; 39 simple-audio-card,routing = 40 "Left DAC", "Digital Left DAC", 41 "Right DAC", "Digital Right DAC"; 42 43 simple-audio-card,cpu { 44 sound-dai = <&dai>; 45 }; 46 47 link_codec: simple-audio-card,codec { 48 sound-dai = <&codec>; 49 }; 50 51 soc@1c00000 { 52 [...] 53 54 audio-codec@1c22e00 { 55 #sound-dai-cells = <0>; 56 compatible = "allwinner,sun8i-a33-codec"; 57 reg = <0x01c22e00 0x400>; 58 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 59 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; 60 clock-names = "bus", "mod"; 61 }; 62 }; 63 64