xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/clock/clk-exynos-audss.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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