Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'clk-mvebu-3xx-3.15-2' of git://git.infradead.org/linux-mvebu into clk-next-mvebu

clock: mvebu new SoC changes for v3.15 (incremental pull #2)

- mvebu (Armada 375)
- fix ratio register offest

- mvebu (Armada 380)
- expand core divider clock driver to support 380 SoC (enables nand support)

+28 -2
+4 -1
Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt
··· 4 4 0 = nand (NAND clock) 5 5 6 6 Required properties: 7 - - compatible : must be "marvell,armada-370-corediv-clock" 7 + - compatible : must be "marvell,armada-370-corediv-clock", 8 + "marvell,armada-375-corediv-clock", 9 + "marvell,armada-380-corediv-clock", 10 + 8 11 - reg : must be the register address of Core Divider control register 9 12 - #clock-cells : from common clock binding; shall be set to 1 10 13 - clocks : must be set to the parent's phandle
+24 -1
drivers/clk/mvebu/clk-corediv.c
··· 204 204 .ratio_offset = 0x8, 205 205 }; 206 206 207 + static const struct clk_corediv_soc_desc armada380_corediv_soc = { 208 + .descs = mvebu_corediv_desc, 209 + .ndescs = ARRAY_SIZE(mvebu_corediv_desc), 210 + .ops = { 211 + .enable = clk_corediv_enable, 212 + .disable = clk_corediv_disable, 213 + .is_enabled = clk_corediv_is_enabled, 214 + .recalc_rate = clk_corediv_recalc_rate, 215 + .round_rate = clk_corediv_round_rate, 216 + .set_rate = clk_corediv_set_rate, 217 + }, 218 + .ratio_reload = BIT(8), 219 + .enable_bit_offset = 16, 220 + .ratio_offset = 0x4, 221 + }; 222 + 207 223 static const struct clk_corediv_soc_desc armada375_corediv_soc = { 208 224 .descs = mvebu_corediv_desc, 209 225 .ndescs = ARRAY_SIZE(mvebu_corediv_desc), ··· 229 213 .set_rate = clk_corediv_set_rate, 230 214 }, 231 215 .ratio_reload = BIT(8), 232 - .ratio_offset = 0x8, 216 + .ratio_offset = 0x4, 233 217 }; 234 218 235 219 static void __init ··· 306 290 } 307 291 CLK_OF_DECLARE(armada375_corediv_clk, "marvell,armada-375-corediv-clock", 308 292 armada375_corediv_clk_init); 293 + 294 + static void __init armada380_corediv_clk_init(struct device_node *node) 295 + { 296 + return mvebu_corediv_clk_init(node, &armada380_corediv_soc); 297 + } 298 + CLK_OF_DECLARE(armada380_corediv_clk, "marvell,armada-380-corediv-clock", 299 + armada380_corediv_clk_init);