mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 12:21:37 +00:00
97 lines
2.8 KiB
Plaintext
97 lines
2.8 KiB
Plaintext
|
Device Tree Clock bindings for ATL (Audio Tracking Logic) of DRA7 SoC.
|
||
|
|
||
|
The ATL IP is used to generate clock to be used to synchronize baseband and
|
||
|
audio codec. A single ATL IP provides four ATL clock instances sharing the same
|
||
|
functional clock but can be configured to provide different clocks.
|
||
|
ATL can maintain a clock averages to some desired frequency based on the bws/aws
|
||
|
signals - can compensate the drift between the two ws signal.
|
||
|
|
||
|
In order to provide the support for ATL and it's output clocks (which can be used
|
||
|
internally within the SoC or external components) two sets of bindings is needed:
|
||
|
|
||
|
Clock tree binding:
|
||
|
This binding uses the common clock binding[1].
|
||
|
To be able to integrate the ATL clocks with DT clock tree.
|
||
|
Provides ccf level representation of the ATL clocks to be used by drivers.
|
||
|
Since the clock instances are part of a single IP this binding is used as a node
|
||
|
for the DT clock tree, the IP driver is needed to handle the actual configuration
|
||
|
of the IP.
|
||
|
|
||
|
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||
|
|
||
|
Required properties:
|
||
|
- compatible : shall be "ti,dra7-atl-clock"
|
||
|
- #clock-cells : from common clock binding; shall be set to 0.
|
||
|
- clocks : link phandles to functional clock of ATL
|
||
|
|
||
|
Binding for the IP driver:
|
||
|
This binding is used to configure the IP driver which is going to handle the
|
||
|
configuration of the IP for the ATL clock instances.
|
||
|
|
||
|
Required properties:
|
||
|
- compatible : shall be "ti,dra7-atl"
|
||
|
- reg : base address for the ATL IP
|
||
|
- ti,provided-clocks : List of phandles to the clocks associated with the ATL
|
||
|
- clocks : link phandles to functional clock of ATL
|
||
|
- clock-names : Shall be set to "fck"
|
||
|
- ti,hwmods : Shall be set to "atl"
|
||
|
|
||
|
Optional properties:
|
||
|
Configuration of ATL instances:
|
||
|
- atl{0/1/2/3} {
|
||
|
- bws : Baseband word select signal selection
|
||
|
- aws : Audio word select signal selection
|
||
|
};
|
||
|
|
||
|
For valid word select signals, see the dt-bindings/clk/ti-dra7-atl.h include
|
||
|
file.
|
||
|
|
||
|
Examples:
|
||
|
/* clock bindings for atl provided clocks */
|
||
|
atl_clkin0_ck: atl_clkin0_ck {
|
||
|
#clock-cells = <0>;
|
||
|
compatible = "ti,dra7-atl-clock";
|
||
|
clocks = <&atl_gfclk_mux>;
|
||
|
};
|
||
|
|
||
|
atl_clkin1_ck: atl_clkin1_ck {
|
||
|
#clock-cells = <0>;
|
||
|
compatible = "ti,dra7-atl-clock";
|
||
|
clocks = <&atl_gfclk_mux>;
|
||
|
};
|
||
|
|
||
|
atl_clkin2_ck: atl_clkin2_ck {
|
||
|
#clock-cells = <0>;
|
||
|
compatible = "ti,dra7-atl-clock";
|
||
|
clocks = <&atl_gfclk_mux>;
|
||
|
};
|
||
|
|
||
|
atl_clkin3_ck: atl_clkin3_ck {
|
||
|
#clock-cells = <0>;
|
||
|
compatible = "ti,dra7-atl-clock";
|
||
|
clocks = <&atl_gfclk_mux>;
|
||
|
};
|
||
|
|
||
|
/* binding for the IP */
|
||
|
atl: atl@4843c000 {
|
||
|
compatible = "ti,dra7-atl";
|
||
|
reg = <0x4843c000 0x3ff>;
|
||
|
ti,hwmods = "atl";
|
||
|
ti,provided-clocks = <&atl_clkin0_ck>, <&atl_clkin1_ck>,
|
||
|
<&atl_clkin2_ck>, <&atl_clkin3_ck>;
|
||
|
clocks = <&atl_gfclk_mux>;
|
||
|
clock-names = "fck";
|
||
|
status = "disabled";
|
||
|
};
|
||
|
|
||
|
#include <dt-bindings/clk/ti-dra7-atl.h>
|
||
|
|
||
|
&atl {
|
||
|
status = "okay";
|
||
|
|
||
|
atl2 {
|
||
|
bws = <DRA7_ATL_WS_MCASP2_FSX>;
|
||
|
aws = <DRA7_ATL_WS_MCASP3_FSX>;
|
||
|
};
|
||
|
};
|