Binding for TI divider clock

This binding uses the common clock binding[1].  It assumes a
register-mapped adjustable clock rate divider that does not gate and has
only one input clock or parent.  By default the value programmed into
the register is one less than the actual divisor value.  E.g:

register value		actual divisor value
0			1
1			2
2			3

This assumption may be modified by the following optional properties:

ti,index-starts-at-one - valid divisor values start at 1, not the default
of 0.  E.g:
register value		actual divisor value
1			1
2			2
3			3

ti,index-power-of-two - valid divisor values are powers of two.  E.g:
register value		actual divisor value
0			1
1			2
2			4

Additionally an array of valid dividers may be supplied like so:

	ti,dividers = <4>, <8>, <0>, <16>;

Which will map the resulting values to a divisor table by their index:
register value		actual divisor value
0			4
1			8
2			<invalid divisor, skipped>
3			16

Any zero value in this array means the corresponding bit-value is invalid
and must not be used.

The binding must also provide the register to control the divider and
unless the divider array is provided, min and max dividers. Optionally
the number of bits to shift that mask, if necessary. If the shift value
is missing it is the same as supplying a zero shift.

This binding can also optionally provide support to the hardware autoidle
feature, see [2].

[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/clock/ti/autoidle.txt

Required properties:
- compatible : shall be "ti,divider-clock" or "ti,composite-divider-clock".
- #clock-cells : from common clock binding; shall be set to 0.
- clocks : link to phandle of parent clock
- reg : offset for register controlling adjustable divider

Optional properties:
- clock-output-names : from common clock binding.
- ti,dividers : array of integers defining divisors
- ti,bit-shift : number of bits to shift the divider value, defaults to 0
- ti,min-div : min divisor for dividing the input clock rate, only
  needed if the first divisor is offset from the default value (1)
- ti,max-div : max divisor for dividing the input clock rate, only needed
  if ti,dividers is not defined.
- ti,index-starts-at-one : valid divisor programming starts at 1, not zero,
  only valid if ti,dividers is not defined.
- ti,index-power-of-two : valid divisor programming must be a power of two,
  only valid if ti,dividers is not defined.
- ti,autoidle-shift : bit shift of the autoidle enable bit for the clock,
  see [2]
- ti,invert-autoidle-bit : autoidle is enabled by setting the bit to 0,
  see [2]
- ti,set-rate-parent : clk_set_rate is propagated to parent
- ti,latch-bit : latch the divider value to HW, only needed if the register
  access requires this. As an example dra76x DPLL_GMAC H14 divider implements
  such behavior.

Examples:
dpll_usb_m2_ck: dpll_usb_m2_ck@4a008190 {
	#clock-cells = <0>;
	compatible = "ti,divider-clock";
	clocks = <&dpll_usb_ck>;
	ti,max-div = <127>;
	reg = <0x190>;
	ti,index-starts-at-one;
};

aess_fclk: aess_fclk@4a004528 {
	#clock-cells = <0>;
	compatible = "ti,divider-clock";
	clocks = <&abe_clk>;
	ti,bit-shift = <24>;
	reg = <0x528>;
	ti,max-div = <2>;
};

dpll_core_m3x2_div_ck: dpll_core_m3x2_div_ck {
	#clock-cells = <0>;
	compatible = "ti,composite-divider-clock";
	clocks = <&dpll_core_x2_ck>;
	ti,max-div = <31>;
	reg = <0x0134>;
	ti,index-starts-at-one;
};

ssi_ssr_div_fck_3430es2: ssi_ssr_div_fck_3430es2 {
	#clock-cells = <0>;
	compatible = "ti,composite-divider-clock";
	clocks = <&corex2_fck>;
	ti,bit-shift = <8>;
	reg = <0x0a40>;
	ti,dividers = <0>, <1>, <2>, <3>, <4>, <0>, <6>, <0>, <8>;
};
