| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- Binding for TI mux clock.
- Binding status: Unstable - ABI compatibility may be broken in the future
- This binding uses the common clock binding[1]. It assumes a
- register-mapped multiplexer with multiple input clock signals or
- parents, one of which can be selected as output. This clock does not
- gate or adjust the parent rate via a divider or multiplier.
- By default the "clocks" property lists the parents in the same order
- as they are programmed into the regster. E.g:
- clocks = <&foo_clock>, <&bar_clock>, <&baz_clock>;
- results in programming the register as follows:
- register value selected parent clock
- 0 foo_clock
- 1 bar_clock
- 2 baz_clock
- Some clock controller IPs do not allow a value of zero to be programmed
- into the register, instead indexing begins at 1. The optional property
- "index-starts-at-one" modified the scheme as follows:
- register value selected clock parent
- 1 foo_clock
- 2 bar_clock
- 3 baz_clock
- The binding must provide the register to control the mux. Optionally
- the number of bits to shift the control field in the register can be
- supplied. If the shift value is missing it is the same as supplying
- a zero shift.
- [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
- Required properties:
- - compatible : shall be "ti,mux-clock" or "ti,composite-mux-clock".
- - #clock-cells : from common clock binding; shall be set to 0.
- - clocks : link phandles of parent clocks
- - reg : register offset for register controlling adjustable mux
- Optional properties:
- - ti,bit-shift : number of bits to shift the bit-mask, defaults to
- 0 if not present
- - ti,index-starts-at-one : valid input select programming starts at 1, not
- zero
- - ti,set-rate-parent : clk_set_rate is propagated to parent clock,
- not supported by the composite-mux-clock subtype
- Examples:
- sys_clkin_ck: sys_clkin_ck@4a306110 {
- #clock-cells = <0>;
- compatible = "ti,mux-clock";
- clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>;
- reg = <0x0110>;
- ti,index-starts-at-one;
- };
- abe_dpll_bypass_clk_mux_ck: abe_dpll_bypass_clk_mux_ck@4a306108 {
- #clock-cells = <0>;
- compatible = "ti,mux-clock";
- clocks = <&sys_clkin_ck>, <&sys_32k_ck>;
- ti,bit-shift = <24>;
- reg = <0x0108>;
- };
- mcbsp5_mux_fck: mcbsp5_mux_fck {
- #clock-cells = <0>;
- compatible = "ti,composite-mux-clock";
- clocks = <&core_96m_fck>, <&mcbsp_clks>;
- ti,bit-shift = <4>;
- reg = <0x02d8>;
- };
|