<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/clk/rockchip, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-12-06T23:57:32Z</updated>
<entry>
<title>clk-divider: Fix READ_ONLY when divider &gt; 1</title>
<updated>2014-12-06T23:57:32Z</updated>
<author>
<name>James Hogan</name>
</author>
<published>2014-11-14T15:32:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49c04e670656d8fac9b32d268ceff34adced15d0'/>
<id>urn:sha1:49c04e670656d8fac9b32d268ceff34adced15d0</id>
<content type='text'>
commit e6d5e7d90be92cee626d7ec16ca9b06f1eed710b upstream.

Commit 79c6ab509558 (clk: divider: add CLK_DIVIDER_READ_ONLY flag) in
v3.16 introduced the CLK_DIVIDER_READ_ONLY flag which caused the
recalc_rate() and round_rate() clock callbacks to be omitted.

However using this flag has the unfortunate side effect of causing the
clock recalculation code when a clock rate change is attempted to always
treat it as a pass-through clock, i.e. with a fixed divide of 1, which
may not be the case. Child clock rates are then recalculated using the
wrong parent rate.

Therefore instead of dropping the recalc_rate() and round_rate()
callbacks, alter clk_divider_bestdiv() to always report the current
divider as the best divider so that it is never altered.

For me the read only clock was the system clock, which divided the PLL
rate by 2, from which both the UART and the SPI clocks were divided.
Initial setting of the UART rate set it correctly, but when the SPI
clock was set, the other child clocks were miscalculated. The UART clock
was recalculated using the PLL rate as the parent rate, resulting in a
UART new_rate of double what it should be, and a UART which spewed forth
garbage when the rate changes were propagated.

Signed-off-by: James Hogan &lt;james.hogan@imgtec.com&gt;
Cc: Thomas Abraham &lt;thomas.ab@samsung.com&gt;
Cc: Tomasz Figa &lt;t.figa@samsung.com&gt;
Cc: Max Schwarz &lt;max.schwarz@online.de&gt;
Acked-by: Haojian Zhuang &lt;haojian.zhuang@gmail.com&gt;
Signed-off-by: Michael Turquette &lt;mturquette@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>clk: rockchip: Fix the clocks for i2c1 and i2c2</title>
<updated>2014-09-03T18:24:50Z</updated>
<author>
<name>Doug Anderson</name>
</author>
<published>2014-08-22T16:49:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f4ee3c8446d55ef426965abccbbc195e0f157e73'/>
<id>urn:sha1:f4ee3c8446d55ef426965abccbbc195e0f157e73</id>
<content type='text'>
The clocks for i2c1 and i2c2 are flipped.  The clock tree matched the
Technical Reference Manual (TRM) but the TRM was wrong.  Swap them in
the clock tree.  This was determined experimentally (by Addy) and
confirmed by the Rockchip IC team.

Signed-off-by: Doug Anderson &lt;dianders@chromium.org&gt;
Reported-by: Addy Ke &lt;addy.ke@rock-chips.com&gt;
Reviewed-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
<entry>
<title>clk: rockchip: add clock controller for rk3288</title>
<updated>2014-07-13T19:17:10Z</updated>
<author>
<name>Heiko Stübner</name>
</author>
<published>2014-07-03T00:02:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b9e4ba541607e6ee9c6c8493f51198fe3af03aec'/>
<id>urn:sha1:b9e4ba541607e6ee9c6c8493f51198fe3af03aec</id>
<content type='text'>
Add the clock tree definition for the new rk3288 SoC.

Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Acked-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Tested-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
<entry>
<title>clk: rockchip: add clock driver for rk3188 and rk3066 clocks</title>
<updated>2014-07-13T19:17:09Z</updated>
<author>
<name>Heiko Stübner</name>
</author>
<published>2014-07-03T00:01:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c14736c75dba10d9da4c8337e1baee11577691c'/>
<id>urn:sha1:2c14736c75dba10d9da4c8337e1baee11577691c</id>
<content type='text'>
This adds a clock driver that handles the specific muxes, dividers and gates
of rk3188 and rk3066 SoCs.

The structure of the clock list resembles the arrangement of their
counterparts in the clock architecture diagrams found in the SoC
documentation.

Clocks exported to the clock provider are currently limited to well known
or measured ones. So additional clock exports may be necessary in the future.

Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Acked-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Tested-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
<entry>
<title>clk: rockchip: add reset controller</title>
<updated>2014-07-13T19:17:07Z</updated>
<author>
<name>Heiko Stübner</name>
</author>
<published>2014-07-02T23:59:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=85fa0c7f8d05eb6baf2c122e85d45d928df0992b'/>
<id>urn:sha1:85fa0c7f8d05eb6baf2c122e85d45d928df0992b</id>
<content type='text'>
All Rockchip SoCs at least down to the ARM9-based RK28xx include the reset-
controller for SoC peripherals in their clock controller.
While the older SoCs (ARM9 and Cortex-A8) use a regular scheme to change
register values, the Cortex-A9 SoCs use a hiword-mask making locking unecessary.
To be compatible with both schemes the reset controller takes a flag to
decide which scheme to use, similar to the other HIWORD_MASK flags used in the
clock framework.

Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Acked-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Tested-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
<entry>
<title>clk: rockchip: add clock type for pll clocks and pll used on rk3066</title>
<updated>2014-07-13T19:17:06Z</updated>
<author>
<name>Heiko Stübner</name>
</author>
<published>2014-07-02T23:59:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90c590254051f511299538c158e12fdad41ce163'/>
<id>urn:sha1:90c590254051f511299538c158e12fdad41ce163</id>
<content type='text'>
All known Rockchip SoCs down to the RK28xx (ARM9) use a similar pattern to
handle their plls:
                       |--\
xin32k ----------------|mux\
xin24m -----| pll |----|pll|--- pll output
       \---------------|src/
                       |--/

The pll output is sourced from 1 of 3 sources, the actual pll being one of
them. To change the pll frequency it is imperative to remux it to another
source beforehand. This is done by adding a clock-listener to the pll that
handles the remuxing before and after the rate change.

The output mux is implemented as a separate clock to make use of already
existing common-clock features for disabling the pll if one of the other
two sources is used.

Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Acked-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Tested-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
<entry>
<title>clk: rockchip: add basic infrastructure for clock branches</title>
<updated>2014-07-13T19:17:06Z</updated>
<author>
<name>Heiko Stübner</name>
</author>
<published>2014-07-02T23:58:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a245fecbb8064641d9cc317b347b5bdb2b7a4bb6'/>
<id>urn:sha1:a245fecbb8064641d9cc317b347b5bdb2b7a4bb6</id>
<content type='text'>
This adds infrastructure for registering clock branches. On Rockchip SoCs
most clock branches are a combination of mux,divider and gate components,
thus a composite clock is used when appropriate.

Clock branches are supposed to be declared in an array using the COMPOSITE*
or MUX, etc makros defined in the header and then registered using
rockchip_clk_register_branches.

Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Acked-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Tested-By: Max Schwarz &lt;max.schwarz@online.de&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
<entry>
<title>clk: rockchip: fix function type for CLK_OF_DECLARE</title>
<updated>2014-05-20T19:25:22Z</updated>
<author>
<name>Rob Herring</name>
</author>
<published>2014-05-12T16:22:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c46f43f08004d6d25772c9b6e24fa048c8c3efc'/>
<id>urn:sha1:5c46f43f08004d6d25772c9b6e24fa048c8c3efc</id>
<content type='text'>
Adding function type checking to CLK_OF_DECLARE found a type mismatch with
rk2928_gate_clk_init. The function only takes a single struct device_node
parameter.

Signed-off-by: Rob Herring &lt;robh@kernel.org&gt;
Acked-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
<entry>
<title>clk: add support for Rockchip gate clocks</title>
<updated>2013-06-20T22:58:27Z</updated>
<author>
<name>Heiko Stübner</name>
</author>
<published>2013-06-13T14:59:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=646572c77db7c42beb3d091915c8f97359100c47'/>
<id>urn:sha1:646572c77db7c42beb3d091915c8f97359100c47</id>
<content type='text'>
This adds basic support for gate-clocks on Rockchip SoCs.
There are 16 gates in each register and use the HIWORD_MASK
mechanism for changing gate settings.

The gate registers form a continuos block which makes the dt node
structure a matter of taste, as either all 160 gates can be put into
one gate clock spanning all registers or they can be divided into
the 10 individual gates containing 16 clocks each.
The code supports both approaches.

Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
</feed>
