Texas Instruments TI SCI Clock Controller ========================================= All clocks on Texas Instruments' SoCs that contain a System Controller, are only controlled by this entity. Communication between a host processor running an OS and the System Controller happens through a protocol known as TI SCI[1]. This clock implementation plugs into the common clock framework and makes use of the TI SCI protocol on clock API requests. [1] http://processors.wiki.ti.com/index.php/TISCI Clock Controller Node ===================== The clock controller node represents the clocks managed by the SYSFW. Because this relies on the TI SCI protocol to communicate with the SYSFW it must be a child of the sysfw node. Required Properties: -------------------- - compatible: Must be "ti,k2g-sci-clk" - #clock-cells: Must be be 2. In clock consumers, this cell represents the device ID and clock ID exposed by the SYSFW firmware. Example (AM65x): ---------------- dmsc: dmsc { compatible = "ti,k2g-sci"; ... k3_clks: clocks { compatible = "ti,k2g-sci-clk"; #clock-cells = <2>; }; }; Clock Consumers =============== Hardware blocks supplied by a clock should contain a "clocks" property that is a phandle pointing to the clock controller node along with an index representing the device id together with a clock ID to be passed to the SYSFW for device control. Required Properties: -------------------- - clocks: phandle pointing to the corresponding clock node, an ID representing the device, and an index representing a clock. Example (AM65x): ---------------- uart2: serial@02800000 { compatible = "ti,omap4-uart"; ... clocks = <&k3_clks 0x0007 1>; };