|
|
@@ -0,0 +1,96 @@
|
|
|
+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>;
|
|
|
+ };
|
|
|
+};
|