mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.0 KiB
61 lines
2.0 KiB
Texas Instruments clkctrl clock binding |
|
|
|
Texas Instruments SoCs can have a clkctrl clock controller for each |
|
interconnect target module. The clkctrl clock controller manages functional |
|
and interface clocks for each module. Each clkctrl controller can also |
|
gate one or more optional functional clocks for a module, and can have one |
|
or more clock muxes. There is a clkctrl clock controller typically for each |
|
interconnect target module on omap4 and later variants. |
|
|
|
The clock consumers can specify the index of the clkctrl clock using |
|
the hardware offset from the clkctrl instance register space. The optional |
|
clocks can be specified by clkctrl hardware offset and the index of the |
|
optional clock. |
|
|
|
For more information, please see the Linux clock framework binding at |
|
Documentation/devicetree/bindings/clock/clock-bindings.txt. |
|
|
|
Required properties : |
|
- compatible : shall be "ti,clkctrl" or a clock domain specific name: |
|
"ti,clkctrl-l4-cfg" |
|
"ti,clkctrl-l4-per" |
|
"ti,clkctrl-l4-secure" |
|
"ti,clkctrl-l4-wkup" |
|
- #clock-cells : shall contain 2 with the first entry being the instance |
|
offset from the clock domain base and the second being the |
|
clock index |
|
- reg : clock registers |
|
|
|
Example: Clock controller node on omap 4430: |
|
|
|
&cm2 { |
|
l4per: cm@1400 { |
|
cm_l4per@0 { |
|
cm_l4per_clkctrl: clock@20 { |
|
compatible = "ti,clkctrl-l4-per", "ti,clkctrl"; |
|
reg = <0x20 0x1b0>; |
|
#clock-cells = <2>; |
|
}; |
|
}; |
|
}; |
|
}; |
|
|
|
Example: Preprocessor helper macros in dt-bindings/clock/ti-clkctrl.h |
|
|
|
#define OMAP4_CLKCTRL_OFFSET 0x20 |
|
#define OMAP4_CLKCTRL_INDEX(offset) ((offset) - OMAP4_CLKCTRL_OFFSET) |
|
#define MODULEMODE_HWCTRL 1 |
|
#define MODULEMODE_SWCTRL 2 |
|
|
|
#define OMAP4_GPTIMER10_CLKTRL OMAP4_CLKCTRL_INDEX(0x28) |
|
#define OMAP4_GPTIMER11_CLKTRL OMAP4_CLKCTRL_INDEX(0x30) |
|
#define OMAP4_GPTIMER2_CLKTRL OMAP4_CLKCTRL_INDEX(0x38) |
|
... |
|
#define OMAP4_GPIO2_CLKCTRL OMAP_CLKCTRL_INDEX(0x60) |
|
|
|
Example: Clock consumer node for GPIO2: |
|
|
|
&gpio2 { |
|
clocks = <&cm_l4per_clkctrl OMAP4_GPIO2_CLKCTRL 0 |
|
&cm_l4per_clkctrl OMAP4_GPIO2_CLKCTRL 8>; |
|
};
|
|
|