1*4882a593Smuzhiyun* Samsung Audio Subsystem Clock Controller 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThe Samsung Audio Subsystem clock controller generates and supplies clocks 4*4882a593Smuzhiyunto Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock 5*4882a593Smuzhiyunbinding described here is applicable to all SoCs in Exynos family. 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunRequired Properties: 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun- compatible: should be one of the following: 10*4882a593Smuzhiyun - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs. 11*4882a593Smuzhiyun - "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250 12*4882a593Smuzhiyun SoCs. 13*4882a593Smuzhiyun - "samsung,exynos5410-audss-clock" - controller compatible with Exynos5410 14*4882a593Smuzhiyun SoCs. 15*4882a593Smuzhiyun - "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420 16*4882a593Smuzhiyun SoCs. 17*4882a593Smuzhiyun- reg: physical base address and length of the controller's register set. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun- #clock-cells: should be 1. 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun- clocks: 22*4882a593Smuzhiyun - pll_ref: Fixed rate PLL reference clock, parent of mout_audss. "fin_pll" 23*4882a593Smuzhiyun is used if not specified. 24*4882a593Smuzhiyun - pll_in: Input PLL to the AudioSS block, parent of mout_audss. "fout_epll" 25*4882a593Smuzhiyun is used if not specified. 26*4882a593Smuzhiyun - cdclk: External i2s clock, parent of mout_i2s. "cdclk0" is used if not 27*4882a593Smuzhiyun specified. 28*4882a593Smuzhiyun - sclk_audio: Audio bus clock, parent of mout_i2s. "sclk_audio0" is used if 29*4882a593Smuzhiyun not specified. 30*4882a593Smuzhiyun - sclk_pcm_in: PCM clock, parent of sclk_pcm. "sclk_pcm0" is used if not 31*4882a593Smuzhiyun specified. 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun- clock-names: Aliases for the above clocks. They should be "pll_ref", 34*4882a593Smuzhiyun "pll_in", "cdclk", "sclk_audio", and "sclk_pcm_in" respectively. 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunOptional Properties: 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun - power-domains: a phandle to respective power domain node as described by 39*4882a593Smuzhiyun generic PM domain bindings (see power/power_domain.txt for more 40*4882a593Smuzhiyun information). 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunThe following is the list of clocks generated by the controller. Each clock is 43*4882a593Smuzhiyunassigned an identifier and client nodes use this identifier to specify the 44*4882a593Smuzhiyunclock which they consume. Some of the clocks are available only on a particular 45*4882a593SmuzhiyunExynos4 SoC and this is specified where applicable. 46*4882a593Smuzhiyun 47*4882a593SmuzhiyunProvided clocks: 48*4882a593Smuzhiyun 49*4882a593SmuzhiyunClock ID SoC (if specific) 50*4882a593Smuzhiyun----------------------------------------------- 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunmout_audss 0 53*4882a593Smuzhiyunmout_i2s 1 54*4882a593Smuzhiyundout_srp 2 55*4882a593Smuzhiyundout_aud_bus 3 56*4882a593Smuzhiyundout_i2s 4 57*4882a593Smuzhiyunsrp_clk 5 58*4882a593Smuzhiyuni2s_bus 6 59*4882a593Smuzhiyunsclk_i2s 7 60*4882a593Smuzhiyunpcm_bus 8 61*4882a593Smuzhiyunsclk_pcm 9 62*4882a593Smuzhiyunadma 10 Exynos5420 63*4882a593Smuzhiyun 64*4882a593SmuzhiyunExample 1: An example of a clock controller node using the default input 65*4882a593Smuzhiyun clock names is listed below. 66*4882a593Smuzhiyun 67*4882a593Smuzhiyunclock_audss: audss-clock-controller@3810000 { 68*4882a593Smuzhiyun compatible = "samsung,exynos5250-audss-clock"; 69*4882a593Smuzhiyun reg = <0x03810000 0x0C>; 70*4882a593Smuzhiyun #clock-cells = <1>; 71*4882a593Smuzhiyun}; 72*4882a593Smuzhiyun 73*4882a593SmuzhiyunExample 2: An example of a clock controller node with the input clocks 74*4882a593Smuzhiyun specified. 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunclock_audss: audss-clock-controller@3810000 { 77*4882a593Smuzhiyun compatible = "samsung,exynos5250-audss-clock"; 78*4882a593Smuzhiyun reg = <0x03810000 0x0C>; 79*4882a593Smuzhiyun #clock-cells = <1>; 80*4882a593Smuzhiyun clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>, 81*4882a593Smuzhiyun <&ext_i2s_clk>; 82*4882a593Smuzhiyun clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in", "cdclk"; 83*4882a593Smuzhiyun}; 84*4882a593Smuzhiyun 85*4882a593SmuzhiyunExample 3: I2S controller node that consumes the clock generated by the clock 86*4882a593Smuzhiyun controller. Refer to the standard clock bindings for information 87*4882a593Smuzhiyun about 'clocks' and 'clock-names' property. 88*4882a593Smuzhiyun 89*4882a593Smuzhiyuni2s0: i2s@3830000 { 90*4882a593Smuzhiyun compatible = "samsung,i2s-v5"; 91*4882a593Smuzhiyun reg = <0x03830000 0x100>; 92*4882a593Smuzhiyun dmas = <&pdma0 10 93*4882a593Smuzhiyun &pdma0 9 94*4882a593Smuzhiyun &pdma0 8>; 95*4882a593Smuzhiyun dma-names = "tx", "rx", "tx-sec"; 96*4882a593Smuzhiyun clocks = <&clock_audss EXYNOS_I2S_BUS>, 97*4882a593Smuzhiyun <&clock_audss EXYNOS_I2S_BUS>, 98*4882a593Smuzhiyun <&clock_audss EXYNOS_SCLK_I2S>, 99*4882a593Smuzhiyun <&clock_audss EXYNOS_MOUT_AUDSS>, 100*4882a593Smuzhiyun <&clock_audss EXYNOS_MOUT_I2S>; 101*4882a593Smuzhiyun clock-names = "iis", "i2s_opclk0", "i2s_opclk1", 102*4882a593Smuzhiyun "mout_audss", "mout_i2s"; 103*4882a593Smuzhiyun}; 104