WIP FPC-III support
[linux/fpc-iii.git] / Documentation / devicetree / bindings / clock / ti / mux.txt
blobeec8994b9be876752795bc4a37dc526329b9e453
1 Binding for TI mux clock.
3 Binding status: Unstable - ABI compatibility may be broken in the future
5 This binding uses the common clock binding[1].  It assumes a
6 register-mapped multiplexer with multiple input clock signals or
7 parents, one of which can be selected as output.  This clock does not
8 gate or adjust the parent rate via a divider or multiplier.
10 By default the "clocks" property lists the parents in the same order
11 as they are programmed into the regster.  E.g:
13         clocks = <&foo_clock>, <&bar_clock>, <&baz_clock>;
15 results in programming the register as follows:
17 register value          selected parent clock
18 0                       foo_clock
19 1                       bar_clock
20 2                       baz_clock
22 Some clock controller IPs do not allow a value of zero to be programmed
23 into the register, instead indexing begins at 1.  The optional property
24 "index-starts-at-one" modified the scheme as follows:
26 register value          selected clock parent
27 1                       foo_clock
28 2                       bar_clock
29 3                       baz_clock
31 The binding must provide the register to control the mux. Optionally
32 the number of bits to shift the control field in the register can be
33 supplied. If the shift value is missing it is the same as supplying
34 a zero shift.
36 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
38 Required properties:
39 - compatible : shall be "ti,mux-clock" or "ti,composite-mux-clock".
40 - #clock-cells : from common clock binding; shall be set to 0.
41 - clocks : link phandles of parent clocks
42 - reg : register offset for register controlling adjustable mux
44 Optional properties:
45 - ti,bit-shift : number of bits to shift the bit-mask, defaults to
46   0 if not present
47 - ti,index-starts-at-one : valid input select programming starts at 1, not
48   zero
49 - ti,set-rate-parent : clk_set_rate is propagated to parent clock,
50   not supported by the composite-mux-clock subtype
51 - ti,latch-bit : latch the mux value to HW, only needed if the register
52   access requires this. As an example, dra7x DPLL_GMAC H14 muxing
53   implements such behavior.
55 Examples:
57 sys_clkin_ck: sys_clkin_ck@4a306110 {
58         #clock-cells = <0>;
59         compatible = "ti,mux-clock";
60         clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>;
61         reg = <0x0110>;
62         ti,index-starts-at-one;
65 abe_dpll_bypass_clk_mux_ck: abe_dpll_bypass_clk_mux_ck@4a306108 {
66         #clock-cells = <0>;
67         compatible = "ti,mux-clock";
68         clocks = <&sys_clkin_ck>, <&sys_32k_ck>;
69         ti,bit-shift = <24>;
70         reg = <0x0108>;
73 mcbsp5_mux_fck: mcbsp5_mux_fck {
74         #clock-cells = <0>;
75         compatible = "ti,composite-mux-clock";
76         clocks = <&core_96m_fck>, <&mcbsp_clks>;
77         ti,bit-shift = <4>;
78         reg = <0x02d8>;