cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mux.txt (2688B)


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