96 lines
3.1 KiB
Plaintext
96 lines
3.1 KiB
Plaintext
* Samsung Audio Subsystem Clock Controller
|
|
|
|
The Samsung Audio Subsystem clock controller generates and supplies clocks
|
|
to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock
|
|
binding described here is applicable to all SoCs in Exynos family.
|
|
|
|
Required Properties:
|
|
|
|
- compatible: should be one of the following:
|
|
- "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs.
|
|
- "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250
|
|
SoCs.
|
|
- "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420
|
|
SoCs.
|
|
- reg: physical base address and length of the controller's register set.
|
|
|
|
- #clock-cells: should be 1.
|
|
|
|
- clocks:
|
|
- pll_ref: Fixed rate PLL reference clock, parent of mout_audss. "fin_pll"
|
|
is used if not specified.
|
|
- pll_in: Input PLL to the AudioSS block, parent of mout_audss. "fout_epll"
|
|
is used if not specified.
|
|
- cdclk: External i2s clock, parent of mout_i2s. "cdclk0" is used if not
|
|
specified.
|
|
- sclk_audio: Audio bus clock, parent of mout_i2s. "sclk_audio0" is used if
|
|
not specified.
|
|
- sclk_pcm_in: PCM clock, parent of sclk_pcm. "sclk_pcm0" is used if not
|
|
specified.
|
|
|
|
- clock-names: Aliases for the above clocks. They should be "pll_ref",
|
|
"pll_in", "cdclk", "sclk_audio", and "sclk_pcm_in" respectively.
|
|
|
|
The following is the list of clocks generated by the controller. Each clock is
|
|
assigned an identifier and client nodes use this identifier to specify the
|
|
clock which they consume. Some of the clocks are available only on a particular
|
|
Exynos4 SoC and this is specified where applicable.
|
|
|
|
Provided clocks:
|
|
|
|
Clock ID SoC (if specific)
|
|
-----------------------------------------------
|
|
|
|
mout_audss 0
|
|
mout_i2s 1
|
|
dout_srp 2
|
|
dout_aud_bus 3
|
|
dout_i2s 4
|
|
srp_clk 5
|
|
i2s_bus 6
|
|
sclk_i2s 7
|
|
pcm_bus 8
|
|
sclk_pcm 9
|
|
adma 10 Exynos5420
|
|
|
|
Example 1: An example of a clock controller node using the default input
|
|
clock names is listed below.
|
|
|
|
clock_audss: audss-clock-controller@3810000 {
|
|
compatible = "samsung,exynos5250-audss-clock";
|
|
reg = <0x03810000 0x0C>;
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
Example 2: An example of a clock controller node with the input clocks
|
|
specified.
|
|
|
|
clock_audss: audss-clock-controller@3810000 {
|
|
compatible = "samsung,exynos5250-audss-clock";
|
|
reg = <0x03810000 0x0C>;
|
|
#clock-cells = <1>;
|
|
clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>,
|
|
<&ext_i2s_clk>;
|
|
clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in", "cdclk";
|
|
};
|
|
|
|
Example 3: I2S controller node that consumes the clock generated by the clock
|
|
controller. Refer to the standard clock bindings for information
|
|
about 'clocks' and 'clock-names' property.
|
|
|
|
i2s0: i2s@03830000 {
|
|
compatible = "samsung,i2s-v5";
|
|
reg = <0x03830000 0x100>;
|
|
dmas = <&pdma0 10
|
|
&pdma0 9
|
|
&pdma0 8>;
|
|
dma-names = "tx", "rx", "tx-sec";
|
|
clocks = <&clock_audss EXYNOS_I2S_BUS>,
|
|
<&clock_audss EXYNOS_I2S_BUS>,
|
|
<&clock_audss EXYNOS_SCLK_I2S>,
|
|
<&clock_audss EXYNOS_MOUT_AUDSS>,
|
|
<&clock_audss EXYNOS_MOUT_I2S>;
|
|
clock-names = "iis", "i2s_opclk0", "i2s_opclk1",
|
|
"mout_audss", "mout_i2s";
|
|
};
|