18c2ecf20Sopenharmony_ci* Samsung Audio Subsystem Clock Controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThe Samsung Audio Subsystem clock controller generates and supplies clocks
48c2ecf20Sopenharmony_cito Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock
58c2ecf20Sopenharmony_cibinding described here is applicable to all SoCs in Exynos family.
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciRequired Properties:
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci- compatible: should be one of the following:
108c2ecf20Sopenharmony_ci  - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs.
118c2ecf20Sopenharmony_ci  - "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250
128c2ecf20Sopenharmony_ci    SoCs.
138c2ecf20Sopenharmony_ci  - "samsung,exynos5410-audss-clock" - controller compatible with Exynos5410
148c2ecf20Sopenharmony_ci    SoCs.
158c2ecf20Sopenharmony_ci  - "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420
168c2ecf20Sopenharmony_ci    SoCs.
178c2ecf20Sopenharmony_ci- reg: physical base address and length of the controller's register set.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci- #clock-cells: should be 1.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci- clocks:
228c2ecf20Sopenharmony_ci  - pll_ref: Fixed rate PLL reference clock, parent of mout_audss. "fin_pll"
238c2ecf20Sopenharmony_ci    is used if not specified.
248c2ecf20Sopenharmony_ci  - pll_in: Input PLL to the AudioSS block, parent of mout_audss. "fout_epll"
258c2ecf20Sopenharmony_ci    is used if not specified.
268c2ecf20Sopenharmony_ci  - cdclk: External i2s clock, parent of mout_i2s. "cdclk0" is used if not
278c2ecf20Sopenharmony_ci    specified.
288c2ecf20Sopenharmony_ci  - sclk_audio: Audio bus clock, parent of mout_i2s. "sclk_audio0" is used if
298c2ecf20Sopenharmony_ci    not specified.
308c2ecf20Sopenharmony_ci  - sclk_pcm_in: PCM clock, parent of sclk_pcm.  "sclk_pcm0" is used if not
318c2ecf20Sopenharmony_ci    specified.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci- clock-names: Aliases for the above clocks. They should be "pll_ref",
348c2ecf20Sopenharmony_ci  "pll_in", "cdclk", "sclk_audio", and "sclk_pcm_in" respectively.
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciOptional Properties:
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci  - power-domains: a phandle to respective power domain node as described by
398c2ecf20Sopenharmony_ci    generic PM domain bindings (see power/power_domain.txt for more
408c2ecf20Sopenharmony_ci    information).
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciThe following is the list of clocks generated by the controller. Each clock is
438c2ecf20Sopenharmony_ciassigned an identifier and client nodes use this identifier to specify the
448c2ecf20Sopenharmony_ciclock which they consume. Some of the clocks are available only on a particular
458c2ecf20Sopenharmony_ciExynos4 SoC and this is specified where applicable.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciProvided clocks:
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ciClock           ID      SoC (if specific)
508c2ecf20Sopenharmony_ci-----------------------------------------------
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_cimout_audss      0
538c2ecf20Sopenharmony_cimout_i2s        1
548c2ecf20Sopenharmony_cidout_srp        2
558c2ecf20Sopenharmony_cidout_aud_bus    3
568c2ecf20Sopenharmony_cidout_i2s        4
578c2ecf20Sopenharmony_cisrp_clk         5
588c2ecf20Sopenharmony_cii2s_bus         6
598c2ecf20Sopenharmony_cisclk_i2s        7
608c2ecf20Sopenharmony_cipcm_bus         8
618c2ecf20Sopenharmony_cisclk_pcm        9
628c2ecf20Sopenharmony_ciadma            10      Exynos5420
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciExample 1: An example of a clock controller node using the default input
658c2ecf20Sopenharmony_ci	   clock names is listed below.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciclock_audss: audss-clock-controller@3810000 {
688c2ecf20Sopenharmony_ci	compatible = "samsung,exynos5250-audss-clock";
698c2ecf20Sopenharmony_ci	reg = <0x03810000 0x0C>;
708c2ecf20Sopenharmony_ci	#clock-cells = <1>;
718c2ecf20Sopenharmony_ci};
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ciExample 2: An example of a clock controller node with the input clocks
748c2ecf20Sopenharmony_ci           specified.
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciclock_audss: audss-clock-controller@3810000 {
778c2ecf20Sopenharmony_ci	compatible = "samsung,exynos5250-audss-clock";
788c2ecf20Sopenharmony_ci	reg = <0x03810000 0x0C>;
798c2ecf20Sopenharmony_ci	#clock-cells = <1>;
808c2ecf20Sopenharmony_ci	clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>,
818c2ecf20Sopenharmony_ci		<&ext_i2s_clk>;
828c2ecf20Sopenharmony_ci	clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in", "cdclk";
838c2ecf20Sopenharmony_ci};
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciExample 3: I2S controller node that consumes the clock generated by the clock
868c2ecf20Sopenharmony_ci           controller. Refer to the standard clock bindings for information
878c2ecf20Sopenharmony_ci           about 'clocks' and 'clock-names' property.
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_cii2s0: i2s@3830000 {
908c2ecf20Sopenharmony_ci	compatible = "samsung,i2s-v5";
918c2ecf20Sopenharmony_ci	reg = <0x03830000 0x100>;
928c2ecf20Sopenharmony_ci	dmas = <&pdma0 10
938c2ecf20Sopenharmony_ci		&pdma0 9
948c2ecf20Sopenharmony_ci		&pdma0 8>;
958c2ecf20Sopenharmony_ci	dma-names = "tx", "rx", "tx-sec";
968c2ecf20Sopenharmony_ci	clocks = <&clock_audss EXYNOS_I2S_BUS>,
978c2ecf20Sopenharmony_ci		<&clock_audss EXYNOS_I2S_BUS>,
988c2ecf20Sopenharmony_ci		<&clock_audss EXYNOS_SCLK_I2S>,
998c2ecf20Sopenharmony_ci		<&clock_audss EXYNOS_MOUT_AUDSS>,
1008c2ecf20Sopenharmony_ci		<&clock_audss EXYNOS_MOUT_I2S>;
1018c2ecf20Sopenharmony_ci	clock-names = "iis", "i2s_opclk0", "i2s_opclk1",
1028c2ecf20Sopenharmony_ci		      "mout_audss", "mout_i2s";
1038c2ecf20Sopenharmony_ci};
104