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