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>; }; ='search'/>
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2016-12-18 22:26:36 +0000
committerThomas Gleixner <tglx@linutronix.de>2016-12-19 11:19:57 +0100
commitc9435f35ae64ee162555a82b6a3586b160093957 (patch)
treebf2e4cb2375b202d0affeead14cdcdbc03b7b9f2
parentb0b3a37b908b5906524c11f3ca12cd7c9d4adc1c (diff)
clocksource/drivers/moxart: Plug memory and mapping leaks
If of_iomap() or any other subsequent function fails moxart_timer_init() exits without freeing memory and unmapping the timer base. Add proper cleanup points. Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com> Link: http://lkml.kernel.org/r/1482099996-1524-1-git-send-email-sudipm.mukherjee@gmail.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat